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

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作

這篇具有很好參考價(jià)值的文章主要介紹了自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

一、理論

1. Ansible

2.部署Ansible自動(dòng)化運(yùn)維工具

3.Ansible常用模塊

4.hostsinverntory主機(jī)清單

二、實(shí)驗(yàn)

1.部署Ansible自動(dòng)化運(yùn)維工具

2.ansible 命令行模塊

?3.hostsinverntory主機(jī)清單

三、問(wèn)題

1. ansible遠(yuǎn)程shell失敗

?2.組變量查看webservers內(nèi)主機(jī)ip報(bào)錯(cuò)

?編輯

?3.組嵌套查看webs內(nèi)主機(jī)ip報(bào)錯(cuò)

四、總結(jié)


一、理論

1. Ansible

(1)概念

Ansible是基于模塊工作的,只是提供了一種運(yùn)行框架,本身沒(méi)有完成任務(wù)的能力,真正操作的是Anisble的模塊。每個(gè)模塊都是獨(dú)立的、實(shí)現(xiàn)了批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令等功能。

Ansible是一款簡(jiǎn)潔、高效的運(yùn)維自動(dòng)化工具。只需要將ansible安裝在主控機(jī)器上,就可以通過(guò)SSH協(xié)議實(shí)現(xiàn)針對(duì)大量受管服務(wù)器的批量化、劇本化的管理。通過(guò)過(guò)Ansible實(shí)現(xiàn)遠(yuǎn)程控制,主控機(jī)=被控機(jī),通過(guò)SSH實(shí)現(xiàn)?;赑ython開(kāi)發(fā),集合了眾多運(yùn)維工具(puppet、cfengine、chef、func、fabric)的優(yōu)點(diǎn),實(shí)現(xiàn)了批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令等功能。
?

(2)架構(gòu)

? ? ? ? Ansible架構(gòu)中有兩種計(jì)算機(jī)類型,即控制節(jié)點(diǎn)和受管主機(jī)。 Ansible在控制節(jié)點(diǎn)上安裝和運(yùn)行,計(jì)算機(jī)上也含有Ansible項(xiàng)目文件的副本??刂乒?jié)點(diǎn)可以是管理員的筆記本電腦、多個(gè)管理員共享的系統(tǒng),或者運(yùn)行紅帽Ansible Tower的服務(wù)器。
? ? ? ? 受管主機(jī)列在清單中,清單還可以將這些系統(tǒng)組織到組中,以便于集中管理。清單可以在靜態(tài)文本文件中定義,或者通過(guò)從外部來(lái)源獲取信息的腳本來(lái)動(dòng)態(tài)確定。
Ansible用戶無(wú)需編寫(xiě)復(fù)雜的腳本,而只要?jiǎng)?chuàng)建高級(jí)別play即可確保主機(jī)或主機(jī)組處于特定狀態(tài)。 Play按該play指定的順序?qū)χ鳈C(jī)執(zhí)行一系列任務(wù)。這些play通過(guò)采用YAML格式的文本文件來(lái)表達(dá)。包含一個(gè)或多個(gè)play的文件稱為playbook。
? ? ? ?每個(gè)任務(wù)運(yùn)行一個(gè)模塊,即(使用Python, Powershell或某種其他語(yǔ)言編寫(xiě)的)一小段代碼。各個(gè)模塊基本上是您的工具包中的一個(gè)工具。Ansible隨附了數(shù)百個(gè)實(shí)用模塊,它們能夠執(zhí)行許多不同的自動(dòng)化任務(wù)。它們可以作用于系統(tǒng)文件,安裝軟件或者進(jìn)行AP調(diào)用。

? ? ? ?在任務(wù)中使用時(shí),模塊通常確保計(jì)算機(jī)的某一特定方面處于特定的狀態(tài)。例如,使用某一模塊的任務(wù)可以確保某一文件存在且具有特定的權(quán)限和內(nèi)容,而使用另一不同模塊的任務(wù)可確保已掛載特定的文件系統(tǒng)。如果系統(tǒng)不處于指定的狀態(tài),任務(wù)應(yīng)將它置于該狀態(tài)。如果系統(tǒng)已處于該狀態(tài),則不執(zhí)行任何操作。如果任務(wù)失敗, Ansible的默認(rèn)行為是對(duì)發(fā)生了錯(cuò)誤的主機(jī)中止playbook的其余部分。

? ? ? QA任務(wù)、play和playbook設(shè)計(jì)為具有冪等性。這意味著,您可以在相同主機(jī)上多次安全地運(yùn)行一個(gè)playbooko當(dāng)您的系統(tǒng)處于正確狀態(tài)時(shí), playbook在運(yùn)行時(shí)不會(huì)進(jìn)行任何更改。這意味著,您應(yīng)該能夠在相同主機(jī)上多次安全地運(yùn)行一個(gè)playbook。當(dāng)您的系統(tǒng)處于正確狀態(tài)時(shí), playbook在運(yùn)行時(shí)不應(yīng)進(jìn)行任何更改。您可以使用多個(gè)模塊來(lái)運(yùn)行任意命令。但是,您必須小心使用這些模塊,以確保它們以冪等方式運(yùn)行。

? ? ? ? Ansible也使用插件。插件是您可以添加到Ansible中的代碼,以對(duì)它進(jìn)行擴(kuò)展并使它適合新的用途和平臺(tái)。

? ? ? ? Ansible架構(gòu)是無(wú)代理的。通常,當(dāng)管理員運(yùn)行Ansible Playbook或臨時(shí)命令時(shí),控制節(jié)點(diǎn)使用SSH (默認(rèn))或WinRM連接受管主機(jī)。這意味著客戶端無(wú)需在受管主機(jī)上安裝特定于Ansible的代理,也不需要允許將特殊的網(wǎng)絡(luò)流量傳輸?shù)侥骋环菢?biāo)準(zhǔn)端口。

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?

