国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具)

這篇具有很好參考價(jià)值的文章主要介紹了小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、概述

Ansible是一種開源的自動(dòng)化工具,用于自動(dòng)化任務(wù)的執(zhí)行、配置管理和應(yīng)用部署。它采用基于Python編寫的簡單、輕量級(jí)的語法,可以通過SSH協(xié)議遠(yuǎn)程管理和配置多臺(tái)計(jì)算機(jī)。

Ansible的主要特點(diǎn)包括:

1、簡單易用:設(shè)計(jì)簡單,語法清晰,無需特殊培訓(xùn)即可上手使用。

2、基于模塊化的架構(gòu):使用各種內(nèi)置和第三方的插件和模塊,可以輕松地?cái)U(kuò)展功能。

3、配置管理:可以管理各種操作系統(tǒng)、網(wǎng)絡(luò)設(shè)備和云平臺(tái)等的配置。

4、任務(wù)自動(dòng)化:可以自動(dòng)執(zhí)行各種任務(wù),如軟件安裝、服務(wù)啟停等。

5、基于劇本(Playbook)的自動(dòng)化:可以編寫劇本來定義一系列任務(wù)和配置,實(shí)現(xiàn)復(fù)雜的自動(dòng)化流程。

6、可擴(kuò)展性:可以與其他工具和平臺(tái)集成,如監(jiān)控系統(tǒng)、版本控制工具等。

二、工作原理

Ansible的工作原理基于以下幾個(gè)核心概念:

1、控制節(jié)點(diǎn)(Control Node):控制節(jié)點(diǎn)是指安裝了Ansible的機(jī)器,可以是任何一臺(tái)可以訪問到被管理節(jié)點(diǎn)的計(jì)算機(jī)。在控制節(jié)點(diǎn)上,管理員可以編寫Ansible的配置文件和劇本,然后使用Ansible命令行工具來執(zhí)行這些任務(wù)。

2、主機(jī)清單(Inventory):主機(jī)清單是一個(gè)文本文件,用于定義被管理節(jié)點(diǎn)的主機(jī)列表和相關(guān)的配置信息。其中可以包含主機(jī)名、IP地址、SSH連接信息等。管理員可以根據(jù)需要在主機(jī)清單中組織和分類主機(jī)。

3、模塊(Modules):模塊是Ansible的核心組成部分,用于執(zhí)行特定的任務(wù)。Ansible自帶了眾多內(nèi)置模塊,如文件操作、軟件包管理、服務(wù)管理等。管理員可以通過在劇本中使用模塊來指定需要執(zhí)行的任務(wù),并傳遞參數(shù)。

4、劇本(Playbook):劇本是一個(gè)定義了一系列任務(wù)和配置的YAML格式文件。通過劇本,管理員可以描述需要在被管理節(jié)點(diǎn)上執(zhí)行的操作。劇本由一個(gè)或多個(gè)Play組成,每個(gè)Play包含了一組任務(wù)和要操作的主機(jī)列表。

5、執(zhí)行流程:管理員在控制節(jié)點(diǎn)上編寫好劇本,然后使用Ansible命令行工具執(zhí)行劇本。當(dāng)執(zhí)行命令時(shí),Ansible會(huì)首先與被管理節(jié)點(diǎn)建立SSH連接,然后將劇本分發(fā)到被管理節(jié)點(diǎn)上,并在每個(gè)節(jié)點(diǎn)上按照劇本定義的任務(wù)進(jìn)行執(zhí)行。執(zhí)行完成后,Ansible會(huì)將執(zhí)行結(jié)果返回到控制節(jié)點(diǎn)。

三、ansible的應(yīng)用

Ansible沒有客戶端,也不需要在被管理主機(jī)添加任何代理程序,通過SSH完成底層通信,而SSH在Linux的發(fā)型版本中默認(rèn)已經(jīng)安裝并啟用,而在Windows系統(tǒng)下則依賴于PowerShell,Ansible要求管理端必須是Linux系統(tǒng),在管理節(jié)點(diǎn)通過應(yīng)用模塊將指令發(fā)送到被管理主機(jī)上,并在執(zhí)行完畢后自動(dòng)刪除產(chǎn)生的臨時(shí)文件,根據(jù)Ansible使用過程中不同角色,可將其分為三個(gè)部分。

1、使用者如何使用Ansible實(shí)現(xiàn)自動(dòng)化運(yùn)維?

