開發者學堂課程【運維自動化學習第二課時:Ansible-playbook 的使用】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址:
https://developer.aliyun.com/learning/course/805/detail/13879Ansible Playbook 的使用
一、Playbook 介紹
二、Playbook 文法
三、Playbook 示例
四、Playbook 常用子產品
一、Ansible playbook 介紹
- Ansible playbook 是一系統ansible 指令的集合,其利用yaml 語言編寫、運作。
- 在運作過程中,ansible playbook 指令根據自上而下的順序依次執行。
- Playbook開創了很多特性,它可以允許它傳輸某個指令狀态到後面的指令,如你可以從一台機器的檔案中抓取内容并附為變量,然後在另一台機器中使用。這使得你可以實作一些複雜的部署機制。
Playbook 與shell 腳本的差別

二、Ansible playbook 的文法
Playbook 檔案有YAML 語言編寫, YAML 是一個類似于XML、JSON 的标記性語言,YAML 強調以資料為中心,并不是以标記語言為重點。因而YAML 本身的定義比較簡單,号稱“一種人性化的資料格式語言”。
- 大小寫敏感
- 使用空格作為嵌套縮進工具,縮進時不允許使用tab鍵
- 縮進的空格數目不重要,隻要相同層次的元素左側對齊即可
- 使用“-”(橫線)+單個格:表示單個清單項
- 使用“:”(冒号)+單個空格:表示單個鍵值對
- 使用“{}”表示一個鍵值表
編寫Playbook 的提醒
- 編寫時添加空格:通過空格來組的内容,可以讓你的内容更加容易被了解。
- 為任務添加命名:通過為任務設定名稱,可以在運作輸出時表明在執行什麼任務,對于後續debug 有幫助。
- 為任務添加注釋:良好的注釋會為你的持續維護提供幫助。
1、Playbook 常用的子產品-ping
Ping 檢查指定節點機器是否還能聯通,用法很簡單,不涉及參數主機,如果線上則回複pong。
2、Playbook 常用子產品-yum
Yum子產品可以用于在伺服器上安裝特定軟體
3、Playbook 常用子產品-pip
Pip子產品可以用于安裝一些python依賴
4、Playbook 常用子產品-copy
Copy子產品可以将本地檔案拷貝至遠端伺服器
5、Playbook 常用子產品-template
Template 子產品可以以模闆的方式來生成檔案并拷貝至服務端
Template 子產品基于Jinja2子產品引擎實作
6、Playbook 常用子產品-user
user子產品可以執行使用者管理功能,對伺服器使用者進行管理。
7、Playbook 常用子產品-group
Group子產品可以對使用者組進行管理。
8、Playbook 常用子產品-get_ url
get _url子產品可以實作從網絡上下載下傳檔案到主機上.
9、Playbook 常用子產品-fetch
Fetch子產品可以實作将文服務端檔案拷位置本地。
10、Playbook 常用子產品-systemd
ystemd子產品可以管理伺服器上的服務,操作服務的啟停。
11、Playbook 常用子產品-cron
cron子產品可以用于配置服務端的crontab服務
12、Playbook 常用子產品-file
file 子產品可以管理遠端伺服器上的檔案
13、Playbook 常用子產品command
command 的子產品可以用于執行指令
command 的子產品和shell 子產品的差別是command 的子產品執行時不含Shell 的環境變量。
總結:簡單的介紹了一下ansible-playbook以及會用到的一些具體的子產品。這些子產品的了解,會對學習内容去編寫具體的playbook會有所幫助。