gpt4 book ai didi

docker - Ansible 通过 docker,库存中的 docker host

转载 作者:行者123 更新时间:2023-12-02 19:34:25 25 4
gpt4 key购买 nike

使用 this docker image来自 Docker Hub,我正在尝试运行一个可配置容器运行的机器的 ansible playbook。

例如,我运行这个:

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 localhost,并且可以访问 list 和剧本。

list 配置为使用本地连接:
[executors]
127.0.0.1

[executors:vars]
ansible_connection=local
ansible_user=<my_user_in_docker_host>
ansible_become=True

组执行者是从剧本中引用的。

我看到 playbook 正在尝试以 root 身份连接(当我附加到容器时默认得到的内容)。在运行容器时指定 -u 似乎与 Ansible 不符。

<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root



...在本地连接成功后,随后出现错误,提示任何命令不可用。这对我来说毫无意义,因为 root 或非 root 用户都可以执行它们。

任何的想法?

最佳答案

此镜像旨在用作其他镜像的基础,并利用 ansible 的优势作为配置镜像需求的一种方式,而不是仅使用 Dockerfile。

这在 docker 镜像的文档中有所说明:

Used mostly as a base image for configuring other software stack on some specified Linux distribution(s).



将其视为以比使用其他选项(VM、Vagrant...)更轻松的方式执行 CI 任务的基础镜像

考虑到 docker 的好处在于它将主机与容器隔离,因此您无法从容器中访问主机文件(绑定(bind)的任何卷除外)。否则,这将是一个安全问题。 See Here

问候

关于docker - Ansible 通过 docker,库存中的 docker host,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47408211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com