2、Ansible的工具集,Ansible可以實(shí)現(xiàn)的功能?

3、作用對(duì)象,Ansible可以影響哪些主機(jī)?

四、ansible的使用者

1、CMDB:CMDB系統(tǒng)存儲(chǔ)和管理著企業(yè)IT架構(gòu)中的各種配置信息,是構(gòu)建ITL項(xiàng)目核心工具,運(yùn)維人員可以組合CMDB和Ansible,通過CMDB直接下發(fā)指令調(diào)用Ansible工具完成操作者所希望達(dá)到的目標(biāo)。

2、PUBLIC/PRIVATE方式,Ansible除了豐富的內(nèi)置模塊外,同時(shí)提供豐富的API語言接口,如PHP,Pythone,PERL等多種流行語言,基于PUBLIC/PRIVATE,Ansible以API調(diào)用的方式運(yùn)行。

3、Ad-Hoc命令集,Users直接通過Ad-Hoc命令集調(diào)用Ansible工具來完成工作。

4、Playbooks:Users預(yù)先編寫好Ansible?Playbooks,通過執(zhí)行Playbooks中預(yù)先編排好的任務(wù)集按序執(zhí)行命令。

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

五、ansible的工具集合

Ansible工具集合了inventory,Moudles,Plugins和API。其中,inventory用來管理設(shè)備列表,可以通過分組(不同的業(yè)務(wù))實(shí)現(xiàn),對(duì)組的調(diào)用直接影響組內(nèi)所有的主機(jī);Moudles是各種執(zhí)行模塊,幾乎所有的管理任務(wù)都是通過模塊來執(zhí)行的;Plugins提供了各種附加功能;API為編程人員提供了一個(gè)調(diào)用接口,可以做Ansible的二次開發(fā)具體表現(xiàn)如下:

1、Ansible?Playbook:任務(wù)腳本,編排定義Ansible任務(wù)集的配置文件,由Ansible按序依次執(zhí)行,通常是JSON格式的YML/YAML文件;

2、inventory:Ansible管理主機(jī)清單

3、Moudle:Ansible執(zhí)行命令功能模塊,多數(shù)為內(nèi)置的核心模塊也可以用戶自定義;

4、Plugins:模塊功能的補(bǔ)充,如連接類型插件,循環(huán)插件,變量插件,過濾插件等,該功能不常用。

5、API:提供第三方程序調(diào)用的應(yīng)用程序編程接口;

六、作用對(duì)象

Ansible的作用對(duì)象不僅僅是Linux和非Linux操作系統(tǒng)的主機(jī),也可以作用于各類PUBLIC/PRIVATE,商業(yè)和非商業(yè)設(shè)備的網(wǎng)絡(luò)設(shè)施。

使用者使用Ansible或Ansible-playbooks時(shí),在服務(wù)器終端輸入Ansible的Ad-Hoc命令集或playbooks后,Ansible會(huì)遵循預(yù)先定義安排的規(guī)則將Playbooks逐步拆解為Play,再將Play組織成Ansible可以識(shí)別的任務(wù),隨后調(diào)用任務(wù)涉及的所有模板和插件,根據(jù)inventory中自定義的主機(jī)列表通過SSH將任務(wù)集以臨時(shí)文件或命令的形式傳輸給遠(yuǎn)程客戶端執(zhí)行并返回執(zhí)行結(jié)果,如果是臨時(shí)文件則執(zhí)行完畢后自動(dòng)刪除。

七、準(zhǔn)備工作

1、準(zhǔn)備三臺(tái)或多臺(tái)服務(wù)器

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

2、三臺(tái)主機(jī)關(guān)閉防火墻

3、三臺(tái)主機(jī)互相通聯(lián)

4、三臺(tái)主機(jī)互相配置ssh免密登錄

八、安裝部署

三臺(tái)主機(jī)都安裝ansible
yum -y install ansible 

修改主機(jī)的配置文件

vim /etc/ansible/hosts
到最后一行插入
[syh]               組名
192.168.77.111      成員ip
192.168.77.115      成員ip

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

ok這樣ansible就配置完成了

九、ansible的使用

ansible命令格式:ansible? 要執(zhí)行命令的組? -m? 要使用的模塊? -[選項(xiàng)]?? 指定模塊參數(shù)

