精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

巧用 Ansible 實現 MySQL 備份,運維看過來

數據庫 MySQL
本文使用容器形式實現 Ansible 輕量化安裝部署的嘗試,旨在更好地發揮 Ansible 在運維管理中的積極作用,Ansible 模塊化的屬性可以幫助運維人員擺脫復雜的技術而更好地專注于運維場景本身。

本文以容器形式部署了開源自動化運維工具 Ansible,基于自帶的 MySQL 管理模塊編排了 playbook 配置文件,最終實現 MySQL 數據庫備份的目標。選擇容器而非直接安裝的部署形式,可以避免對系統環境的污染,使運維工作開展更加高效和靈活。

MySQL 數據庫備份技術和相關方案已經非常成熟,本文不做贅述和展開。在實際場景中,數據庫不可能脫離業務單獨存在;因此對于備份等運維操作來說,應當在運維平臺統一的調度下發起或實施,Ansible 作為近年來流行的自動化運維工具,可以定位于運維平臺的核心來使用。

Ansible簡介

關于 Ansible 的介紹,公開渠道可以查閱到大量資料,公眾號此前也有文章專門介紹,本文不再浪費篇幅鋪開。簡單來說,Ansible 是一個基于Python語言開發的運維工具,由于沒有客戶端依賴,在管理成本方面較其他產品有顯著優勢;Ansible 基于模塊工作,通過系統自帶、客戶編寫、和第三方模塊,可以滿足各種管理任務,本文使用 mysql_db 數據庫模塊實現了備份功能。

環境準備

筆者對紅帽系統比較熟悉,原本想直接通過 yum 命令安裝 ansible,但是從實際工作角度出發,一方面要維護非聯網環境中 yum 源,另一方面 ansible 需要連帶安裝大量依賴包,易對系統造成“污染”,因此并不推薦 yum 直接安裝。根據 Ansible 的官方文檔,使用 mysql_db 模塊需要安裝 MySQL 客戶端和其他一些工具,這些對于操作系統本身也非必要。基于以上考慮,筆者最終采用構建自定義 docker 鏡像的方式部署 Ansible。除了克服以上弊端外,鏡像制作完成后可以方便地移植到任意安裝 docker 的環境中,無需兼顧環境因素。本文使用 debian11 的官方鏡像作為底座和中科大的軟件源,Dockerfile 文件定義如下:

FROM debian:latest
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list \
&& apt-get update -y \
&& apt-get upgrade -y \
&& apt-get install ansible -y \
&& apt-get install sshpass -y \
&& apt-get install pip -y \
&& apt-get install libmysql++-dev -y \
&& apt-get install default-mysql-client -y \
&& apt-get autoclean
RUN pip3 install mysqlclient
RUN mkdir -p /etc/ansible/
CMD ["/bin/bash"]

使用 docker 編譯后,導出的鏡像約 900MB,安裝的 ansible 版本為 2.10.8。使用該鏡像部署的容器啟動后檢查輸出如下圖。

mysql_db模塊

該模塊用于實現 MySQL 庫級別的管理,提供 CREATE、DROP、DUMP、IMPORT 四種功能。本文通過把 state 設置為 dump,實現調用 mysqldump 工具完成備份,mysql_db 模塊備份功能可能用到的主要輸入參數說明如下:

connect_timeout

integer

The connection timeout when connecting to the MySQL server.

Default: 30

dump_extra_args

string

added in 0.1.0 of community.mysql

Provide additional arguments for mysqldump. Used when state=dump only, ignored otherwise.

encoding

string

Encoding mode to use, examples include utf8 or latin1_swedish_ci, at creation of database, dump or importation of sql script.

Default: “”

force

boolean

added in 0.1.0 of community.mysql

Continue dump or import even if we get an SQL error.

Used only when state is dump or import.

Choices:

  • no ← (default)
  • yes

hex_blob

boolean

added in 0.1.0 of community.mysql

Dump binary columns using hexadecimal notation.

Choices:

  • no ← (default)
  • yes

ignore_tables

list / elements=string

A list of table names that will be ignored in the dump of the form database_name.table_name.

Default: []

login_host

string

Host running the database.

In some cases for local connections the login_unix_socket=/path/to/mysqld/socket, that is usually /var/run/mysqld/mysqld.sock, needs to be used instead of login_host=localhost.

Default: “localhost”

login_password

string

The password used to authenticate with.

login_port

integer

Port of the MySQL server. Requires login_host be defined as other than localhost if login_port is used.

