Ansible通过docker工人,库存中的docker主持人
从Docker Hub使用这个 Docker 镜像 ,我试图运行一个可靠的手册,configuration容器运行的机器。
作为一个例子,我运行这个:
docker run --net="host" -v <path_inventory>:/inventory -v <path_playbook>:/playbook.yml williamyeh/ansible:ubuntu16.04 ansible-playbook -vvvv -i /inventory /playbook.yml
有了这个选项,我可以ping本地主机,库存和操作手册都可以访问。
清单configuration为使用本地连接:
[executors] 127.0.0.1 [executors:vars] ansible_connection=local ansible_user=<my_user_in_docker_host> ansible_become=True
这个团队的执行者是从剧本中引用的。
我看到,剧本试图以root身份进行连接(当我连接到容器时,默认情况下会获得该连接)。 运行容器时指定-u似乎不能与Ansible相处。
<127.0.0.1>build立用户的本地连接:root
…在成功的本地连接之后出现错误,抱怨任何命令不可用。 这对我来说是没有意义的,因为root用户和非root用户都可以执行它们。
任何想法?
这个图像被devise为作为其他图像的基础,并采取ansible作为configuration图像的要求,而不是只使用Dockerfile的方式。
这是在docker镜像的文档中说明的:
主要用作在某些指定的Linux发行版上configuration其他软件堆栈的基本映像。
把它看作是一个基本的形象,比使用其他选项(VMs,Vagrant …)更轻松地执行CI任务
考虑到docker的好处在于它将主机与容器隔离开来,所以你不能从容器中访问主机文件(除了绑定的任何卷之外)。 否则,这将是一个安全问题。 看这里
问候