在ansible中有3000多個(gè)模塊,ansible通過模塊來控制組中的成員執(zhí)行命令,修改文件內(nèi)容,安裝軟件等這里只寫幾個(gè)常用的模塊

配置完成后測(cè)試
ansible -i /etc/ansible/hosts  syh -m  ping
這里-i選項(xiàng)表示inventory 默認(rèn)為/etc/ansible/hosts
-m表示指定模塊
ping是一個(gè)模塊用來測(cè)試

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

?1、command模塊

command模塊在遠(yuǎn)程主機(jī)執(zhí)行命令,但是不支持管道,重定向等shell的特征,常用參數(shù)如下(不支持管道,不建議使用)。

  1. chdir:在遠(yuǎn)程主機(jī)上運(yùn)行命令前要提前進(jìn)入的目錄

  2. creates:在命令運(yùn)行時(shí)創(chuàng)建一個(gè)文件,如果文件已經(jīng)存在,則不會(huì)創(chuàng)建任務(wù)

  3. removes:在命令運(yùn)行時(shí)移除一個(gè)文件,如果文件不存在,則不會(huì)執(zhí)行移除任務(wù)

  4. executable:指明運(yùn)行命令的shell程序

遠(yuǎn)程查看組中成員家目錄的內(nèi)容
ansible syh -m command -a "chdir=/root ls -l"

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

查看組成員的的時(shí)間和平均負(fù)載
ansible syh -m command -a "uptime"

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

?2、shell模塊

shell模塊在遠(yuǎn)程主機(jī)執(zhí)行命令,相當(dāng)于調(diào)用遠(yuǎn)程主機(jī)的shell進(jìn)程,然后在該shell下打開一個(gè)子shell運(yùn)行命令,和command模塊的區(qū)別是它支持shell特征,如管道,重定向等。

重定向
ansible syh -m shell -a "echo 111 > 1.txt"

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

測(cè)試管道符
ansible syh -m shell -a 'ifconfig ens33 | awk 'NR==2' "

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

?3.raw模塊

最原始的方式運(yùn)行命令(不依賴python,僅通過ssh實(shí)現(xiàn))

清除yum緩存
ansible syh -m raw -a "yum clean all"

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

4、copy模塊

copy模塊用于復(fù)制指定主機(jī)文件到遠(yuǎn)程主機(jī)的指定位置,常見參數(shù)如下

  1. dest:指出復(fù)制文件的目標(biāo)目錄位置,使用絕對(duì)路徑。如果源是目錄,指目標(biāo)也要是目錄,如果目標(biāo)文件已經(jīng)存在會(huì)覆蓋原有內(nèi)容。

  2. src:指出源文件的路徑,可以使用相對(duì)路徑或絕對(duì)路徑,支持直接指定目錄,如果源是目錄則目標(biāo)也要是目錄

  3. mode:指出復(fù)制時(shí),目標(biāo)文件的權(quán)限 可選

  4. owner:指出復(fù)制時(shí),目標(biāo)文件的屬主 可選

  5. group:指出復(fù)制時(shí),目標(biāo)文件的屬組 可選

  6. content:指出復(fù)制到目標(biāo)主機(jī)上的內(nèi)容,不能與src一起使用,相當(dāng)于復(fù)制content指明的數(shù)據(jù)到目標(biāo)文件中

特別提示:

參數(shù):backup=yes===>意思是,如果目標(biāo)路徑下,有與我同名但不同內(nèi)容的文件時(shí),在覆蓋前,對(duì)目標(biāo)文件先進(jìn)行備份。

所有被管理端節(jié)點(diǎn)必須安裝libselinux-python包

將syh組中主機(jī)的/etc/hosts文件拷貝到/tmp下 指定權(quán)限為777 更改屬主為syh更改屬組為root
ansible syh -m copy -a "src=/etc/hosts dest=/tmp mode=777 owner=Rich group=root"

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

查看

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

?5、yum模塊

Yum模塊基于yum機(jī)制,對(duì)遠(yuǎn)程主機(jī)管理程序包,常用參數(shù)如下。

  1. name:程序包的名稱,可以帶上版本號(hào),如不指定版本號(hào)默認(rèn)安裝為最新版本

  2. state=present?|?latest?|?absent:指明對(duì)程序包執(zhí)行的操作,present表示安裝程序包,latest表示安裝最新版本的程序包,absent表示卸載程序包

  3. disablerepo:在用yum安裝時(shí)禁用某個(gè)倉庫的ID

  4. enablerepo:在用yum安裝時(shí)啟用某個(gè)參考的ID

  5. conf_file:yum運(yùn)行時(shí)的配置文件而不是使用默認(rèn)的配置文件

  6. diable_gpg_check=yes?|?no:是否啟用完整性校驗(yàn)功能

