Python集中化管理平臺(tái)Ansible介紹與YAML簡(jiǎn)介
本文實(shí)例講述了Python集中化管理平臺(tái)Ansible介紹與YAML。分享給大家供大家參考,具體如下:
一 中文社區(qū)
二 點(diǎn)睛
Ansible(http://www.ansibleworks.com/)一種集成IT系統(tǒng)的配置管理、應(yīng)用部署、執(zhí)行特定任務(wù)的開源平臺(tái),是AnsibleWorks公司名下的項(xiàng)目,該公司由Cobbler及Func的作者于2012年創(chuàng)建成立。Ansible基于Python語言實(shí)現(xiàn),由Paramiko和PyYAML兩個(gè)關(guān)鍵模塊構(gòu)建。
Ansible具有如下特點(diǎn):
- 部署簡(jiǎn)單,只需在主控端部署Ansible環(huán)境,被控端無需做任何操作;
- 默認(rèn)使用SSH(Secure SHell)協(xié)議對(duì)設(shè)備進(jìn)行管理;
- 主從集中化管理;
- 配置簡(jiǎn)單、功能強(qiáng)大、擴(kuò)展性強(qiáng);
- 支持API及自定義模塊,可通過Python輕松擴(kuò)展;
- 通過Playbooks來定制強(qiáng)大的配置、狀態(tài)管理;
- 對(duì)云計(jì)算平臺(tái)、大數(shù)據(jù)都有很好的支持;
- 提供一個(gè)功能強(qiáng)大、操作性強(qiáng)的Web管理界面和REST API接口 ——AWX平臺(tái)。
Ansible的架構(gòu)圖如下,用戶通過Ansible編排引擎操作公共/私有云或CMDB(配置管理數(shù)據(jù)庫)中的主機(jī),其中Ansible編排引擎由 Inventory(主機(jī)與組規(guī)則)、API、Modules(模塊)、Plugins(插件) 組成。
Ansible與Saltstack最大的區(qū)別是Ansible無需在被控主機(jī)部署任何客戶端代理,默認(rèn)直接通過SSH通道進(jìn)行遠(yuǎn)程命令執(zhí)行或下發(fā)配置;相同點(diǎn)是都具備功能強(qiáng)大、靈活的系統(tǒng)管理、狀態(tài)配置,都使用YAML格式 來描述配置,兩者都提供豐富的模板及API,對(duì)云計(jì)算平臺(tái)、大數(shù)據(jù)都有很好的支持。
Ansible在GitHub上的地址為https://github.com/ansible/, 其中提供了不少配置例子供參考。
三 YAML語言
1 點(diǎn)睛
YAML是一種用來表達(dá)數(shù)據(jù)序列的編程語言,它的主要特點(diǎn)包括: 可讀性強(qiáng)、語法簡(jiǎn)單明了、支持豐富的語言解析庫、通用性強(qiáng)等。 Ansible與Saltstack環(huán)境中配置文件都以YAML格式存在,熟悉YAML結(jié)構(gòu)及語法對(duì)我們理解兩環(huán)境的相關(guān)配置至關(guān)重要。
下面的示例定義了在 master的不同業(yè)務(wù)環(huán)境下文件根路徑的描述:
file_roots: base: - /srv/salt/ dev: - /srv/salt/dev prod: - /srv/salt/prod
2 塊序列描述
塊序列就是將描述的元素序列映射到Python的列表(List)中。以下代碼演示了YAML與Python的對(duì)應(yīng)關(guān)系:
import yaml obj=yaml.load( """ - Hesperiidae - Papilionidae - Apatelodidae - Epiplemidae """) print obj
本例中引用“-”來分隔列表中的每個(gè)元素,運(yùn)行結(jié)果如下:
E:\Python\python_auto_maintain\venv\Scripts\python.exe E:/Python/python_auto_maintain/9_1_1.py
['Hesperiidae', 'Papilionidae', 'Apatelodidae', 'Epiplemidae']
YAML也存在類似于Python塊的概念,例如:
- Hesperiidae - Papilionidae - Apatelodidae - Epiplemidae - China - USA - Japan
3 塊映射描述
塊映射就是將描述的元素序列映射到Python的字典(Dictionary)中, 格式為“鍵(key):值(value)”,以下為YAML例子:
import yaml obj=yaml.load( """ hero: hp: 34 sp: 8 level: 4 orc: hp: 12 sp: 0 level: 2 """) print obj
對(duì)應(yīng)的Python結(jié)果為:
E:\Python\python_auto_maintain\venv\Scripts\python.exe E:/Python/python_auto_maintain/9_1_1.py
{'hero': {'hp': 34, 'sp': 8, 'level': 4}, 'orc': {'hp': 12, 'sp': 0, 'level': 2}}
4 嵌套
YAML塊序列與塊映射是可以自由組合在一起的,它們之間可以相互嵌套,通過非常靈活的組合,可以幫助我們描述更加復(fù)雜的對(duì)象屬性,例如:
import yaml obj=yaml.load( """ - hero: hp: 34 sp: 8 level: 4 - orc: hp: - 12 - 30 sp: 0 level: 2 """) print obj
運(yùn)行結(jié)果如下:
E:\Python\python_auto_maintain\venv\Scripts\python.exe E:/Python/python_auto_maintain/9_1_1.py
[{'hero': {'hp': 34, 'sp': 8, 'level': 4}}, {'orc': {'hp': [12, 30], 'sp': 0, 'level': 2}}]
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python 實(shí)現(xiàn)兩個(gè)服務(wù)器之間文件的上傳方法
今天小編就為大家分享一篇Python 實(shí)現(xiàn)兩個(gè)服務(wù)器之間文件的上傳方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-02-02用python對(duì)excel進(jìn)行操作(讀,寫,修改)
這篇文章主要介紹了用python對(duì)excel進(jìn)行操作(讀,寫,修改),幫助大家更好的利用python處理表格,感興趣的朋友可以了解下2020-12-12pyside6-uic生成py代碼中文為unicode(亂碼)的問題解決方案
這篇文章主要介紹了如何解決pyside6-uic生成py代碼中文為unicode(亂碼)的問題,文中通過代碼和圖文介紹的非常詳細(xì),對(duì)大家解決問題有一定的幫助,需要的朋友可以參考下2024-02-02Python?OpenCV實(shí)現(xiàn)圖片預(yù)處理的方法詳解
這篇文章主要為大家詳細(xì)介紹了Python?OpenCV實(shí)現(xiàn)圖片預(yù)處理的方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下2022-09-09Django Rest framework認(rèn)證組件詳細(xì)用法
這篇文章主要介紹了Django Rest framework認(rèn)證組件詳細(xì)用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07python-圖片流傳輸?shù)乃悸芳笆纠?url轉(zhuǎn)換二維碼)
這篇文章主要介紹了python-圖片流傳輸?shù)乃悸芳笆纠?url轉(zhuǎn)換二維碼),幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12python常用request庫與lxml庫操作方法整理總結(jié)
一路學(xué)習(xí),一路總結(jié),技術(shù)就是這樣,應(yīng)用之后,在進(jìn)行整理,才可以加深印象。本篇文字為小節(jié)篇,核心總結(jié) requests 庫與 lxml 庫常用的操作2021-08-08關(guān)于tf.reverse_sequence()簡(jiǎn)述
今天小編就為大家分享一篇關(guān)于tf.reverse_sequence()簡(jiǎn)述,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01python 將大文件切分為多個(gè)小文件的實(shí)例
今天小編就為大家分享一篇python 將大文件切分為多個(gè)小文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01