(3)特點(diǎn)

①部署簡(jiǎn)單,只需要主控端部署Ansible環(huán)境,被控端無(wú)需做任何操作;

②默認(rèn)使用SSH協(xié)議設(shè)備進(jìn)行管理;

③主從集中化管理;

④配置簡(jiǎn)單、功能強(qiáng)大、擴(kuò)展性強(qiáng);

⑤支持API及自定義模塊,可以通過(guò)Python輕松擴(kuò)展

⑥通過(guò)playbooks來(lái)定制強(qiáng)大的配置、狀態(tài)管理

⑦對(duì)云平臺(tái)和大數(shù)據(jù)都有很好的支持
?

(4)優(yōu)勢(shì)

①輕便性:無(wú)需在被控制服務(wù)器上安裝客戶端,Ansible基于ssh協(xié)議

②冪等性:大部分模塊有冪等性,即如果輸入systemctl stop firewalld當(dāng)發(fā)現(xiàn)要停止的服務(wù)已經(jīng)停止就不會(huì)做任何操作了,多次停止不會(huì)改變結(jié)果。systemtl restart是非冪等的。

③判斷性:大部分模塊在執(zhí)行時(shí)都會(huì)判斷目標(biāo)節(jié)點(diǎn)是否要執(zhí)行任務(wù),所有重復(fù)執(zhí)行某個(gè)任務(wù)大部分時(shí)間不會(huì)產(chǎn)生副作用

④簡(jiǎn)介性:一個(gè)窗口即可管理所有需要控制的機(jī)器,無(wú)需開(kāi)啟多個(gè)窗口
?

(5)核心程序

①HostInventory:記錄由Ansible管理的主機(jī)信息,端口,ip,密碼等

②playbooks:'劇本'YAML格式文件,多任務(wù)定義在一個(gè)文件中,定義主機(jī)需要調(diào)用那些模塊完成功能

③core modeules:核心模塊主要操作通過(guò)調(diào)用核心模塊來(lái)完成管理任務(wù)

④customodules:自定義模塊,完成核心模塊無(wú)法完成的模塊,支持多種語(yǔ)言編寫(xiě)

⑤connectiontugins:連接插件,ansible和主機(jī)通信使用(ssh協(xié)議)
自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(6)工作原理及流程

①加載自己的配置文件,默認(rèn)/etc/ansible/ansible.cfg

②查找對(duì)應(yīng)的主機(jī)的配置文件,找到要執(zhí)行的主機(jī)或組/etc/ansible/hosts文件

③加載自己對(duì)應(yīng)的模塊文件,如command、yum、ping、

④通過(guò)ansible將模塊命令生成對(duì)應(yīng)的臨時(shí)py文件(類似python腳本),并將該文件傳輸至被管理端

⑤傳輸?shù)皆诒豢刂贫说膶?duì)應(yīng)用戶的家目錄下.ansible/tmp/xxx/xxx.py

⑥被控制端給傳輸過(guò)來(lái)的py文件加執(zhí)行權(quán)限

⑦執(zhí)行并返回結(jié)果,執(zhí)行完成后刪除py文件并sleep 0退出
自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

2.部署Ansible自動(dòng)化運(yùn)維工具

環(huán)境

表1 主機(jī)

管理端 192.168.111.199 ansible
被管理端 192.168.111.69
被管理端 192.168.111.186
被管理端 192.168.111.100

(1)部署

yum install  -y epel-release 
#安裝epel-release
yum install -y  ansible
#安裝ansible
#配置文件位置:/etc/ansible/ansible
#hosts文件位置:/etc/ansible/hosts
vim /etc/ansible/hosts
#編輯hosts文件添加被管理的機(jī)器,內(nèi)容如下

[webservers]		#配置組名
192.168.204.69	#組里包含的被管理的主機(jī)IP地址或主機(jī)名(主機(jī)名需要先修改/etc/hosts文件)
 
[dbservers]
192.168.204.186
#[webservers]、[dbservers]各為一個(gè)組,組內(nèi)1個(gè)服務(wù)器,添加完畢保存退出
配置密鑰對(duì)驗(yàn)證

#使用ssh免交互,需要下載sshpass工具,參考sshpass免密登錄
ssh-keygen -t rsa		#一路回車,使用免密登錄(配置密鑰對(duì)驗(yàn)證)
sshpass -p '123123' ssh-copy-id root@192.168.204.69
sshpass -p '123123' ssh-copy-id root@192.168.204.186
或者直接輸入

ssh-copy-id root@192.168.204.69          #上傳公鑰到被控制端
ssh-copy-id root@192.168.204.185

#進(jìn)入生成的公鑰路徑將公鑰傳輸給備管理的服務(wù)器,傳輸需要輸入每臺(tái)備管理服務(wù)的root密碼

ansible ansible-doc  -l 
#安裝完畢,此命令可以查看有哪些ansible模塊,按q退出

ansible  webservers  -m command  -a 'pwd'
#安裝完成嘗試管理webservers組輸入pwd命令
ansible  all   -a 'ls'
#安裝完成嘗試管理所有hosts中主機(jī)輸入ls命令,不指定模塊默認(rèn)為command模塊
ansible  192.168.204.69  -m -a 'ls'
#安裝完成嘗試管理192.168.204.69服務(wù)器輸入pwd命令

3.Ansible常用模塊

(1) ansible命令行模塊
命令格式:ansible <組名>/ip -m <模塊> -a<參數(shù)列表>

ansible-doc -s 模塊

