日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

ansible中roles的简单使用

發(fā)布時(shí)間:2024/4/24 55 生活家
生活随笔 收集整理的這篇文章主要介紹了 ansible中roles的简单使用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一.初識(shí)roles

  上節(jié)中我們已經(jīng)了解了playbook,詳見(jiàn) https://www.cnblogs.com/wangtaobiu/p/10691689.html

  當(dāng)我們?cè)谂渲胮laybook時(shí)會(huì)發(fā)現(xiàn)它會(huì)越來(lái)越龐大,所有的tasks,handles,templates等任務(wù)或文件都寫(xiě)在一個(gè)yml文件中,這樣在修改中難免會(huì)浪費(fèi)時(shí)間,顯得缺乏條理性.而roles的出現(xiàn)剛好解決了這一問(wèn)題.

  roles的特點(diǎn) : 目錄結(jié)構(gòu)清晰.在使用roles的時(shí)候,我們會(huì)將不同的任務(wù)放在不同的目錄下,結(jié)構(gòu)一目了然,在修改的過(guò)程中也更方便尋找.

        可以相互調(diào)用.在roles中,所有的任務(wù)和文件都可以自由調(diào)用,通過(guò)import或include方法,可以將要執(zhí)行的任務(wù)導(dǎo)入一個(gè)文件中,使roles在實(shí)現(xiàn)playbook功能的情況下更有條理性.下邊是roles目錄下安裝nginx的目錄結(jié)構(gòu) :

nginx/
├── files     存放靜態(tài)的文件
│ └── fstab
├── handlers  存放需要觸發(fā)的任務(wù),里面必須main.yml文件
│ └── main.yml
├── tasks     存放的執(zhí)行的任務(wù) ,里面必須main.yml文件
│ ├── copyfile.yml
│ ├── install.yml
│ ├── main.yml
│ └── start.yml
├── templates 存放的模板文件
│ ├── centos6.conf
│ └── nginx.conf
└── vars      存放的是參數(shù),里面必須main.yml文件
    └── main.yml  

  從上圖中可以看出handles,tasks,vars文件需要用main.yml文件來(lái)觸發(fā)任務(wù),而且針對(duì)Contos的不同版本做了相應(yīng)的判斷,所有任務(wù)一目了然.

二.roles入口文件設(shè)置

  當(dāng)我們把roles中所有的任務(wù)都配置好以后,最后就需要在roles同級(jí)的目錄下設(shè)置入口文件.入口文件的設(shè)置最好以任務(wù)名命名,方便識(shí)別.例如上邊的例子中入口文件可以命名為nginx.yml,下邊是文件中的內(nèi)容,重點(diǎn)在于roles下指定nginx目錄.

- hosts: web
  remote_user: root
  roles:
  - nginx  

三.roles中任務(wù)的導(dǎo)入

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

- import_tasks: install.yml   #下載
- import_tasks: copyfile.yml  #復(fù)制文件到遠(yuǎn)程主機(jī)
- import_tasks: start.yml     #啟動(dòng)nginx
- name: fstab
  copy: dest=/tmp/wq.txt src=fstab
  tags: fstab

  注意 : 因?yàn)樵趍ain文件中任務(wù)是自上而下執(zhí)行的,所以在導(dǎo)入任務(wù)時(shí)必須按順序進(jìn)行.

四.roles的執(zhí)行順序

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

  

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。