Я пытаюсь докеризировать 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.