在組成員中安裝dns服務(wù)
ansible syh -m yum -a "name=bind state=present"

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

查看

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

7.service模塊?

Service模塊為用來管理遠(yuǎn)程主機(jī)上的服務(wù)的模塊,常見參數(shù)如下:

  1. name:被管理的服務(wù)名稱

  2. state=started?|?stopped?|?restarted:動(dòng)作包含啟動(dòng)關(guān)機(jī)或重啟

  3. enabled=yes?|?no:表示是否設(shè)置該服務(wù)開機(jī)自啟動(dòng)

  4. runlevel:如果設(shè)定了enabled開機(jī)自啟動(dòng),則要定義在哪些運(yùn)行目標(biāo)下自啟動(dòng)

啟動(dòng)組成員中http服務(wù),并設(shè)置為開機(jī)自啟
ansible syh -m service -a "name=httpd state=started enabled=yes"

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

?查看

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

?8、user模塊

User模塊用于管理遠(yuǎn)程主機(jī)上的用戶賬戶,常見參數(shù)如下:

  1. name:必選參數(shù) ?賬號(hào)名稱

  2. state=present?|?absent:創(chuàng)建賬號(hào)或者刪除賬號(hào),present表示創(chuàng)建,absent表示刪除

  3. system=yes?|?no:是否為系統(tǒng)賬號(hào)

  4. uid:用戶UID

  5. group:用戶的基本組

  6. groups:用戶的附加組

  7. shell:默認(rèn)使用的shell

  8. home:用戶的家目錄

  9. move_home=yes?|?no:如果設(shè)置的家目錄已經(jīng)存在,是否將已經(jīng)存在的家目錄進(jìn)行移動(dòng)

  10. password:用戶的密碼,建議使用加密后的字符串

  11. comment:用戶的注釋信息

  12. remove=yes?|?no:當(dāng)state=absent時(shí),是否刪除用戶的家目錄

創(chuàng)建一個(gè)程序用戶
ansible syh -m user -a 'name=user1 system=yes uid=502 group=root groups=sshd shell=/sbin/nologin home=/home/user1 password=user1 comment="test user"' 

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

?9、script模塊

script模塊能夠?qū)崿F(xiàn)遠(yuǎn)程服務(wù)器批量運(yùn)行本地的shell腳本

vim /opt/file.sh                  在opt目錄下創(chuàng)建一個(gè)創(chuàng)建20個(gè)測(cè)試文件的腳本
#!/bin/bash

touch /tmp/file{1..20}.txt

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

查看

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

?十、playkook(劇本)的使用

playbook格式:ansible-playbook -[選項(xiàng)] 編寫的yml文件路徑

Playbook配置文件使用YAML語法,具有簡潔明了,結(jié)構(gòu)清晰等特點(diǎn)。Playbook配置文件類似于shell腳本,是一個(gè)YAML格式的文件,用于保存針對(duì)特定需求的任務(wù)列表,前面介紹的ansible命令雖然可以完成各種任務(wù),但是當(dāng)配置一系列任務(wù)時(shí),逐條輸入命令就顯得效率非常低下,更有效的方式在playbook配置中配置所有的任務(wù)代碼,利用ansible-playbook命令執(zhí)行該文件,可以實(shí)現(xiàn)自動(dòng)化運(yùn)維,YAML文件的擴(kuò)展名通常為.yaml或.yml。

YAML語法和其他高級(jí)語言類似,其結(jié)構(gòu)通過縮進(jìn)來展示,通過“-“來表達(dá)選項(xiàng),通過冒號(hào)“:”來分隔鍵和值。整個(gè)文件以“---”開始并以“”結(jié)束。

1、playbook選項(xiàng)

--syntax-check:檢測(cè)yaml文件的語法

-C(--check):測(cè)試,不會(huì)改變主機(jī)的任何配置

--list-hosts:列出yaml文件影響的主機(jī)列表

--list-tasks:列出yaml文件的任務(wù)列表

--list-tags:列出yaml文件中的標(biāo)簽

-t?TAGS(--tags=TAGS):表示只執(zhí)行指定標(biāo)簽的任務(wù)

--skip-tags=SKIP_TAGSS:表示除了指定標(biāo)簽任務(wù),執(zhí)行其他任務(wù)

--start-at-task=START_AT:從指定任務(wù)開始往下運(yùn)行

2、修改配置文件(方便測(cè)試)

vim /etc/ansible/hosts
[test1]
192.168.77.112

[test2]
192.168.77.115

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

?3、編寫playbook

所有的“-”和“:”后面均有空格,而且要注意縮進(jìn)和對(duì)齊

Playbook的核心元素包含:

  1. hosts:任務(wù)的目標(biāo)主機(jī),多個(gè)主機(jī)用冒號(hào)分隔,一般調(diào)用/etc/ansible/hosts中的分組信息

  2. remote_user:遠(yuǎn)程主機(jī)上,運(yùn)行此任務(wù)的默認(rèn)為root運(yùn)行

  3. tasks:任務(wù),即定義的具體任務(wù),由模塊定義的操作列表

  4. handlers:觸發(fā)器,類似tasks,只是在特定的條件下才會(huì)觸發(fā)任務(wù)。某任務(wù)的狀態(tài)在運(yùn)行后changed時(shí),可通過“notify”通知給相應(yīng)的handlers進(jìn)行觸發(fā)執(zhí)行。

  5. roles:角色,將hosts剝離出去,由tasks,handlers等所組成的一種特定的結(jié)構(gòu)集合。

vim /etc/ansible/test1.yml

---										#開頭格式(可忽略)
- hosts: test1							#表示對(duì)test01(192.168.77.112)的操作
  remote_user: root						#遠(yuǎn)端執(zhí)行用戶身份root
  tasks:								#任務(wù)列表
    - name: adduser						#任務(wù)名稱
      user: name=user2 state=present	#執(zhí)行user模塊創(chuàng)建用戶
      tags:								#創(chuàng)建tag標(biāo)簽
      - testa							#tag標(biāo)簽為testa
    - name: addgroup					#任務(wù)名稱
      group: name=tests system=yes		#執(zhí)行g(shù)roup模塊創(chuàng)建一個(gè)組賬號(hào)
      tags:								#創(chuàng)建tag標(biāo)簽
      - testb							#tag標(biāo)簽為testb
- hosts: test2							#表示對(duì)test02(192.168.77.115)的操作
  remote_user: root						#遠(yuǎn)端執(zhí)行用戶身份root
  tasks:								#任務(wù)列表
    - name: cf							#任務(wù)名稱
      copy: src=/etc/passwd dest=/home	#執(zhí)行copy模塊復(fù)制文件
      tags:								#創(chuàng)建tag標(biāo)簽
      - testc							#tag標(biāo)簽為testsc
...										#結(jié)尾格式(可忽略)

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

測(cè)試palybook
ansible-playbook -C /etc/ansible/test.yml

