Перезапустите mutiple Docker Контейнеры, используя Ansible не происходит - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь перезапустить мои docker контейнеры один за другим для определенного изображения, используя Ansible, но, похоже, этого не происходит. Ниже мой 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

Что я делаю не так? Может кто-нибудь помочь?

1 Ответ

1 голос
/ 23 апреля 2020

Я не думаю, что модуль docker_container предназначен для того, чтобы делать то, что вы хотите (т. Е. Перезапустить существующий контейнер). Модуль предназначен для управления контейнерами по имени, а не по идентификатору, и будет проверять, соответствует ли запущенный контейнер параметрам, указанным для 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 }}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...