PLAYBOOK基礎(一)

一 ansible七種武器

二 JSON簡介

三 YAML簡介

四 Jinja2模版簡介

#############################################

一 ansible七種武器

(1)ansible 命令,
	用於執行臨時性的工作,必須掌握
(2)ansible-doc
	是ansible模塊的文檔說明針對每個模
	塊都有詳細的說明及應用案例介紹,功能和Linux系統
	man命令類似,必須掌握
(3)ansible-console
	ansible爲用戶提供的交互式工具,
	用戶可以在ansible-console虛擬出來的終端上像Shell
	一樣使用ansible內置的各種命令,這爲習慣使用Shell
	交互方式的用戶提供了良好的使用體驗
(4)ansible-galaxy
	從github上下載管理Roles的一款工具,與python的pip類似
(5)ansible-playbook
	是日常應用中使用頻率最高的命令,工作機制:通過讀取先編寫好的playbook文件實現批量管理,可以理解爲按一定條件組成的ansible任務集,必須掌握
(6)ansible-vault
	主要用於配置文件加密,如編寫的playbook文件中包含敏感信息,想其他人隨意查看,可用它加密/解密這個文件
(7)ansible-pull
	– ansible有兩種工作模式pull/push ,默認使用push模式工作,pull和push工作模式機制剛好相反
	– 適用場景:有大批量機器需要配置,即便使用高併發線程依舊要花費很多時間
	– 通常在配置大批量機器的場景下使用,靈活性稍有欠缺,但效率幾乎可以無限提升,對運維人員的技術水平和前瞻性規劃有較高要求

二 JSON簡介

1.JSON是什麼
	– JSON是JavaScript對象表示法,它是一種基於文本獨立於語言的輕量級數據交換格式
	– JSON中的分隔符限於單引號" ' " 、小括號" () " 、中括號" [ ] " 、大括號" { } " 、冒號 " : " 和逗號 " , "
2.JSON特性
	– JSON是純文本
	– JSON具有"自我描述性"(人類可讀)
	– JSON具有層級結構(值中存在值)
	– JSON可通過JavaScript進行解析
3.JSON語法規則
	– 數據在名稱/值對中
	– 數據由逗號分隔
	– 大括號保存對象
	– 中括號保存數組
4.JSON 數據的書寫格式是:名稱/值對
	– 名稱/值對包括字段名稱(在雙引號中),後面寫一個冒號,然後是值,例如:
		"水果 " :"蘋果"
5.JSON語法規則之數組
	{ "詩人":
		["李白", "杜甫", "白居易", "李賀"]
	}
6.複合複雜類型
	{ "詩人":
	  [ {"李白":"詩仙", "年代":"唐"},
	    {"杜甫":"詩聖", "年代":"唐"},
	    {"白居易":"詩魔", "年代":"唐"},
	    {"李賀":"詩鬼", "年代":"唐"}
	  ]
	}

三 YAML簡介

1.YAML是什麼
	– 是一個可讀性高,用來表達數據序列的格式
	– YAML(YAML Ain't Markup Language)
	– YAML參考了多種語言,如:C語言、Python、Perl等,並從XML、電子郵件的數據格式中獲得靈感,Clark Evans在2001年首次發表了這種語言,目前已有數種編程語言或腳本語言支持這種語言
2.YAML基礎語法
	– YAML的結構通過空格來展示
	– 數組使用"- "來表示
	– 鍵值對使用": "來表示
	– YAML使用一個固定的縮進風格表示數據層級結構關係
	– 一般每個縮進級別由兩個以上空格組成
	– # 表示註釋
	(注意:
	– 不要使用tab,縮進是初學者容易出錯的地方之一
	– 同一層級縮進必須對齊)
3.YAML的鍵值表示方法
	– 採用冒號分隔
	– : 後面必須有一個空格
	– YAML鍵值對例子
		"詩仙" : "李白"
	– 或
		"李白":
		"詩仙"
4.複雜YAML的鍵值對嵌套
	"詩人":
		"李白": "詩仙"
	或
	"詩人":
	   "李白":
	      "詩仙"
	數組
	["李白", "杜甫", "白居易", "李賀"]
5.YAML 數組表示方法
	– 使用一個短橫槓加一個空格
	– YAML數組例子
		- "李白"
		- "杜甫"
		- "白居易"
		- "李賀"
	– 哈希數組複合表達式
		"詩人":
		- "李白"
		- "杜甫"
		- "白居易"
		- "李賀"

6.高級複合表達式 
	"詩人":
	  -  
	   "李白": "詩仙"
	   "年代": "唐"
	  -
	   "杜甫": "詩聖"
	   "年代": "唐“
	  -
	  "白居易": "詩魔"
	  "年代": "唐"	
	 -
	  "李賀": "詩鬼"
	  "年代": "唐"

四 Jinja2模版簡介

1.Jinja2是什麼
	– Jinja2是基於Python的模板引擎,包含變量和表達式兩部分,兩者在模板求值時會被換爲值,模板中還有標籤,控制模板的邏輯
2.Jinja2模版基本語法
	– 模板的表達式都是包含在分隔符"{{ }}"內的
	– 控制語句都是包含在分隔符"{% %}"內的
	– 模板支持註釋,都是包含在分隔符"{# #}" 內,支持塊註釋
	– 調用變量
			{{varname}}
	– 計算
			{{2+3}}
	– 判斷
			{{1 in [1,2,3]}}
3.Jinja2模版控制語句
		{% if name == '詩仙' %}
			李白
		{% elif name == '詩聖' %}
			杜甫
		{% elif name == '詩魔' %}
			白居易
		{% else %}
			李賀
		{% endif %}
4.Jinja2模版控制語句
		{% if name == ... ... %}
		... ...
		{% elif name == '于謙' %}
		{% for method in [抽菸, 喝酒, 燙頭] %}
		{{do method}}
		{% endfor %}
		... ...
		{% endif %}
5.Jinja2過濾器
	– 變量可以通過過濾器修改。過濾器與變量用管道符號( | )分割,也可以用圓括號傳遞選參數,多個過濾器可以鏈式調用,前一個過濾器的輸出會被作爲後一個過濾器的輸入
例如
	– 加密一個字符串:{{ 'astr'|password_hash('sha512')}}
	– 過濾器這裏不再一一列舉,需要的可以查詢在線文檔
	http://docs.jinkan.org/docs/jinja2/templates.html
	#builtin-filters
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章