日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

ansible中roles的简单使用

發布時間:2024/4/24 综合教程 43 生活家
生活随笔 收集整理的這篇文章主要介紹了 ansible中roles的简单使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.初識roles

  上節中我們已經了解了playbook,詳見 https://www.cnblogs.com/wangtaobiu/p/10691689.html

  當我們在配置playbook時會發現它會越來越龐大,所有的tasks,handles,templates等任務或文件都寫在一個yml文件中,這樣在修改中難免會浪費時間,顯得缺乏條理性.而roles的出現剛好解決了這一問題.

  roles的特點 : 目錄結構清晰.在使用roles的時候,我們會將不同的任務放在不同的目錄下,結構一目了然,在修改的過程中也更方便尋找.

        可以相互調用.在roles中,所有的任務和文件都可以自由調用,通過import或include方法,可以將要執行的任務導入一個文件中,使roles在實現playbook功能的情況下更有條理性.下邊是roles目錄下安裝nginx的目錄結構 :

nginx/
├── files     存放靜態的文件
│ └── fstab
├── handlers  存放需要觸發的任務,里面必須main.yml文件
│ └── main.yml
├── tasks     存放的執行的任務 ,里面必須main.yml文件
│ ├── copyfile.yml
│ ├── install.yml
│ ├── main.yml
│ └── start.yml
├── templates 存放的模板文件
│ ├── centos6.conf
│ └── nginx.conf
└── vars      存放的是參數,里面必須main.yml文件
    └── main.yml  

  從上圖中可以看出handles,tasks,vars文件需要用main.yml文件來觸發任務,而且針對Contos的不同版本做了相應的判斷,所有任務一目了然.

二.roles入口文件設置

  當我們把roles中所有的任務都配置好以后,最后就需要在roles同級的目錄下設置入口文件.入口文件的設置最好以任務名命名,方便識別.例如上邊的例子中入口文件可以命名為nginx.yml,下邊是文件中的內容,重點在于roles下指定nginx目錄.

- hosts: web
  remote_user: root
  roles:
  - nginx  

三.roles中任務的導入

  以下是tasks目錄下的main文件 :

- import_tasks: install.yml   #下載
- import_tasks: copyfile.yml  #復制文件到遠程主機
- import_tasks: start.yml     #啟動nginx
- name: fstab
  copy: dest=/tmp/wq.txt src=fstab
  tags: fstab

  注意 : 因為在main文件中任務是自上而下執行的,所以在導入任務時必須按順序進行.

四.roles的執行順序

- 先查找當前目錄下roles目錄里面指定的對應文件夾
- 找tasks目錄下面的main.yml文件,如果import_tasks 就導入
- 如果遇到了templates,去找templates文件夾下面的對應文件
- 如果遇到了notify,去找handlers里面的main.yml文件
- 如果遇到了copy,去找files里面的對應文件
- 如果看到了變量,如果是setup收集的變量就去setup,如果不是就去vars里面的main.yml文件查找

  

總結

以上是生活随笔為你收集整理的ansible中roles的简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。