沒有報(bào)錯(cuò)就可以執(zhí)行了(有些特殊情況就算沒有報(bào)錯(cuò)也會(huì)執(zhí)行失?。?/h4>

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

?執(zhí)行

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

十一、觸發(fā)器

需要觸發(fā)才能執(zhí)行的任務(wù),當(dāng)之前定義在tasks中的任務(wù)執(zhí)行完成后,若希望在基礎(chǔ)上觸發(fā)其他的任務(wù),這時(shí)就需要定義handlers。例如,當(dāng)通過ansible的模塊對(duì)目標(biāo)主機(jī)的配置文件進(jìn)行修改之后,如果任務(wù)執(zhí)行成功,可以觸發(fā)一個(gè)觸發(fā)器,在觸發(fā)器中定義目標(biāo)主機(jī)的服務(wù)重啟操作,以使配置文件生效,handlers觸發(fā)器具有以下優(yōu)點(diǎn)。

  1. handlers是Ansible提供的條件機(jī)制之一,handlers和task很類似,但是他在被task通知的時(shí)候才會(huì)觸發(fā)執(zhí)行

  2. handlers只會(huì)在所有任務(wù)執(zhí)行完成后執(zhí)行,而且即使被通知了多次,它也只會(huì)執(zhí)行一次,handlers按照定義的順序依次執(zhí)行

---											    //固定開頭格式
- hosts: test1									//指定運(yùn)行主機(jī)為test01組
  remote_user: root						        //指定對(duì)端運(yùn)行用戶的身份
  tasks: 									    //任務(wù)列表
        - name: change port				        //定義任務(wù)名稱
          command: sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf
			                                    //模塊為command:使用sed命令替換監(jiān)聽端口為8080
          notify: 				                //完成任務(wù)后調(diào)用restart httpd server觸發(fā)器
          - restart httpd server		
  handlers: 			                        //配置觸發(fā)器
  - name: restart httpd server				    //指定觸發(fā)器名字
    service: name=httpd state=restarted			//指定觸發(fā)條件為重啟httpd服務(wù)

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化 測(cè)試playbook (沒有報(bào)錯(cuò))

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

?執(zhí)行playbook(成功)

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

十二、變量

vim /etc/ansible/test_vars.yml   編寫自定義變量
---
- hosts: all
 vars:                           #定義變量
 - names: "cloud"                #第一個(gè)name變量
  age: "3"                       #第二個(gè)age變量
 tasks:
 - name: "{{ names }}"           #{{}}兩對(duì)大括號(hào)引用變量,變量名兩頭空格
  shell: echo "myname {{ names }},myage {{ age }}"
  register: var_result
 - debug: var=var_result
...

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

圖中紅色的就是剛才定義的變量

?小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

十三、playbook中的角色

將多種不同的tasks的文件集中存儲(chǔ)在某個(gè)目錄下,則該目錄就是角色,角色一般存放在/etc/ansible/roles/目錄中,可通過ansible的配置文件來調(diào)整默認(rèn)的角色目錄。/etc/ansible/roles目錄下有很多的子目錄,其中每一個(gè)子目錄對(duì)應(yīng)一個(gè)角色。每個(gè)角色也有自己的目錄結(jié)構(gòu)。

/etc/ansible/roles/為角色集合,該目錄下有自定義的各個(gè)子目錄

  1. mariadb:mysql角色

  2. apache:httpd角色

  3. nginx:nginx角色

每個(gè)角色的定義,以特定的層級(jí)目錄結(jié)構(gòu)進(jìn)行組織,以Mariadb(mysql角色)?為例

  1. files:存放copy或script等模塊調(diào)用的文件

  2. templates:存放template模塊查找所需要的模板文件的目錄,如mysql配置文件等模板

  3. tasks:任務(wù)存放目錄

  4. handlers:存放相關(guān)觸發(fā)執(zhí)行器的目錄

  5. vars:變量存放的目錄

  6. meta:用于存放此角色元數(shù)據(jù)

  7. default:默認(rèn)變量存放目錄,文件中定義了此角色使用的默認(rèn)變量

上述目錄中tasks,handlers,vars,meta,default至少應(yīng)該包含一個(gè)main.yml,該目錄下也可以有其他的yml文件,但是需要在main.yml文件中用include指定將其他.yml文件包含進(jìn)來。

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

十三、用ansible-playbook給成員安裝mariadb

創(chuàng)建數(shù)據(jù)庫角色
mkdir -pv /etc/ansible/roles/mariadb/{files,tasks,handlers}

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

vim /etc/ansible/mariadb.yml                    創(chuàng)建mariadb角色
---
- hosts: test1:test2                            需要執(zhí)行的主機(jī)
  remote_user: root                             執(zhí)行的用戶
  roles:                                        
    - mariadb                                   角色
...

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

cd /etc/ansible/roles/mariadb/tasks     進(jìn)入任務(wù)存放目錄
vim main.yml                            編寫任務(wù)
---			                                    //固定開頭格式
- name: install mariadb			                //指定任務(wù)名稱安裝mariadb數(shù)據(jù)庫
  yum: name=mariadb-server state=present		//執(zhí)行yum模塊安裝mariadb
- name: move config file		                //指定任務(wù)名稱移除原有配置文件
  shell: "[ -e /etc/my.cnf ] && mv /etc/my.cnf /etc/my.cnf.bak"  //判斷有就移除
- name: provide a new config file				//創(chuàng)建一個(gè)新的配置文件
  copy: src=my.cnf dest=/etc/my.cnf		        //src源會(huì)自動(dòng)到files文件去找my.cnf文件
- name: reload mariadb					        //指定任務(wù)名稱為重啟mariadb
  shell: systemctl restart mariadb              //shell模塊重啟
- name: create database testdb		            //按要求添加執(zhí)行如下sql語句
  shell: mysql -u root -e "create database testdb;grant all privileges on testdb.* to test@192.168.77.% identified by 'test123';flush privileges;"
  notify:				                        //配置觸發(fā)器
  - restart mariadb		                        //為重啟mariadb
...

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

cd ../handlers/                             進(jìn)入觸發(fā)器文件
vim main.yml                                編寫觸發(fā)器
---
- name: restart mariadb				        //引用上面配置的觸發(fā)器
  service: name=mariadb state=restarted     //觸發(fā)后重啟mariadb
...

?小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

cd ../files/
cp /etc/my.cnf /etc/ansible/roles/mariadb/files/
ls
my.cnf				//準(zhǔn)備my.cnf文件
cd /etc/ansible/
tree	

?小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

測(cè)試(成功)

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化

?執(zhí)行成功

小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具),運(yùn)維,ansible,自動(dòng)化文章來源地址http://www.zghlxwxcb.cn/news/detail-596085.html