Default: 3306

login_user

string

The username used to authenticate with.

master_data

integer

added in 0.1.0 of community.mysql

Option to dump a master replication server to produce a dump file that can be used to set up another server as a slave of the master.

0 to not include master data.

1 to generate a ‘CHANGE MASTER TO’ statement required on the slave to start the replication process.

2 to generate a commented ‘CHANGE MASTER TO’.

Can be used when state=dump.

Choices:

  • 0
  • 1
  • 2

Default: 0

name

aliases: db

list / elements=string / required

Name of the database to add or remove.

name=all may only be provided if state is dump or import.

List of databases is provided with state=dump, state=present and state=absent.

If name=all it works like –all-databases option for mysqldump (Added in 2.0).

quick

boolean

Option used for dumping large tables.

Choices:

  • no
  • yes ← (default)

restrict_config_file

boolean

added in 0.1.0 of community.mysql

Read only passed config_file.

When state is dump or import, by default the module passes config_file parameter using --defaults-extra-file command-line argument to mysql/mysqldump utilities under the hood that read named option file in addition to usual option files.

If this behavior is undesirable, use yes to read only named option file.

Choices:

  • no ← (default)
  • yes

single_transaction

boolean

Execute the dump in a single transaction.

Choices:

  • no ← (default)
  • yes

skip_lock_tables

boolean

added in 0.1.0 of community.mysql

Skip locking tables for read. Used when state=dump, ignored otherwise.

Choices:

  • no ← (default)
  • yes

state

string

The database state.

Choices:

  • absent
  • dump
  • import
  • present ← (default)

target

path

Location, on the remote host, of the dump file to read from or write to.

Uncompressed SQL files (.sql) as well as bzip2 (.bz2), gzip (.gz) and xz (Added in 2.0) compressed files are supported.

playbook編排

playbook 是 Ansible 用于配置、部署、和管理被控節點的劇本,給被控節點列出的一系列 to-do-list。劇本在執行過程中按照編排定義,執行一個或多個 task,實現目標主機完成指定任務,達到預期的狀態。筆者編寫了一個簡單的 playbook,配置了一個task調用 mysql_db 模塊實現備份目標,需要注意的是 hosts 建議設定為127.0.0.1,表示 ansible 所在容器本身,yml 文件具體如下:

---
- hosts: 127.0.0.1
tasks:
- name: "mysql dump test"
mysql_db:
login_host: 192.168.43.51
login_user: root
login_password: ******
state: dump
name: test
target: /tmp/test_{{ ansible_date_time.date }}.gz

執行該 playbook 的過程和結果如下圖所示:

PLAYBOOK: bak.yml *********************************************************
1 plays in bak.yml

PLAY [127.0.0.1] *********************************************************

TASK [Gathering Facts] *********************************************************
task path: /bak.yml:2
ok: [127.0.0.1]
META: ran handlers

TASK [mysql dump test] *********************************************************
task path: /bak.yml:4
redirecting (type: modules) ansible.builtin.mysql_db to community.mysql.mysql_db
[WARNING]: The value "********" (type int) was converted to "'********'" (type string). If this does not look like what you expect, quote the entire value to
ensure it does not change.
changed: [127.0.0.1] => {"changed": true, "db": "test", "db_list": ["test"], "executed_commands": ["/usr/bin/mysqldump --user=root --password=******** --host=192.168.43.51 --port=3306 test --quick | /bin/gzip > /tmp/test_2022-05-06.gz"], "msg": ""}
META: ran handlers
META: ran handlers

PLAY RECAP *********************************************************
127.0.0.1 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

總結和展望

本文使用容器形式實現 Ansible 輕量化安裝部署的嘗試,旨在更好地發揮 Ansible 在運維管理中的積極作用,Ansible 模塊化的屬性可以幫助運維人員擺脫復雜的技術而更好地專注于運維場景本身。筆者僅實現了 MySQL 備份一個場景,在企業級規模運維管理中,要實現更復雜的運維場景,做好模塊管理還是有必要部署 Ansible Tower。筆者也會持續開展 Ansible Tower對應的開源產品AWX應用研究。

作者簡介:曹杰,中國結算上海分公司高級經理,從事系統運維管理工作。

責任編輯:武曉燕 來源: 高效運維
相關推薦

2013-10-14 14:15:21

程序員讀書

2018-09-29 15:59:18

APPiOS優化

2009-08-05 09:37:11

云計算CIO

2020-11-05 10:57:47

