使用Ansible重新启动多个Docker容器的情况没有发生。

问题描述 投票:0回答:1

我正试图使用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 '/{{ 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 docker-compose ansible ansible-inventory
1个回答
1
投票

我不认为 docker_container 模块的目的是为了实现您的愿望(即重新启动现有容器)。该模块被设计为按名称而不是按 ID 来管理容器,并将检查正在运行的容器是否与提供给它的选项相匹配。docker_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 }}"
© www.soinside.com 2019 - 2024. All rights reserved.