使用 Ansible 备份服务器?

使用 Ansible 备份服务器?

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

相关内容