以上就是ansible的基本使用

如有錯(cuò)誤歡迎各位大佬批評(píng)指正,我們共同進(jìn)步

到了這里,關(guān)于小白到運(yùn)維工程師的自學(xué)之路 第五十四集 (ansible自動(dòng)化運(yùn)維工具)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 小白到運(yùn)維工程師自學(xué)之路 第四十九集 (正則表達(dá)式之grep)

    小白到運(yùn)維工程師自學(xué)之路 第四十九集 (正則表達(dá)式之grep)

    1、正則表達(dá)式(Regular Expression,簡稱為RegExp或Regex)是一種用于描述、匹配和操作文本的字符串模式的表達(dá)式。它提供了一種強(qiáng)大而靈活的方式來進(jìn)行字符串的搜索、替換、提取和驗(yàn)證操作。 2、正則表達(dá)式可以用于各種編程語言和應(yīng)用程序中,包括文本編輯器、命令行工具

    2024年02月13日
    瀏覽(26)
  • 小白到運(yùn)維工程師自學(xué)之路 第四十四集 (mariadb高可用集群故障轉(zhuǎn)移)

    小白到運(yùn)維工程師自學(xué)之路 第四十四集 (mariadb高可用集群故障轉(zhuǎn)移)

    ????????故障轉(zhuǎn)移是指在集群中某個(gè)節(jié)點(diǎn)發(fā)生故障時(shí),自動(dòng)將服務(wù)轉(zhuǎn)移到其他正常節(jié)點(diǎn)上的 過程。在MariaDB高可用集群中,通常使用主從復(fù)制的方式來實(shí)現(xiàn)故障轉(zhuǎn)移。其中一個(gè) 節(jié)點(diǎn)被指定為主節(jié)點(diǎn),負(fù)責(zé)處理所有的寫操作和部分讀操作,其他節(jié)點(diǎn)作為從節(jié)點(diǎn),負(fù) 責(zé)復(fù)制主

    2024年02月11日
    瀏覽(16)
  • 小白到運(yùn)維工程師自學(xué)之路 第六十二集 (docker持久化與數(shù)據(jù)卷容器)

    小白到運(yùn)維工程師自學(xué)之路 第六十二集 (docker持久化與數(shù)據(jù)卷容器)

    一、概述 Docker持久化是指將容器中的數(shù)據(jù)持久保存在主機(jī)上,以便在容器重新啟動(dòng)或遷移時(shí)不丟失數(shù)據(jù)。由于Docker容器是臨時(shí)和可變的,它們的文件系統(tǒng)默認(rèn)是易失的,這意味著容器中的任何更改或創(chuàng)建的文件都只存在于此容器的生命周期內(nèi)。但是,在許多場景中,我們希望

    2024年02月14日
    瀏覽(16)
  • 小白到運(yùn)維工程師自學(xué)之路 第七十九集 (基于Jenkins自動(dòng)打包并部署Tomcat環(huán)境)2

    小白到運(yùn)維工程師自學(xué)之路 第七十九集 (基于Jenkins自動(dòng)打包并部署Tomcat環(huán)境)2

    ? 拉到最后選擇構(gòu)建后操作 拉到最后點(diǎn)擊保存 ? 訪問192.168.77.19:8080/probe 賬戶密碼都是tomcat ?

    2023年08月27日
    瀏覽(20)
  • 猿創(chuàng)征文|棄文從工,從小白到螞蟻工程師,我的 Java 成長之路

    猿創(chuàng)征文|棄文從工,從小白到螞蟻工程師,我的 Java 成長之路

    最近 CSDN 開展了猿創(chuàng)征文,希望博主寫文章講述自己在某個(gè)領(lǐng)域的技術(shù)成長歷程。 之前也曾想找個(gè)機(jī)會(huì)寫篇文章,記錄下自己的成長歷程。 因此,借著這個(gè)機(jī)會(huì)寫下這篇文章。 在回顧自己的成長歷程的同時(shí),希望對(duì)一些同學(xué)的學(xué)習(xí)和工作也會(huì)有一些啟發(fā)和幫助。 閱讀本文,

    2024年02月16日
    瀏覽(24)
  • 后端工程師晉升之路

    入門 0.5 年 第 1 計(jì):不要過于糾結(jié)方向選擇問題。 開始入門的時(shí)候,我們可能都會(huì)糾結(jié)于選擇前端還是后端,選擇了后端還猶豫到底選 Java、Go 還是 Python。 其實(shí),我覺得不用過于糾結(jié)。如果說你對(duì)偏前端的內(nèi)容感興趣,那就從前端入手;對(duì)數(shù)據(jù)庫方面的內(nèi)容感興趣,那就從

    2024年02月10日
    瀏覽(21)
  • 零基礎(chǔ)如何自學(xué)成為網(wǎng)絡(luò)安全工程師

    零基礎(chǔ)如何自學(xué)成為網(wǎng)絡(luò)安全工程師

    一份網(wǎng)絡(luò)攻防滲透測(cè)試的學(xué)習(xí)路線,不藏私了! ?? 【一幫助安全學(xué)習(xí)一】??這里自取256G網(wǎng)絡(luò)安全自學(xué)資料 1、學(xué)習(xí)編程語言(php+mysql+js+html) php+mysql可以幫助你快速的理解B/S架構(gòu)是怎樣運(yùn)行的,只有理解了他的運(yùn)行原理才能夠真正的找到問題/漏洞所在。所以對(duì)于國內(nèi)那些上來

    2024年02月16日
    瀏覽(24)
  • 數(shù)據(jù)庫系統(tǒng)工程師——第五章 網(wǎng)絡(luò)基礎(chǔ)知識(shí)

    數(shù)據(jù)庫系統(tǒng)工程師——第五章 網(wǎng)絡(luò)基礎(chǔ)知識(shí)

    計(jì)算機(jī)網(wǎng)絡(luò)的定義:利用通信設(shè)備和線路將地理位置分散的、功能獨(dú)立的自主計(jì)算機(jī)系統(tǒng)或由計(jì)算機(jī)控制的外部設(shè)備連接起來,在網(wǎng)絡(luò)操作系統(tǒng)的控制下,按照約定的通信協(xié)議進(jìn)行信息交換,實(shí)現(xiàn)資源共享的系統(tǒng)。 計(jì)算機(jī)網(wǎng)絡(luò)發(fā)展的4個(gè)階段:具有通信功能的單機(jī)系統(tǒng)→具通

    2023年04月26日
    瀏覽(22)
  • 【運(yùn)維工程師學(xué)習(xí)】Debian安裝

    【運(yùn)維工程師學(xué)習(xí)】Debian安裝

    選擇鏡像文件 進(jìn)入安裝選擇界面 graphical install 圖形安裝 Install 安裝系統(tǒng) advanced options 高級(jí)選項(xiàng) Help 幫助 accessible dark contrast installer menu 無障礙暗色對(duì)比度安裝程序菜單 (旨在為視力有障礙的用戶提供更好的可訪問性,提供了: 高對(duì)比度主題、大字體選項(xiàng)、屏幕閱讀器支持) In

    2024年02月12日
    瀏覽(20)
  • 初級(jí)運(yùn)維工程師面試題

    1、apache有幾種工作模式,分別簡述兩種工作模式及其優(yōu)缺點(diǎn)? apache主要有兩種工作模式:prefork(apache的默認(rèn)安裝模式)和worker(可以在編譯的時(shí)候添加–with-mpm=worker選項(xiàng)) prefork的特點(diǎn)是:(預(yù)派生) 1.這種模式可以不必在請(qǐng)求到來時(shí)再產(chǎn)生新的進(jìn)程,從而減小了系統(tǒng)開銷 2.可以防

    2024年02月08日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包