你可以通过将Ansible Docker容器连接到其他Docker容器的网络中,来使其能够与其他容器通信。这可以通过使用Docker Compose进行管理。
以下是一个示例docker-compose.yml文件,定义了两个容器:一个MySQL容器和一个Ansible容器,并将它们都加入到相同的网络中。其中Ansible容器还将挂载一个卷,使其能够访问Ansible playbook文件。
version: '3'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
networks:
- mynet
ansible:
image: ansible/ansible:latest
volumes:
- './playbooks:/ansible/playbooks'
networks:
- mynet
networks:
mynet:
你可以使用以下命令在Docker中启动这两个容器:
docker-compose up
一旦启动成功,你可以在Ansible playbook中指定MySQL容器的主机名称:
- name: "Install mysql client"
apt:
name: mysql-client
become: yes
become_user: root
become_method: sudo
vars:
ansible_ssh_common_args: '-o StrictHostKeyChecking=no'
hosts:
db
这样,Ansible容器就可以通过MySQL容器的主机名进行通信了。