使用 Ansible 备份服务器?

Nic*_*s C 10 linux backup linux-server

Ansible似乎是一个非常有效的自动化工具,用于在服务器上部署和更新应用程序。

  • 是否也可以使用它来备份(Linux)服务器?这样做是一个好习惯吗?

  • 如果是,是否有关于如何做到这一点的模块/示例?例如,假设我想创建一个数据库的导出并将其复制到另一台机器上,如何使用 Ansible 自动执行此任务?

小智 10

可以使用 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
Run Code Online (Sandbox Code Playgroud)

然后您可以使用 fetch 或同步模块将这些文件传输到本地机器。使用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
Run Code Online (Sandbox Code Playgroud)