#-s 列出指定模塊的描述信息和操作動(dòng)作
ansible-doc -s command		
[root@ansible ansible]# ansible-doc -s command
- name: Execute commands on targets
  command:
      argv:                  # Passes the command as a list rather than a string. Use `argv' to avoid quoting values that would otherwise be interpreted
                               incorrectly (for example "user name"). Only the string or the list form can be provided, not both.
                               One or the other must be provided.
      chdir:                 # Change into this directory before running the command.
      cmd:                   # The command to run.
      creates:               # A filename or (since 2.0) glob pattern. If it already exists, this step *won't* be run.
      free_form:             # The command module takes a free form command to run. There is no actual parameter named 'free form'.
      removes:               # A filename or (since 2.0) glob pattern. If it already exists, this step *will* be run.
      stdin:                 # Set the stdin of the command directly to the specified value.
      stdin_add_newline:     # If set to `yes', append a newline to stdin data.
      strip_empty_ends:      # Strip empty lines from the end of stdout/stderr in result.
      warn:                  # Enable or disable task warnings.

(2) command模塊
此模塊不能使用管道符和重定向,指定模塊默認(rèn)為commend模塊

舉例:ansible ?webservers ? -m ? command ? -a ?'date'

調(diào)用command模塊在192.168.204.69服務(wù)器上執(zhí)行l(wèi)s命令,若不指定則默認(rèn)為command模塊

#指定 ip 執(zhí)行 date
ansible 192.168.204.69 -m command -a 'date'

#指定組執(zhí)行 date
ansible webservers -m command -a 'date'			
ansible dbservers -m command -a 'date'       

#all 代表所有 hosts 主機(jī)
ansible all -m command -a 'date'			

#如省略 -m 模塊,則默認(rèn)運(yùn)行 command 模塊
ansible all -a 'ls /'		

常用的參數(shù):

表2? command常用參數(shù)

chdir 在遠(yuǎn)程主機(jī)上運(yùn)行命令前提前進(jìn)入目錄
creates 判斷指定文件是否存在,如果存在,不執(zhí)行后面的操作
removes 判斷指定文件是否存在,如果存在,執(zhí)行后面的操作
ansible all -m command -a "chdir=/home  ls ./"

(3) shell模塊
用遠(yuǎn)程主機(jī)的shell進(jìn)程,打開(kāi)一個(gè)子shell進(jìn)行命令操作,支持管道符和重定向。

在遠(yuǎn)程主機(jī)執(zhí)行命令,相當(dāng)于調(diào)用遠(yuǎn)程主機(jī)的shell進(jìn)程,然后在該shell下打開(kāi)一個(gè)子shell運(yùn)行命令(支持管道符號(hào)等功能)。

舉例:ansible webservers -m shell -a 'ifconfig ens33 |awk "NR==2{print \$2}"'
提取webservers組中的所有ip地址,注意雙引號(hào)不識(shí)別變量所以要加轉(zhuǎn)義符\

列出指定模塊的描述信息和操作動(dòng)作

ansible-doc -s shell

首先在192.168.204.186服務(wù)器上創(chuàng)建一個(gè)用戶

[root@localhost ~]# useradd test

使用shell給dbservers組中的服務(wù)器中的用戶設(shè)置密碼

ansible dbservers -m shell -a 'echo 666666 | passwd --stdin test'

截取dbservers組中主機(jī)的ip

ansible dbservers -m shell -a 'echo $(ifconfig ens33 | awk "NR==2 {print $2}") | cut -d " " -f2'
?
ansible dbservers -m shell -a 'echo $(ifconfig ens33 | awk "NR==2 {print \$2}")'

(4)cron模塊
遠(yuǎn)程主機(jī)定義計(jì)劃任務(wù),2種狀態(tài)present(添加)和absent(移除),默認(rèn)為present。

舉例:ansible ?webservers -m cron ?-a 'name=crontest hour="*/12" ?day="*/1" job="/usr/bin/echo ? cron test " ? '?

? ? ? ? ansible webservers -m cron -a "name=crontest ?state=absent"

列出指定模塊的描述信息和操作動(dòng)作

#按 q 退出
ansible-doc -s cron				

常用的參數(shù):

表3 cron常用參數(shù)

minute/hour/day/month/weekday 分/時(shí)/日/月/周
job 任務(wù)計(jì)劃要執(zhí)行的命令
name 任務(wù)計(jì)劃的名稱
#每年 10 月 21 日  每2個(gè)小時(shí)的10 30 50分,執(zhí)行一次輸出helloworld的操作,名字就叫做test cron
ansible webservers -m cron -a 'minute="*10,30,50" hour="*/2" day="21" month="10" job="/bin/echo helloworld" name="test cron"'
 
#查看計(jì)劃任務(wù)
ansible webservers -a 'crontab -l'            
 
#移除計(jì)劃任務(wù),假如該計(jì)劃任務(wù)沒(méi)有取名字,name=None即可
ansible webservers -m cron -a 'name="test cron" state=absent'        

(5)?user模塊
用戶管理模塊

舉例:ansible webservers -m user -a 'name="crontest" ?uid="10086" ?group="root"'

? ? ? ? ? ?ansible webservers -m user -a 'name=crontest ? ?state=absent ?remove=yes'

列出指定模塊的描述信息和操作動(dòng)作

#按 q 退出
ansible-doc -s user		

常用的參數(shù):

表4 user常用參數(shù)

