The blog about containerisation, virtual machines and useful shell snippets and findings

Снятие бекапа из mysql контейнера при помощи Ansible

Вот простой рецепт:

- name: backup mysql from container
  gather_facts: no
  vars:
    - db_container: container_db_1
    - image: mysql:5.6
    - db:
        name: database_name
        user: root
        password: root
    - dump_file: ./dump-latest.sql
  tasks:
    - name: run backup container
      shell: "docker run --rm --link {{db_container}}:db --entrypoint \"/usr/bin/mysqldump\" {{image}} -hdb -u{{db.user}} -p{{db.password}} {{db.name}}"
      register: output

    - name: copy output
      local_action: copy content="{{ output.stdout }}" dest="{{dump_file}}"

Работает БЕЗ создания файлов на удаленном хосте, помимо, конечно, временного контейнера.