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

1簡單的介紹role

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

2Ansible Roles目錄編排

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

  • 一個完整role的目錄結構

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

  • 相對應的執行順序

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

  • 啓動文件

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

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

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

範例的執行順序詳解

  • 1創建組

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

  • 2創建用戶

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

  • 3安裝程序

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

  • 4對應不同版本主機給與不同配置文件
    ansible-role角色:通過一個批量部署nginx範例學習role
    這些模板文件都在templates文件夾下
    notify對應的文件在handlers文件夾的main.yml中
    ansible-role角色:通過一個批量部署nginx範例學習role
  • 5拷貝網頁數據
    ansible-role角色:通過一個批量部署nginx範例學習role

  • 6啓動服務
    ansible-role角色:通過一個批量部署nginx範例學習role

  • 7測試

ansible-role角色:通過一個批量部署nginx範例學習role
配置文件中已將端口改爲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文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章