
Ansibleparece ser uma ferramenta de automação bastante eficiente para implantar e atualizar aplicativos em servidores.
É possível usá-lo para fazer backup de um servidor (Linux) também? É uma boa prática fazer isso?
Se sim, existe algum módulo/exemplo de como fazer isso? Por exemplo, digamos que eu queira criar uma exportação de um banco de dados e copiá-lo em outra máquina, como automatizar essa tarefa com Ansible?
Responder1
É possível fazer backup do servidor usando Ansible. Sou novo usuário do Ansible, então não tenho certeza se é uma boa prática ou não.
Se você deseja fazer backup de bancos de dados, você pode usarmysql_dbmódulo.
tasks:
- name: backup db server
mysql_db: name={{item}} state=dump target=/{{item}}-{{ansible_date_time.iso8601}}.sql
with_items: db_name
então você pode usar buscar ou sincronizarmódulopara transferir esses arquivos para a máquina local. Com fetch
o módulo não é possível baixar vários arquivos, pois não suporta caracteres curinga e download de pastas. Criar um arquivo tar é uma opção para superar esse problema.
Você também pode usar scp
para baixar arquivos de backup de uma instância remota.
- name: Downloading backup files from remote machine
command: scp -i {{ansible_ssh_private_key_file}} {{remote_user}}@{{host}}:/backup/* {{backup_folder}}
delegate_to: 127.0.0.1
Responder2
Respondendo à minha própria pergunta, encontrei o módulo fetch que permite baixar arquivos do servidor remoto:http://docs.ansible.com/ansible/fetch_module.html