溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python自動化運維之Ansible定義主機與組規(guī)則操作的示例分析

發(fā)布時間:2021-08-21 14:29:44 來源:億速云 閱讀:197 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“Python自動化運維之Ansible定義主機與組規(guī)則操作的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Python自動化運維之Ansible定義主機與組規(guī)則操作的示例分析”這篇文章吧。

一 點睛

Ansible通過定義好的主機與組規(guī)則(Inventory)對匹配的目標(biāo)主機進行遠程操作,配置規(guī)則文件默認(rèn)是/etc/ansible/hosts。

二 定義主機與組

所有定義的主機與組規(guī)則都在/etc/Ansible/hosts文件中,為ini文件格式,主機可以用域名、IP、別名進行標(biāo)識,其中webservers、dbservers 為組名,緊跟著的主機為其成員。格式如下:

mail.example.com
192.168.1.21:2135
[webservers]
foo.example.com
bar.example.com
192.168.1.22
[dbservers]
one.example.com
two.example.com
three.example.com
192.168.1.23

其中,192.168.1.21:2135的意思是定義一個SSH服務(wù)端口為2135的主機。

當(dāng)然我們也可以使用別名來描述一臺主機。

jumper ansible_ssh_port=22 ansible_ssh_host=192.168.1.50

jumper為定義的一個別名,ansible_ssh_port為主機SSH服務(wù)端口, ansible_ssh_host為目標(biāo)主機。

更多變量說明如下:

ansible_ssh_host:連接目標(biāo)主機的地址。

ansible_ssh_port:連接目標(biāo)主機SSH端口,端口22無需指定。

ansible_ssh_user:連接目標(biāo)主機默認(rèn)用戶。

ansible_ssh_pass:連接目標(biāo)主機默認(rèn)用戶密碼。

ansible_connection:目標(biāo)主機連接類型,可以是local、ssh或 paramiko。

ansible_ssh_private_key_file:連接目標(biāo)主機的ssh私鑰。

ansible_*_interpreter:指定采用非Python的其他腳本語言,如 Ruby、Perl或其他類似ansible_python_interpreter解釋器。

組成員主機名稱支持正則描述,例如:

[webservers]
www[01:50].example.com
[databases]
db-[a:f].example.com

三 定義主機變量

主機可以指定變量,以便后面供Playbooks配置使用,比如定義主機hosts1及hosts2上Apache參數(shù)http_port及maxRequestsPerChild,目的是讓兩臺主機產(chǎn)生Apache配置文件httpd.conf差異化,定義格式如下:

[atlanta]
host1 http_port=80 maxRequestsPerChild=808
host2 http_port=303 maxRequestsPerChild=909

四 定義組變量

組變量的作用域是覆蓋組所有成員,通過定義一個新塊,塊名由 組名+“:vars”組成,定義格式如下:

[atlanta]
host1
host2
[atlanta:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com

五 嵌套組

Ansible支持組嵌套組,通過定義一個新塊,塊名由組名+“: children”組成,舉例如下:

[atlanta]
host1
host2
[raleigh]
host2
host3
[southeast:children]
atlanta
raleigh
[southeast:vars]
some_server=foo.southeast.example.com
halon_system_timeout=30
self_destruct_countdown=60
escape_pods=2
[usa:children]
southeast
northeast
southwest
southeast

六 分離主機與組特定數(shù)據(jù)

為了更好規(guī)范定義的主機與組變量,Ansible支持 將/etc/ansible/hosts定義的主機名與組變量單獨剝離出來存放到指定的文件中,將采用YAML格式存放,存放位置規(guī)定:“/etc/ansible/group_vars/+組名”和“/etc/ansible/host_vars/+主機名”分別存放指定組名或主機名定義的變量。

七 匹配目標(biāo)

目標(biāo) (Patterns)匹配,格式為:ansible<pattern_goes_here>-m<module_name>-a<arguments>。

舉例說明:重啟webservers組的所有Apache服務(wù)。

ansible webservers -m service -a "name=httpd state=restarted"

<pattern_goes_here>參數(shù)的使用方法,詳細規(guī)則及含義見下表:

Python自動化運維之Ansible定義主機與組規(guī)則操作的示例分析

以上是“Python自動化運維之Ansible定義主機與組規(guī)則操作的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI