1. 程式人生 > >ansible-role角色:通過一個批量部署nginx範例學習role

ansible-role角色:通過一個批量部署nginx範例學習role

進程 必須 ansi 守護 啟動 它的 ble 處理器 變量

1簡單的介紹role
  • ansible自1.2版本引入的新特性,用於層次性、結構化地組織playbook
  • roles能夠根據層次型結構自動裝載變量文件、tasks以及handlers等。
  • 簡單來講,roles就是通過分別將變量、文件、任務、模板及處理器放置於單獨的目錄中,並可以便捷地include它們的一種機制。角色一般用於基於主機構建服務的場景中,但也可以是用於構建守護進程等場景中

2Ansible Roles目錄編排

技術分享圖片

  • 一個完整role的目錄結構

技術分享圖片

  • 相對應的執行順序

技術分享圖片

  • 啟動文件

技術分享圖片

  • 每個文件夾下都有一個main.yml文件,這是每個模塊目錄必須有的

技術分享圖片

範例的執行順序詳解

  • 1創建組

技術分享圖片

  • 2創建用戶

技術分享圖片

  • 3安裝程序

技術分享圖片

  • 4對應不同版本主機給與不同配置文件
    技術分享圖片
    這些模板文件都在templates文件夾下
    notify對應的文件在handlers文件夾的main.yml中
    技術分享圖片
  • 5拷貝網頁數據
    技術分享圖片

  • 6啟動服務
    技術分享圖片

  • 7測試

技術分享圖片
配置文件中已將端口改為8080

一些總結

  • 各個目錄作用

/roles/project/ :項目名稱,有以下子目錄

  • files/ :存放由copy或script模塊等調用的文件
    templates/:template模塊查找所需要模板文件的目錄
    tasks/:定義task,role的基本元素,至少應該包含一個名為main.yml的文件;其它的文件需要在此文件中通過include進行包含
  • handlers/:至少應該包含一個名為main.yml的文件;其它的文件需要在此文件中通過include進行包含
  • vars/:定義變量,至少應該包含一個名為main.yml的文件;其它的文件需要在此文件中通過include進行包含
  • meta/:定義當前角色的特殊設定及其依賴關系,至少應該包含一個名為main.yml的文件,其它文件需在此文中通過include進行包含
  • default/:設定默認變量時使用此目錄中的main.yml文件

ansible-role角色:通過一個批量部署nginx範例學習role