Linux的Playbook 的簡單使用

Playbook的核心元素shell

    Hosts 主機
ide

    Tasks 任務測試

    Variables:包含了模板語言的文本文件spa

    Handlers:由特定條件觸發的任務
圖片

      某任務的狀態在運行後爲changed時,可經過notify通知給相應的handlersrem

Playbook的基礎組件it

    Hosts:運行指定任務的目標主機模板

    remote_user:在遠程主機上執行任務的用戶class

    tasks:任務列表基礎

簡單的Playbook腳本

playbook腳本的後綴爲.yaml

圖片.png

--ckeck 僅僅只是試運行,並無在遠程主機上執行,不過這個命令只要不報錯就算成功了。


圖片.png

查看腳本會在哪些主機上運行

圖片.png

再寫一個腳本

一、安裝telnet腳本

二、中止httpd服務

圖片.png

圖片.png

另外一個例子:

在playbook腳本中運行shell語句

圖片.png

圖片.png

handlers的使用

圖片.png

圖片.png

notify調用了handler中定義的"echo a line"模塊。在所在任務的狀態爲changed的時候執行notify指定的指令


tags的使用

圖片.png

正常狀況下,ansible-playbook會執行兩個任務

可是此次經過指定tags,能夠執行指定的任務

圖片.png

這裏只執行了install telnet的任務


variables使用

有些變量時ansible軟件內置的,facts。這些參數能夠經過ansible -m setup獲取

還有一些變量是在/etc/ansible/hosts中設置的。

還有一些變量是用戶在腳本中自定義的

首先演示/etc/hosts中的變量

一、在單個主機後面設置一個變量。而後給主機組一個變量

圖片.png


寫一個腳本調用變量

圖片.png

遠端主機結果

圖片.png

圖片.png


經過變量寫一個安裝軟件的通用腳本

圖片.png

測試腳本

圖片.png

經過這個腳本,安裝任何軟件均可以安裝


再寫一個自定義變量的

圖片.png

命令試運行

圖片.png


template 模板文件

這個功能用處就打了,本地ansible只提供一個模板文件,ansible在執行命令過程當中會根據不一樣主機在遠端主機上生成不一樣的文件。

template文件只能被playbook調用。

圖片.png

ansible開頭的一本上都是內建的變量名

先寫一個模板文件

圖片.png

以這個文件爲模板在遠端主機上生成一個文件

圖片.png

運行命令

圖片.png

遠端主機測試

圖片.png

圖片.png

Playbook的條件判斷

圖片.png

意思是如何遠端主機版本是6,就執行任務,若是不是就不用執行了。

圖片.png

因爲遠端主機的主版本都是7,因此跳過了

把判斷語句改爲7

圖片.png

此次就沒有跳過了

playbook的循環

循環的固定變量是item,而後要在tasks中使用with_item給定要循環元素的列表

圖片.png

命令執行

圖片.png

遠端執行結果

圖片.png


再寫一個雙因子的例子

user11屬於group11 user12屬於group12

圖片.png

運行

圖片.png

遠端主機查看

圖片.png

相關文章
相關標籤/搜索