云計算多云公有云

2015-11-30 14:10:49

大無線eLTE華為

2009-10-20 14:10:00

CCIE考試

2015-09-15 09:12:04

程序媛Google特殊獎勵

2013-11-08 17:33:52

2015-02-09 13:48:12

2011-05-27 11:21:58

打印機技巧

2019-08-08 17:14:31

5G手機華為三星

2017-10-12 12:13:09

設計師搜索功能搜索框

2012-03-31 11:05:00

水冷服務器液體刀片服務器

2015-02-27 15:14:05

2019-01-24 10:18:25

機器學習深度學習圖像處理

2013-05-23 11:22:04

Android開發者UI設計Android設計

2018-05-14 12:18:47

AI開發深度學習框架

2009-03-25 19:05:24

四核服務器AMD
點贊
收藏

51CTO技術棧公眾號

国产一区二区丝袜| 精品精品国产高清a毛片牛牛 | 久久久久久久9| 日韩专区第一页| 久久99伊人| 久热精品视频在线观看| avtt香蕉久久| 色综合视频一区二区三区日韩| 亚洲综合色成人| 日本一区二区三区四区高清视频| 国产精品欧美久久久久天天影视| 亚洲精品美女91| zzijzzij亚洲日本成熟少妇| 国产精品扒开腿做爽爽爽a片唱戏| 三上悠亚国产精品一区二区三区| 亚洲欧美日本在线| 日本一区二区三不卡| 成 人 免费 黄 色| 美国一区二区三区在线播放| 97香蕉久久超级碰碰高清版| www.97视频| 国产99久久久国产精品成人免费 | 黄色一级片免费的| 在线精品亚洲欧美日韩国产| 亚洲综合激情网| 亚洲一卡二卡三卡| 日韩精品123| 国产一区二区0| 日韩精品福利网| 日韩中文字幕国产| www.久久国产| 久久人人爽人人爽人人片av不| 欧美疯狂做受xxxx富婆| 国产精品97在线| 欧美videossex另类| 日韩美女视频19| 水蜜桃亚洲精品| 天堂成人在线| 波多野结衣视频一区| 91精品国产高清久久久久久91裸体 | 欧美日韩18| 久久精品亚洲热| 奇米网一区二区| 欧美码中文字幕在线| 日韩精品有码在线观看| 插我舔内射18免费视频| 高清日韩中文字幕| 亚洲国产精品va在线看黑人| 亚洲成人精品在线播放| 久久99成人| 91精品国产综合久久久久久 | 日本天堂网在线| 亚洲激情亚洲| 国自产精品手机在线观看视频| 久久久一二三区| 亚洲婷婷免费| 性色av香蕉一区二区| 国产成人精品a视频一区| 亚洲精品韩国| 热久久免费国产视频| 依依成人综合网| 石原莉奈在线亚洲二区| 国产盗摄xxxx视频xxx69| 一区二区乱子伦在线播放| 日韩极品在线观看| 国产精品中文在线| 97人妻精品一区二区三区| 色哟哟中文字幕| 麻豆精品一区二区综合av| 国产精品一区二区三区免费视频| 在线不卡免费视频| 国产成人自拍网| 国产综合动作在线观看| 色猫av在线| 国产精品视频在线看| 亚洲小说欧美另类激情| а√在线中文在线新版| 色综合天天综合在线视频| 浓精h攵女乱爱av| 电影一区中文字幕| 精品日韩成人av| www.中文字幕av| 婷婷综合网站| 91国内精品久久| 日韩国产亚洲欧美| 国产精品亚洲一区二区三区在线 | 婷婷精品在线| 在线观看成人黄色| 欧美成人精品一区二区免费看片 | 日韩av片永久免费网站| 一级黄色a视频| 成人午夜在线视频| 日韩aⅴ视频一区二区三区| 麻豆传媒在线观看| 亚洲成人你懂的| 熟妇人妻无乱码中文字幕真矢织江| www.欧美| 亚洲欧美日本另类| 国产免费无码一区二区视频| 国产精品亚洲欧美| 91久久精品美女高潮| 天天操天天干天天爽| 国产精品伦理在线| 少妇人妻大乳在线视频| 欧美成人福利| 亚洲精品福利资源站| 男人在线观看视频| 久久一区激情| 国产精品区一区| 黄色在线免费| 在线看不卡av| 亚洲第一黄色网址| 你懂的亚洲视频| 国产精品久久久久高潮| 深夜福利在线看| 亚洲激情在线播放| 日本不卡一区二区在线观看| 日日狠狠久久偷偷综合色| xxx一区二区| 人人妻人人爽人人澡人人精品| 成人一区二区三区中文字幕| 亚洲三级一区| 日本精品不卡| 日韩av网址在线| 久久综合成人网| 国产一区二区三区国产| 日韩三级在线播放| 日本精品不卡| 亚洲欧美中文字幕在线一区| 日韩欧美高清在线观看| 国产成人亚洲综合a∨婷婷图片| 日韩精品一区二区三区四区五区| 看黄在线观看| 日韩成人xxxx| 日韩黄色在线视频| 粉嫩一区二区三区在线看| 午夜啪啪福利视频| 色综合视频一区二区三区日韩| 亚洲天堂第一页| 亚洲天堂av片| 91网页版在线| 你懂的av在线| 欧美顶级毛片在线播放| 久久久欧美一区二区| 性一交一乱一乱一视频| 伊人色综合久久天天| 亚洲三级在线视频| 欧美99在线视频观看| 91久久国产婷婷一区二区| gogo在线观看| 日韩欧美资源站| 久久久久久久久久91| 国产成人av影院| 亚洲精品久久久久久久蜜桃臀| 亚洲精品午夜| 午夜精品一区二区三区在线播放| 色综合免费视频| 欧美日韩另类字幕中文| www.色天使| 免费在线看一区| 中文字幕一区综合| 视频在线亚洲| 国语自产精品视频在免费| 亚洲AV第二区国产精品| 色综合久久久网| www.黄色在线| 狠狠色伊人亚洲综合成人| 午夜久久久久久久久久久| 日本一区精品视频| 午夜精品在线观看| 国产福利片在线| 欧美精品国产精品| 国产亚洲欧美精品久久久www| 成人一区二区视频| 成人免费观看毛片| 欧美国产偷国产精品三区| 91入口在线观看| 免费h在线看| 在线电影中文日韩| www.日日夜夜| 色综合视频在线观看| 在线免费看视频| 粉嫩久久99精品久久久久久夜| 成人在线免费观看av| 奇米影视亚洲| 国产91精品入口17c| 日本成人三级电影| 美日韩精品免费观看视频| 国产精品国产高清国产| 欧美日韩国产综合视频在线观看 | 亚洲在线视频福利| 理论不卡电影大全神| 中文字幕日韩在线播放| 亚洲第一页综合| 91国模大尺度私拍在线视频| 成年人一级黄色片| 久久久久九九视频| 国产一级片中文字幕| 香蕉国产精品偷在线观看不卡| 亚洲欧美日韩另类精品一区二区三区| 亚洲日本va| 国产精品久久久久一区二区| xxxx成人| 色偷偷噜噜噜亚洲男人的天堂| 香蕉国产在线视频| 91精品国产综合久久精品图片| 黄色片中文字幕| 一区二区三区.www| 美国一级黄色录像| 99久久久久免费精品国产| 久久久久久久久久毛片| 久久久精品日韩| 老子影院午夜伦不卡大全| 999国产精品| 欧洲精品亚洲精品| 久久aimee| 91国产在线播放| 99精品在线免费观看| 日韩av123| 欧美巨大丰满猛性社交| 欧美激情亚洲综合一区| 岛国中文字幕在线| 中文字幕视频一区二区在线有码| 女人偷人在线视频| 亚洲加勒比久久88色综合 | 国产视频综合在线| 囯产精品久久久久久| 制服丝袜中文字幕一区| 国产成人av免费| 一本久久精品一区二区| xxxx.国产| 精品美女国产在线| 国产真实乱偷精品视频| 亚洲尤物在线视频观看| 中文字幕人妻一区二| 国产精品久久久久aaaa| 一级黄色毛毛片| 中文字幕av资源一区| 蜜臀久久99精品久久久久久| 91视频免费播放| 无码人妻aⅴ一区二区三区| 成人精品一区二区三区中文字幕| 在线观看视频在线观看| 国产在线精品一区二区| 超碰在线资源站| 国产成人综合在线播放| 乳色吐息在线观看| 处破女av一区二区| 免费看黄色片的网站| 成人午夜免费av| 好吊色视频一区二区三区| 成人97人人超碰人人99| av网页在线观看| 91在线观看高清| 亚洲熟妇一区二区三区| 国产亚洲一区二区在线观看| 精品人妻一区二区三区蜜桃视频| 欧美国产精品久久| 三级黄色免费观看| 伊人色综合久久天天| 日韩久久久久久久久| 狠狠躁天天躁日日躁欧美| 久久青青草原亚洲av无码麻豆| 日本丰满少妇一区二区三区| 做爰视频毛片视频| 7799精品视频| 全国男人的天堂网| 亚洲女在线观看| 在线视频91p| 欧美日韩国产va另类| www.youjizz.com在线| 日本欧美在线视频| 亚洲伦理网站| 国产伦精品一区二区三区视频免费 | 一区二区三区高清视频在线观看| 88av.com| 国产美女主播视频一区| 亚洲精品第二页| 国产欧美日韩中文久久| 国模无码国产精品视频| 欧美网站在线观看| 中文字幕人妻一区二区三区视频 | 国产91九色视频| 日本午夜精品久久久久| 国产精品久久久久久免费观看| 偷拍精品福利视频导航| 中文字幕欧美日韩一区二区| 在线看片一区| 国产精品久久久毛片| 国产99精品在线观看| 丰腴饱满的极品熟妇| 亚洲女厕所小便bbb| 中文字字幕在线中文| 欧美一区二区精美| 毛片在线能看| 欧美国产欧美亚洲国产日韩mv天天看完整| 乱馆动漫1~6集在线观看| 成人激情视频在线观看| 要久久爱电视剧全集完整观看| 99亚洲精品视频| 日韩高清一区二区| 亚洲欧美高清在线| 国产精品护士白丝一区av| 成人免费看片98欧美| 日韩欧美国产系列| 在线看av的网址| 国产91免费看片| 国产欧美三级电影| 日本三日本三级少妇三级66| 日韩av中文在线观看| av鲁丝一区鲁丝二区鲁丝三区| 亚洲精品免费电影| 在线播放成人av| 亚洲视频在线观看视频| sm在线播放| 岛国视频一区| 亚洲国产精品成人| 色综合色综合色综合色综合| 91欧美一区二区| 日韩 欧美 亚洲| 日韩精品一区在线观看| 免费**毛片在线| 国产精品黄色av| 国产午夜一区| 中文字幕无码精品亚洲35| 国产精品系列在线观看| 国产一二三区精品| 欧美日韩一区二区三区在线看| 青青久草在线| 91成人在线播放| 日韩av午夜| 波多野结衣乳巨码无在线| 成人免费视频视频在线观看免费| 国产午夜手机精彩视频| 欧美二区在线观看| 毛片在线不卡| 成人性生交大片免费看小说| 色爱综合网欧美| 奇米影视四色在线| 中文字幕制服丝袜成人av| 亚洲午夜精品久久久| 在线看日韩欧美| 久久亚洲精品中文字幕| 一区二区精品在线| 久久草av在线| 91传媒免费观看| 日韩一级视频免费观看在线| 最新av在线播放| 97se国产在线视频| 国精品一区二区三区| 99热超碰在线| 日韩欧美国产成人| 国产美女性感在线观看懂色av | 精品国产亚洲一区二区三区大结局| 一区二区三区久久网| 国产在线播放一区| 久久r这里只有精品| 亚洲国产精久久久久久 | 37p粉嫩大胆色噜噜噜| 欧美午夜精品久久久久久人妖| 黄色国产在线| 国产专区精品视频| 欧美高清不卡| 国产老熟女伦老熟妇露脸| 欧美午夜片在线免费观看| 国产精品视频二区三区| 91久久中文字幕| 最新亚洲激情| 国产91丝袜美女在线播放| 3d成人动漫网站| www欧美xxxx| 欧美日本韩国在线| 久久99在线观看| 国产一级片免费看| 亚洲天堂视频在线观看| av成人在线网站| 久在线观看视频| 国产精品久久看| 亚洲精品国产一区二| 日韩免费黄色av| 91精品推荐| theav精尽人亡av| 欧美美女一区二区| 麻豆免费版在线观看| 一区二区成人国产精品 | 国产在线欧美日韩| 日本女人一区二区三区| 国产精品老熟女一区二区| 精品无人区乱码1区2区3区在线| 久久久加勒比| 欧美日韩二三区| 亚洲免费资源在线播放| 日韩欧美电影在线观看| 亚洲bt欧美bt日本bt| 玖玖精品视频| 精品午夜福利在线观看| 色噜噜狠狠色综合网图区| 欧美aaaaaaaa牛牛影院| 一级黄色片在线免费观看| 色哟哟在线观看一区二区三区|