name 用戶名,必選參數(shù)
state=present|absent 創(chuàng)建賬號(hào)或者刪除賬號(hào),present表示創(chuàng)建,absent表示刪除
system=yes|no 是否為系統(tǒng)賬號(hào)
uid 用戶uid
group 用戶基本組
shell 默認(rèn)使用的shell
move_home=yse|no 如果設(shè)置的家目錄已經(jīng)存在,是否將已經(jīng)存在的家目錄進(jìn)行移動(dòng)
password 用戶的密碼,建議使用加密后的字符串
comment 用戶的注釋信息
remove=yes|no 當(dāng)state=absent時(shí),是否刪除用戶的家目錄
#創(chuàng)建用戶test0
ansible dbservers -m user -a 'name="test0"'				
ansible dbservers -m command -a 'tail /etc/passwd'

#刪除用戶test0
ansible dbservers -m user -a 'name="test0" state=absent'	

(6) group模塊?
?用戶組模塊

常用參數(shù): name:組名稱 gid:組id system:是否為系統(tǒng)組

列舉指定模塊的描述信息和操作動(dòng)作

ansible-doc -s group
#創(chuàng)建mysql組
ansible dbservers -m group -a 'name=mysql gid=306 system=yes'	
ansible dbservers -a 'tail /etc/group'

#創(chuàng)建用戶test01
ansible dbservers -m user -a 'name="test01"'				

#將test01用戶添加到mysql組中
ansible dbservers -m user -a 'name=test01 uid=306 system=yes group=mysql'	
ansible dbservers -a 'tail /etc/passwd'
ansible dbservers -a 'id test01' 

(7) copy模塊
?復(fù)制文件或輸出內(nèi)容到被控制服務(wù)器上

舉例: ? ? ? ansible webservers -m copy ? -a "src=/a.txt ?dest=/opt/"

? ? ? ? ? ? ? ? ? ansible webservers -m copy ? -a 'content="123456" ?dest=/opt/a.txt'

列舉指定模塊的描述信息和操作動(dòng)作

ansible-doc -s copy

常用的參數(shù):

表5?copy常用參數(shù)

dest 指出復(fù)制文件的目標(biāo)及位置,使用絕對(duì)路徑,如果是源目錄,指目標(biāo)也要是目錄,如果目標(biāo)文件已經(jīng)存在會(huì)覆蓋原有的內(nèi)容
src 指出源文件的路徑,可以使用相對(duì)路徑或絕對(duì)路徑,支持直接指定目錄,如果源是目錄則目標(biāo)也要是目錄
mode 指出復(fù)制時(shí),目標(biāo)文件的權(quán)限
owner 指出復(fù)制時(shí),目標(biāo)文件的屬主
group 指出復(fù)制時(shí),目標(biāo)文件的屬組
content 指出復(fù)制到目標(biāo)主機(jī)上的內(nèi)容,不能與src一起使用
ansible dbservers -m copy -a 'src=/etc/fstab dest=/opt/fstab.bak owner=root mode=640'
ansible dbservers -a 'ls -l /opt'
ansible dbservers -a 'cat /opt/fstab.bak'
 
#將helloworld寫(xiě)入/opt/hello.txt文件中
ansible dbservers -m copy -a 'content="helloworld" dest=/opt/hello.txt'  
ansible dbservers -a 'cat /opt/hello.txt'

(8) file模塊
文件屬性管理模塊

常用參數(shù):owner:文件的屬主;group:文件屬組;mode:文件權(quán)限;path:文件路徑

? ? ? ? ? ? ? ? ? ? ? ?指定的屬主和屬組不存在會(huì)報(bào)錯(cuò)

舉例:ansible ?webservers ?-m ?file ?-a ?'ower=lhj group=lhj mode=777 path=/opt/a.txt' ? ?

列舉指定模塊的描述信息和操作動(dòng)作

ansible-doc -s file
#修改文件的屬主屬組權(quán)限等
ansible dbservers -m file -a 'owner=test01 group=mysql mode=644 path=/opt/fstab.bak'	

#設(shè)置/opt/fstab.link為/opt/fstab.bak的鏈接文件
ansible dbservers -m file -a 'path=/opt/fstab.link src=/opt/fstab.bak state=link'    


#創(chuàng)建一個(gè)文件
ansible dbservers -m file -a "path=/opt/abc.txt state=touch"

#刪除一個(gè)文件			
ansible dbservers -m file -a "path=/opt/abc.txt state=absent"			

(9)hostname模塊

修改被控制端的主機(jī)名

參數(shù):name:指定被控端的主機(jī)名?

舉例:ansible? webservers -m hostname -a "name=ansible"

列舉指定模塊的描述信息和操作動(dòng)作

ansible-doc -s hostname

修改主機(jī)名

#將dbservers中服務(wù)器得主機(jī)名修改為mysql01
ansible dbservers -m hostname -a "name=mysql01"

#回到dbservers服務(wù)器中查看
su

(10) ping模塊

檢測(cè)ansible與被控端的網(wǎng)絡(luò)連通性

舉例:ansible? webservers? -m ping?

列舉指定模塊的描述信息和操作動(dòng)作

ansible-doc -s ping
#檢測(cè)遠(yuǎn)程主機(jī)得連通性
ansible all -m ping
 
#指定ip檢測(cè)
ansible 192.168.204.186 -m ping

(11)yum模塊
在遠(yuǎn)程主機(jī)上yum安裝與卸載軟件包

常用參數(shù):name:指定要安裝卸載的軟件;state=present/absent,默認(rèn)persent添加,absent卸載

舉例:ansible ? webservers ?-m ?yum ?-a ?"name=httpd"
?

列舉指定模塊的描述信息和操作動(dòng)作

ansible-doc -s yum
#dsbsrvers檢測(cè)是否安裝httpd
systemctl status httpd

Unit httpd.service could not be found.


#ansible給dsbsrvers安裝服務(wù)
ansible dbservers -m yum -a 'name=httpd'

#dsbsrvers檢測(cè)httpd狀態(tài)
systemctl status httpd

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)


