Mysqldump

帶有ansible的Mysqldump用於數據庫備份

  • February 3, 2022

我正在嘗試使用 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 的伺服器)到本地目錄。

一旦它位於本地目錄中,就可以將其複製到我們想要的任何伺服器。

希望這對其他人也有幫助。

謝謝大家的幫助。

引用自:https://dba.stackexchange.com/questions/211663