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的好处在于它将主机与容器隔离开来,所以你不能从容器中访问主机文件(除了绑定的任何卷之外)。 否则,这将是一个安全问题。 看这里

问候