#ansible給dsbsrvers卸載服務(wù)				
ansible dbservers -m yum -a 'name=httpd state=absent'	

#dsbsrvers檢測(cè)httpd狀態(tài)
systemctl status httpd

Unit httpd.service could not be found.

(12)service/system模塊
管理遠(yuǎn)程被控制主機(jī)上的管理服務(wù)的運(yùn)行狀態(tài)

舉例:ansible webservers -m service -a 'enabled=yes ?name=httpd state=started'

列舉指定模塊的描述信息和操作動(dòng)作

ansible-doc -s service

常用的參數(shù):

表6?service/system常用參數(shù)

name 被管理的服務(wù)名稱
state=started|stopped|restarted 動(dòng)作包含啟動(dòng)關(guān)閉或者重啟
enabled=yes|no 表示是否設(shè)置該服務(wù)開(kāi)機(jī)自啟
runlevel 如果設(shè)定了enabled開(kāi)機(jī)自啟去,則要定義在哪些運(yùn)行目標(biāo)下自啟動(dòng)
#?給webservers安裝httpd服務(wù)
ansible webservers -m yum -a 'name=httpd'


#查看web服務(wù)器httpd運(yùn)行狀態(tài)
ansible webservers -a 'systemctl status httpd'	

192.168.204.69 | FAILED | rc=3 >>
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)non-zero return code


#啟動(dòng)httpd服務(wù)		
ansible webservers -m service -a 'enabled=true name=httpd state=started'	


#查看web服務(wù)器httpd運(yùn)行狀態(tài)
ansible webservers -a 'systemctl status httpd'		

192.168.204.69 | CHANGED | rc=0 >>
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 一 2023-08-28 14:55:51 CST; 5s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 5304 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─5304 /usr/sbin/httpd -DFOREGROUND
           ├─5307 /usr/sbin/httpd -DFOREGROUND
           ├─5308 /usr/sbin/httpd -DFOREGROUND
           ├─5309 /usr/sbin/httpd -DFOREGROUND
           ├─5310 /usr/sbin/httpd -DFOREGROUND
           └─5311 /usr/sbin/httpd -DFOREGROUND

(13)script模塊?

實(shí)現(xiàn)遠(yuǎn)程批量運(yùn)行本地的shell腳本

列舉指定模塊的描述信息和操作動(dòng)作

ansible-doc -s script

在本地編寫(xiě)一個(gè)腳本

ansible服務(wù)器:
vim  /test.sh
#編寫(xiě)/下的test.sh腳本內(nèi)容如下
#!/bin/bash
echo "hello ansible from script" > /opt/script.txt

chmod +x test.sh
ansible webservers -m script -a 'test.sh'
ansible webservers -a 'cat /opt/script.txt'

(14)setup模塊

setup 模塊可以獲取這些信息?facts 組件收集d 被管理節(jié)點(diǎn)信息

參數(shù):filter 過(guò)濾可配合正則表達(dá)式。

ansible webservers -m setup -a 'filter=*ipv4'

列舉指定模塊的描述信息和操作動(dòng)作

ansible-doc -s setup
#獲取mysql組主機(jī)的facts信息
ansible webservers -m setup	

#使用filter可以篩選指定的facts信息			
ansible dbservers -m setup -a 'filter=*ipv4'    

4.hostsinverntory主機(jī)清單


?hosts配置文件位置:/etc/ansible/hosts;

Inventory支持對(duì)主機(jī)進(jìn)行分組,每個(gè)組內(nèi)可以定義多個(gè)主機(jī),每個(gè)主機(jī)都可以定義在任何一個(gè)或多個(gè)主機(jī)組內(nèi)

如果是名稱類似的主機(jī),可以使用列表的方式標(biāo)識(shí)各個(gè)主機(jī)。

vim /etc/ansible/hosts
[webservers]
192.168.204.186:2222		#冒號(hào)后定義遠(yuǎn)程連接端口,默認(rèn)是 ssh 的 22 端口
192.168.204.18[5:7]
 
[dbservers]
db-[a:f].example.org	    #支持匹配 a~f

(1)inventory 中的變量含義

Inventory變量名 含義
ansible_host ansible連接節(jié)點(diǎn)時(shí)的IP地址
ansible_port 連接對(duì)方的端口號(hào),ssh連接時(shí)默認(rèn)為22
ansible_user 連接對(duì)方主機(jī)時(shí)使用的主機(jī)名。不指定時(shí),將使用執(zhí)行ansible或ansible-playbook命令的用戶
ansible_password 連接時(shí)的用戶的ssh密碼,僅在未使用密鑰對(duì)驗(yàn)證的情況下有效
ansible_ssh_private_key_file 指定密鑰認(rèn)證ssh連接時(shí)的私鑰文件
ansible_ssh_common_args 提供給ssh、sftp、scp命令的額外參數(shù)
ansible_become 允許進(jìn)行權(quán)限提升
ansible_become_method 指定提升權(quán)限的方式,例如可使用sudo/su/runas等方式
ansible_become_user 提升為哪個(gè)用戶的權(quán)限,默認(rèn)提升為root
ansible_become_password 提升為指定用戶權(quán)限時(shí)的密碼

(2)主機(jī)變量使用

寫(xiě)法1:
#webservers組中被控制端192.168.204.69的端口號(hào)為22登錄時(shí)用戶是root密碼為123123

[webservers]
192.168.204.69 ansible_port=22 ansible_user=root ansible_password=123123
192.168.204.186 ansible_port=22 ansible_user=root ansible_password=123123

寫(xiě)法2:
#如果是名稱類似的主機(jī),可以使用列表的方式標(biāo)識(shí)各個(gè)主機(jī)

