Ansible似乎是一个非常有效的自动化工具,用于在服务器上部署和更新应用程序。
是否也可以使用它来备份 (Linux) 服务器?这样做是好的做法吗?
如果是,是否有任何模块/示例说明如何操作?例如,假设我想创建一个数据库导出并将其复制到另一台机器上,如何使用 Ansible 自动执行此任务?
答案1
可以使用 Ansible 备份服务器。我是 Ansible 的新用户,所以我不确定这是否是一个好的做法。
如果你想备份数据库,你可以使用mysql_db模块。
tasks:
- name: backup db server
mysql_db: name={{item}} state=dump target=/{{item}}-{{ansible_date_time.iso8601}}.sql
with_items: db_name
然后你可以使用 fetch 或 synchronize模块用于将这些文件传输到本地计算机。使用fetch
模块无法下载多个文件,因为它不支持通配符和文件夹下载。创建一个 tar 文件是解决此问题的一种选择。
您还可以使用scp
它从远程实例下载备份文件。
- 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
答案2
回答我自己的问题,我发现了允许从远程服务器下载文件的获取模块:http://docs.ansible.com/ansible/fetch_module.html