从连接到docker容器的代码/命令行运行ansible-playbook

时间:2017-12-20 18:38:39

标签: python ansible

我正在使用它:

Specify docker containers in /etc/ansible/hosts file

在docker容器上运行我的ansible playbooks。

但有没有办法避免使用包含容器信息的物理/etc/ansible/hosts文件?例如。从可以配置此信息的代码运行它?

我看了看:

Running ansible-playbook using Python API

但是在查看答案时,我看到指向物理文件的变量,例如:

inventory = Inventory(loader=loader, sources='/home/slotlocker/hosts2')
playbook_path = '/home/slotlocker/ls.yml'

所以不确定为什么这比仅使用命令行调用而不使用Python ansible API更好。

1 个答案:

答案 0 :(得分:0)

可以在Docker容器中安装Ansible,然后在容器内本地运行它。例如,在Dockerfile中,包括:

# Install Ansible
RUN pip install ansible
COPY ansible /tmp/ansible
# Run Ansible to configure the machine
RUN cd /tmp/ansible && ansible-playbook -i inventory/docker example_playbook.yml