[webservers]
192.168.204.6[8:9] ansible_port=22 ansible_user=root ansible_password=abc123

寫(xiě)法3:
#默認(rèn)ssh管理時(shí)的端口為22,若不是22則直接在被管理ip后加冒號(hào)和對(duì)應(yīng)端口號(hào)

[webservers]
192.168.204.69:22
192.168.204.186:22

添加一臺(tái)主機(jī)

[webservers]
192.168.204.69
192.168.204.100  ansible_port=22 ansible_user=root ansible_password=123123

[dbservers]
192.168.204.186


查看webservers內(nèi)得主機(jī)ip

ansible webservers -m command -a 'ifconfig'

(3)組變量使用

#表示為 webservers 組內(nèi)所有主機(jī)定義變量
[webservers:vars]			
ansible_user=root
ansible_password=123123
 
#表示為所有組內(nèi)的所有主機(jī)定義變量
[all:vars]					
ansible_port=22

webservers 組內(nèi)所有主機(jī)定義變量

[webservers]
192.168.204.69
192.168.204.100 
192.168.204.186


#表示webservers 組內(nèi)所有主機(jī)定義變量控制時(shí)使用root賬戶密碼為123123
[webservers:vars]   
ansible_port=22  
ansible_user=root
ansible_password=123123


(4)組嵌套使用?

##php組
[php]
192.168.204.100


#nginx組
[nginx]
192.168.204.69

#httpd組
[httpd]
192.168.204.186


#組內(nèi)嵌為web
#表示web組的成員即children的直譯‘孩子’包括php、nginx和httpd組
[web:children]
php
nginx
httpd

二、實(shí)驗(yàn)

1.部署Ansible自動(dòng)化運(yùn)維工具

(1)管理端安裝 ansible

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

完成自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?如果要查看ansible的目錄結(jié)構(gòu),可以安裝樹(shù)形查詢工具

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

添加被管理主機(jī)的ip到管理端的配置組名中

?自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?配置密鑰對(duì)驗(yàn)證

使用ssh免交互,需要下載sshpass工具

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

2.ansible 命令行模塊

(1)查看ansible的命令模塊

列出所有已安裝的模塊,按q退出

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(2)command 模塊

列舉指定模塊的描述信息和操作動(dòng)作

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

指定 ip 執(zhí)行 date

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?指定組執(zhí)行 date

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

??查看所有 hosts 主機(jī)自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?如省略 -m 模塊,則默認(rèn)運(yùn)行 command 模塊

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?查看右?guī)讉€(gè)用戶的家目錄自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(3)shell 模塊

列舉指定模塊的描述信息和操作動(dòng)作

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

首先在192.168.204.186服務(wù)器上創(chuàng)建一個(gè)用戶

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?使用shell給dbservers組中的服務(wù)器中的用戶設(shè)置密碼

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?截取dbservers組中主機(jī)的ip

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(4)cron 模塊

列舉指定模塊的描述信息和操作動(dòng)作

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?每年 10 月 21 日 每2個(gè)小時(shí)的10 30 50分,執(zhí)行一次輸出helloworld的操作,名字就叫做test cron

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?查看計(jì)劃任務(wù)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?移除計(jì)劃任務(wù)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(5) user 模塊

列舉指定模塊的描述信息和操作動(dòng)作

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?創(chuàng)建用戶test0

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?查看用戶

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible刪除用戶test0

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(6)group 模塊

列舉指定模塊的描述信息和操作動(dòng)作

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?創(chuàng)建mysql組

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?查看組

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?創(chuàng)建用戶test01

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?將test01用戶添加到mysql組中

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?查看用戶

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?查看用戶id和組id

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(7)copy 模塊

列舉指定模塊的描述信息和操作動(dòng)作

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?將dbservers組中得/etc/fstab文件復(fù)制到 /opt目錄中,并改名為fstab.bak,屬主為root,權(quán)限為640

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?查看/opt目錄中得文件屬性

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?查看是否復(fù)制

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?將helloworld寫(xiě)入/opt/hello.txt文件中

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?查看文檔內(nèi)容

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(8)file模塊

列舉指定模塊的描述信息和操作動(dòng)作

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?修改文件的屬主屬組權(quán)限等

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?設(shè)置/opt/fstab.link為/opt/fstab.bak的鏈接文件

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?創(chuàng)建一個(gè)文件

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?刪除一個(gè)文件

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

(9)hostname 模塊

?列舉指定模塊的描述信息和操作動(dòng)作自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?回到dbservers得服務(wù)器查看,可以切換名稱

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(10) ping 模塊

列舉指定模塊的描述信息和操作動(dòng)作

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?檢測(cè)遠(yuǎn)程主機(jī)得連通性自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?指定ip檢測(cè)自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(11)yum 模塊

列舉指定模塊的描述信息和操作動(dòng)作

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

查看dbservers是否安裝httpd服務(wù)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?ansible給dbservers安裝httpd服務(wù)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

dbservers檢測(cè)httpd服務(wù)自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

ansible給dbservers卸載服務(wù)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?dbservers又找不到服務(wù)了

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(12)service/systemd 模塊

列舉指定模塊的描述信息和操作動(dòng)作

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?給webservers安裝httpd服務(wù)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?查看webservers得httpd狀態(tài)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?啟動(dòng)httpd服務(wù)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

再次 查看webservers得httpd狀態(tài)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(13)script模塊?

列舉指定模塊的描述信息和操作動(dòng)作

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?在本地編寫(xiě)一個(gè)腳本自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?給程序一個(gè)可執(zhí)行得權(quán)限,執(zhí)行程序,查看自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(14)setup 模塊

