
安西布爾似乎是一個非常有效的自動化工具,用於在伺服器上部署和更新應用程式。
是否也可以用它來備份(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
模組無法下載多個文件,因為它不支援通配符和資料夾下載。創建一個 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
回答我自己的問題,我找到了允許從遠端伺服器下載檔案的 fetch 模組:http://docs.ansible.com/ansible/fetch_module.html