Выполнить docker-compose внутри Ansible playbook - PullRequest
0 голосов
/ 11 октября 2019

У меня есть файл ansible-playbook.yml, и изнутри мне нужно выполнить docker-compose:

- name: copy sql schema
  hosts: test-mysql
  gather_facts: no
  tasks:

    - name: Docker compose
      command: docker-compose -f {{ name }}_compose.yml up -d

Но я всегда получаю сообщение об ошибке:

fatal: [test-mysql]: FAILED! => {"changed": false, "cmd": "docker-compose Mick_compose.yml up -d", "failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2}

Любые советы? Спасибо


С помощью команды: - name: убедитесь, что служба compose запущена. Я получаю сообщение об ошибке: Кажущаяся строка выглядит следующим образом:

- name: Make sure compose service is up
   docker_compose:
                 ^ here

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Каталог, в котором работает playbook, не содержит файл {{ name }}_compose.yml.

Существует соответствующий модуль , который может вам помочь. Если вы не хотите его использовать, вы можете добавить задачу, которая покажет каталог, в котором запускается playbook:

- name: copy sql schema
  hosts: test-mysql
  gather_facts: no
  tasks:
    - debug: 
        msg: "{{ playbook_dir }}"
    - name: Docker compose
      command: docker-compose -f {{ name }}_compose.yml up -d

Затем либо переместите {{ name }}_compose.yml в каталог, либо укажите абсолютный путь в команде:docker-compose -f [abs_path]{{ name }}_compose.yml up -d

0 голосов
/ 11 октября 2019

[Errno 2] Нет такого файла или каталога

На самом деле нет такого файла или каталога как Mick_compose.yml в каталоге по умолчанию, где запускается ваша команда. Чтобы исправить это, я мог бы показать вам, как изменить dir с командного модуля на правильный, содержащий ваш файл.

Но я позволю вам выяснить это самостоятельно (если вы все ещеочень хочу сделать это после этого объяснения) потому что вы не должны запускать команды напрямую, когда существует существующий ANSIB-модуль, уже делающий то, что вам нужно

- name: Make sure compose service is up
  docker_compose:
    project_src: /path/to/your/compose/project
    files:
      - "{{ name }}_compose.yml"
    state: present

Это просто для того, чтобы поставить вас натрек, посмотрите на ссылку на модуль документации выше для получения дополнительной информации о возможных параметрах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...