使用Ansible重新启动多个Docker容器未发生
我正在尝试使用Ansible为特定图像逐个重新启动docker容器,但似乎没有发生。下面是我的yml,它正在退出当前正在运行的容器使用Ansible重新启动多个Docker容器未发生,docker,docker-compose,ansible,ansible-inventory,Docker,Docker Compose,Ansible,Ansible Inventory,我正在尝试使用Ansible为特定图像逐个重新启动docker容器,但似乎没有发生。下面是我的yml,它正在退出当前正在运行的容器 --- - name: restart app servers hosts: shashank-VM connection: local become: yes become_method: sudo tasks: - name: Get info on the Container shell: docker ps | awk
---
- name: restart app servers
hosts: shashank-VM
connection: local
become: yes
become_method: sudo
tasks:
- name: Get info on the Container
shell: docker ps | awk '/{{ item }}/{print $1}'
register: list_of_containers
with_items:
- ubuntu
- name: Restart Docker Service
docker_container:
name: "{{ item }}"
# image: ubuntu
state: started
restart: yes
with_items: "{{ list_of_containers.results | map(attribute='stdout_lines') | list }}"
如果在运行docker ps时看到以下输出,则没有正在运行的容器
TASK [Restart Docker Service] ****************************************************************************************************************
/usr/lib/python2.7/dist-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.25.9) or chardet (3.0.4) doesn't match a supported version!
RequestsDependencyWarning)
changed: [shashank-VM] => (item=c2310b76b005)
PLAY RECAP ***********************************************************************************************************************************
shashank-VM : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
shashank@shashank-VM:~/ansible$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
我做错了什么?有人能帮忙吗?我不认为
docker\u容器
模块是为满足您的需要而设计的(即重新启动现有容器)。该模块设计用于按名称而不是id管理容器,并将检查正在运行的容器是否与提供给docker\u container
的选项匹配
您最好使用docker
命令重新启动容器:
---
- name: restart app servers
hosts: shashank-VM
connection: local
become: yes
become_method: sudo
tasks:
- name: Get info on the Container
shell: docker ps | awk '/{{ item }}/{print $1}'
register: list_of_containers
with_items:
- ubuntu
- name: Restart Docker Service
command: docker restart {{ item }}
with_items: "{{ list_of_containers.results | map(attribute='stdout_lines') | list }}"
谢谢这太完美了,工作起来很有魅力。:)我不知道docker_容器模块不能重新启动。不知道为什么不能像最初那样工作;模块上的文档明确指出,当识别现有容器名称时,可以是名称或长或短容器ID,
restart
明确用于重新启动现有容器(与started state一起使用可强制停止并重新启动匹配的容器)。然而,你不能与现实争辩。