Mysqldump
帶有ansible的Mysqldump用於數據庫備份
我正在嘗試使用 ansible 和 mysqldump 備份遠端數據庫。我已經在我的本地伺服器中安裝了 ansible。生成了 ssh 密鑰。我還將公鑰發送到遠端伺服器。ansible 部分一切正常,但無法使用 ansible 和
mysqldump
.我試過這個:
ansible -m shell -a 'mysqldump -h 192.168.10.155 -u root -proot database_name > database_name.sql' remote_server
但是備份是在 remote_server 的主目錄中創建的。我的要求是我想將備份
remote_server
放入我的local_server
.編輯:
現在我使用劇本:
主機:remote_server 變為:是任務:
- 名稱:做一個mysqldump ignore_errors:是shell:mysqldump -h 192.168.10.155 -u root -proot database_name > dbname.sql
主機:remote_server 任務:
- 名稱:將文件從遠端傳輸到本地
同步:
src:/home/user/test.txt dest:/home/user/backup delegate_to:local_server
備份正在進行,但我怎樣才能在我正在執行 ansible 的伺服器中獲取備份?
我研究過這也可以使用劇本來完成。
我怎樣才能用劇本實現它?
我真的很抱歉發布這個。我後來意識到,這更像是我正在尋找的一個可靠的解決方案,而不是 mysqldump。
我嘗試了很多替代方案,最後這個對我有用。
- hosts: remote_server tasks: - shell: mysqldump -h 192.168.10.155 -u root -proot mobile > mobile123.sql - hosts: remote_server tasks: - fetch: src: /home/user/mobile123.sql dest: /home/user/ flat: true
這個劇本的作用是,它在第一部分使用 mysqldump 進行數據庫備份,並在 remote_server 中創建備份。
在後面的部分中,它使用 fetch 命令將備份從 remote_server 複製到本地伺服器(託管 ansible 的伺服器)到本地目錄。
一旦它位於本地目錄中,就可以將其複製到我們想要的任何伺服器。
希望這對其他人也有幫助。
謝謝大家的幫助。