Выполнение Ansible Playbook в Docker, завершение задачи пропуска контейнера - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь докеризировать ANSIBLE PlayBook, который выполняет дамп MySQL.

---
- name: MySQL Dump
  hosts: lh
  connection: local
  vars_files:
    - ./vars/sql-credentials.yml
    - ./vars/aws-credentials.yml

  tasks:
    - name: Create Folder To Store
      file:
        state: directory
        path: ./backups

    - name: Get Dump from MySQL DB
      mysql_db:
        name: "{{ db_name }}"
        config_file: .my.cnf
        login_host: "{{ db_login_host }}"
        login_user: "{{ db_login_user }}"
        login_password: "{{ db_login_password }}"
        state: dump
        target: "backups/z-{{ ansible_date_time.date }}.sql.gz"

Выполняя Playbook вне контейнера, я получаю ожидаемый файл дампа sql (файл дампа о 80mb).Когда книга воспроизведения запускается внутри контейнера, она завершает работу рано (почти сразу после того, как задача была указана в списке) без ошибок, вывод файла 20kb.

FROM ubuntu:bionic

RUN apt-get update && \
  apt-get dist-upgrade -y && \
  apt-get install -y software-properties-common systemd && \
  rm -rf /var/lib/apt/lists/*

RUN apt-add-repository -y ppa:ansible/ansible && apt-get update && apt-get install -y \
    git \
    ansible \
    mysql-client \
    python-pip \ 
    python-dev \ 
    build-essential \
 && rm -rf /var/lib/apt/lists/*

COPY . .

RUN pip install -r requirements.txt

RUN echo "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts

CMD [ "ansible-playbook", "-i", "inventory", "playbook.yml", "-vvvv" ]

Я попытался запуститьэто в подробном режиме внутри контейнера, и я не получаю никаких ошибок вообще.

Причина, по которой я хочу выполнить этот запуск в контейнере, заключается в том, что я хочу, чтобы Travis CI выполнил этот дамп в CRON, а затем развернул его в сегменте S3.

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