列舉指定模塊的描述信息和操作動(dòng)作

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?獲取mysql組主機(jī)的facts信息

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?使用filter可以篩選指定的facts信息

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?3.hostsinverntory主機(jī)清單

(1)主機(jī)變量

在ansible配置文件中添加一臺(tái)新的主機(jī)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?成功查看ip

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

(2)?組變量

編輯配置文件

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

為 webservers 組內(nèi)所有主機(jī)定義變量

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

成功查看

?自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(3)組嵌套

編輯配置文件

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?webs主機(jī)組包含php、nginx和httpd組

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?成功查看

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

三、問(wèn)題

1. ansible遠(yuǎn)程shell失敗

(1)報(bào)錯(cuò)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(2)原因分析

replace過(guò)濾器中的一個(gè)逃逸問(wèn)題。您需要替換雙引號(hào),該雙引號(hào)將字符串轉(zhuǎn)換為\"。由于該字符串本身位于雙引號(hào)字符串內(nèi),因此必須轉(zhuǎn)義=> \\\n

(3)解決方法

去掉多余的雙引號(hào)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?2.組變量查看webservers內(nèi)主機(jī)ip報(bào)錯(cuò)

(1)報(bào)錯(cuò)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(2)原因分析

從輸出提示上基本可以了解到由于在本機(jī)的~/.ssh/known_hosts文件中并有fingerprint key串,ssh第一次連接的時(shí)候一般會(huì)提示輸入yes 進(jìn)行確認(rèn)為將key字符串加入到 ~/.ssh/known_hosts 文件中

(3)解決方法

第一種:在本地先SSH登錄一下對(duì)方設(shè)備,下次ansible 就可以正常操作了,但是比較麻煩

第二種:設(shè)置參數(shù)為不檢查key

vim /etc/ansible/ansible.cfg
 
host_key_checking = False           #71行取消注釋

?自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

如繼續(xù)操作出現(xiàn)如下報(bào)錯(cuò),需要修改被管理端/etc/hosts

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?注釋被管理端域名自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

如繼續(xù)操作出現(xiàn)如下報(bào)錯(cuò),修改 /etc/ansible/hosts

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?返現(xiàn)密碼輸入錯(cuò)誤

修改前

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?修改后

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

成功查看ip

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?3.組嵌套查看webs內(nèi)主機(jī)ip報(bào)錯(cuò)

(1)報(bào)錯(cuò)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

?(2)原因分析

組嵌套名稱錯(cuò)誤

nginx與httpd主機(jī)已配置密鑰對(duì)驗(yàn)證,需要對(duì)php做密鑰對(duì)驗(yàn)


#一路回車,使用免密登錄(配置密鑰對(duì)驗(yàn)證)
ssh-keygen -t rsa		

[root@ansible ansible]# sshpass -p '123123' ssh-copy-id root@192.168.204.100
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.204.100'"
and check to make sure that only the key(s) you wanted were added.

(3)解決方法

組嵌套名稱web修改為webs

修改配置文件

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

修改前

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

修改后

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

ansible服務(wù)器對(duì)php做密鑰對(duì)驗(yàn)

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

成功查詢

自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作,運(yùn)維,自動(dòng)化,ansible

四、總結(jié)

溝通是DevOps的關(guān)鍵。Ansible是第一款可以在整個(gè)IT范圍讀取和編寫(xiě)的自動(dòng)化語(yǔ)言。它也是唯能夠從頭至尾自動(dòng)化應(yīng)用生命周期和持續(xù)交付管道的自動(dòng)化引擎。

Ansible用戶無(wú)需編寫(xiě)復(fù)雜的腳本,而只要?jiǎng)?chuàng)建高級(jí)別play即可確保主機(jī)或主機(jī)組處于特定狀態(tài)。?Play按該play指定的順序?qū)χ鳈C(jī)執(zhí)行一系列任務(wù)。這些play通過(guò)采用YAML格式的文本文件來(lái)表達(dá)。包含一個(gè)或多個(gè)play的文件稱為playbook。
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-679491.html

到了這里,關(guān)于自動(dòng)化運(yùn)維:Ansible基礎(chǔ)與命令行模塊操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(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)文章

  • linux高級(jí)篇基礎(chǔ)理論十二( 自動(dòng)化運(yùn)維工具Ansible )

    linux高級(jí)篇基礎(chǔ)理論十二( 自動(dòng)化運(yùn)維工具Ansible )

    ?? 作者:小劉在C站 ?? 個(gè)人主頁(yè): ?小劉主頁(yè)? ?? 不能因?yàn)槿松牡缆房部?就使自己的身軀變得彎曲;不能因?yàn)樯畹臍v程漫長(zhǎng),就使求索的 腳步遲緩。 ?? 學(xué)習(xí)兩年總結(jié)出的運(yùn)維經(jīng)驗(yàn),以及思科模擬器全套網(wǎng)絡(luò)實(shí)驗(yàn)教程。專欄: 云計(jì)算技術(shù) ?? 感謝CSDN讓你我相遇

    2024年01月20日
    瀏覽(48)
  • Ansible自動(dòng)化運(yùn)維

    Ansible自動(dòng)化運(yùn)維

    目錄 前言 一、概述 常見(jiàn)的開(kāi)源自動(dòng)化運(yùn)維工具比較 二、ansible環(huán)境搭建 三、ansible模塊 (一)、hostname模塊 (二)、file模塊 (三)、copy模塊 (四)、fetch模塊 (五)、user模塊 (六)、group模塊 (七)、cron模塊 (八)、yum_repository模塊 (九)、yum模塊 (十)、service模塊

    2024年02月09日
    瀏覽(30)
  • 自動(dòng)化運(yùn)維工具—Ansible

    自動(dòng)化運(yùn)維工具—Ansible

    Ansible是一個(gè)基于Python開(kāi)發(fā)的配置管理和應(yīng)用部署工具,現(xiàn)在也在自動(dòng)化管理領(lǐng)域大放異彩。它融合了眾多老牌運(yùn)維工具的優(yōu)點(diǎn),Pubbet和Saltstack能實(shí)現(xiàn)的功能,Ansible基本上都可以實(shí)現(xiàn)。 市面上其他自動(dòng)化工具:pupet(ruby語(yǔ)言) saltstack(python) chef(C/S模式)等 Ansible能批量配

    2024年02月10日
    瀏覽(23)
  • 自動(dòng)化運(yùn)維ansible(role)

    一、role的介紹 1、Roles稱為角色,本質(zhì)上是為簡(jiǎn)化playbook配置文件而產(chǎn)生的一種特殊的方法。 2、簡(jiǎn)單來(lái)說(shuō),roles就是將原本在一個(gè)yaml中的文件進(jìn)行規(guī)則化分散,封裝到不同的目錄下,從而簡(jiǎn)化playbook的yaml配置文件大小。從其實(shí)現(xiàn)方法上來(lái)看,類似于軟件開(kāi)發(fā)上的代碼封裝。

    2024年02月07日
    瀏覽(26)
  • Ansible 自動(dòng)化運(yùn)維工具

    Ansible 自動(dòng)化運(yùn)維工具

    目錄 一:?Ansible 簡(jiǎn)介 ??Ansible與其他自動(dòng)化運(yùn)維工具對(duì)比? 二:?ansible 環(huán)境安裝部署? ?三:ansible 命令行模塊 1、command 模塊 2、?shell 模塊 3、?cron 模塊 4、?user 模塊 5、?group 模塊 ?6、copy 模塊 7、?file 模塊 ?8、hostname 模塊 9、ping 模塊 10、?yum 模塊 11、?service/systemd 模塊

    2024年02月15日
    瀏覽(26)
  • 自動(dòng)化運(yùn)維工具——Ansible

    自動(dòng)化運(yùn)維工具——Ansible

    Ansible是一個(gè)基于Python開(kāi)發(fā)的配置管理和應(yīng)用部署工具,現(xiàn)在也在自動(dòng)化管理領(lǐng)域大放異彩。它融合了眾多老牌運(yùn)維工具的優(yōu)點(diǎn),Pubbet和Saltstack能實(shí)現(xiàn)的功能,Ansible基本上都可以實(shí)現(xiàn)。 Ansible能批量配置、部署、管理上千臺(tái)主機(jī)。比如以前需要切換到每個(gè)主機(jī)上執(zhí)行的一或多個(gè)

    2024年02月14日
    瀏覽(32)
  • Ansible自動(dòng)化運(yùn)維工具

    Ansible自動(dòng)化運(yùn)維工具

    Ansible是一個(gè)基于Python開(kāi)發(fā)的配置管理和應(yīng)用部署工具,現(xiàn)在也在自動(dòng)化管理領(lǐng)域大放異彩。它融合了眾多老牌運(yùn)維工具的優(yōu)點(diǎn),Pubbet和Saltstack能實(shí)現(xiàn)的功能,Ansible基本上都可以實(shí)現(xiàn)。 ansible 自動(dòng)化運(yùn)維工具(機(jī)器管理工具) 可以實(shí)現(xiàn)批量管理多臺(tái)(成百上千)主機(jī),應(yīng)用級(jí)

    2024年02月14日
    瀏覽(26)
  • 自動(dòng)化運(yùn)維工具之Ansible

    自動(dòng)化運(yùn)維工具之Ansible

    Ansible是一個(gè)基于Python開(kāi)發(fā)的配置管理和應(yīng)用部署工具,現(xiàn)在也在自動(dòng)化管理領(lǐng)域大放異彩。它融合了眾多老牌運(yùn)維工具的優(yōu)點(diǎn),Pubbet和Saltstack能實(shí)現(xiàn)的功能,Ansible基本上都可以實(shí)現(xiàn)。 Ansible能批量配置、部署、管理上千臺(tái)主機(jī)。比如以前需要切換到每個(gè)主機(jī)上執(zhí)行的一或多個(gè)

    2024年02月08日
    瀏覽(28)
  • 自動(dòng)化運(yùn)維——ansible (五十二) (01)

    自動(dòng)化運(yùn)維——ansible (五十二) (01)

    提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 目錄 一、概述 1.1?為什么要用自動(dòng)化運(yùn)維軟件 1.2 自動(dòng)化運(yùn)維 1.3?自動(dòng)化運(yùn)維要注意的方面 1.4 自動(dòng)化運(yùn)維主要關(guān)注的方面? 1.5?常見(jiàn)的開(kāi)源自動(dòng)化運(yùn)維軟件 1.6?自動(dòng)化運(yùn)維軟件一般安裝在哪 二、ansibl

    2024年02月09日
    瀏覽(22)
  • 【Ansible】Ansible自動(dòng)化運(yùn)維工具之playbook劇本

    【Ansible】Ansible自動(dòng)化運(yùn)維工具之playbook劇本

    ??簡(jiǎn)單來(lái)說(shuō),playbooks是一種簡(jiǎn)單的配置管理系統(tǒng)與多機(jī)器部署系統(tǒng)的基礎(chǔ)。與現(xiàn)有的其他系統(tǒng)有不同之處,且非常適合復(fù)雜應(yīng)用的部署。 ??Playbooks 可用于聲明配置,更強(qiáng)大的地方在于,playbooks可以編排有序的去執(zhí)行過(guò)程,甚至做到多組機(jī)器間來(lái)回有序的執(zhí)行特別指定的

    2024年02月14日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包