久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Linux基礎教程之ansible進階(roles應用)

ansible 進階

一、roles簡介

一個項目從開始到結束,不是簡單幾十個playbook就可以完事了,當文件數很多,有上百個的話,僅通過簡單的includes不停的引用,那最終的結果錯綜復雜。這個時候ansible roles就可以很好的發揮它的作用了。

roles,字面意思是角色的含義,可以理解為有相互關聯功能的集合。我們把安裝ntp、mem、nginx、db等等的功能角色放在一個大倉庫里,然后用到哪個,從那里面去拿,拿一個,拿兩個都可以。

roles:是個目錄,角色集合

里面放的有:

????mysql/
????httpd/
????nginx/
????memcached/
每個角色是一個目錄

每個角色的格式,一特定的層級目錄結構進行組織,如下:

mysql/
????files/
????templates/
????tasks/
????handlers/
????vars/
????meta/
用到哪個目錄,給出哪個目錄

二、在playbook中調用角色的方式

-?hosts:?webservers
??remote_user:?root
??roles:
??-?mysql
??-?memcached
??-?nginx

三、以mysql/為例,分別介紹各個目錄的意思

(1)files/:存放copy或script模塊等調用的文件

(2)templates/:templates查找所需要模塊文件的目錄;

(3)tasks/:(必須要有)至少應該包含一個名為main.yml的文件,其他的文件需要在此文件中通過include進行包含;

(4)handlers/:至少應該包含一個名為main.yml的文件,其他的文件需要在此文件中通過include進行包含;

(5)vars/:定義的是變量,至少應該包含一個名為main.yml的文件,其他的文件需要在此文件中通過include進行包含;

(6)meta/:定義此當前角色的特殊設定及其他依賴關系,至少應該包含一個名為main.yml的文件,其他的文件需要在此文件中通過include進行包含;

(7)default/:為當前角色設定默認變量時使用目錄中的main.yml文件

四、例子

(1)mkdir /etc/ansible/roles/nginx{files,tasks,templates,handlers,vars,default,meta} -pv

(2)tree /etc/ansible/roles/nginx

(3)cd /etc/ansible/roles/nginx/

(4)vim tasks/main.yml

(5)cp /root/working/files/nginx.conf.j2 templates/

(6)調用,去working目錄下,建立一個ansible文件夾,cd到里面去,然后vim nginx.yml

(7)運行結果

五、其他配置添加

1、定義觸發器

(1)cd /etc/ansible/roles/nginx 放在handlers目錄下:vim handlers/main.yml

(2)vim tasks/main.yml

(3)ansible-playbook –check nginx.yml

定義tags,直接在tasks/main.yml上加上tags: instconf就可以了

2、自定義變量的使用

(1)cd working/ ,vim myuser.yml

(2)ansible-playbook myuser.yml

(3)再那兩臺機子上看一下:

3、調用roles的第二種方法:傳遞變量給角色

mkdir?-pv?/etc/ansible/roles/memcached/tasks
cd?/memcached
vim?tasks/main.yml

-?name:?install?package
??yum:?name=memcached?state=present
-?name:?start?memcached
??service:?name=memcached?state=started?enabled=true

調用:vim?lnm.yml
-?hosts:?all
??remote_user:
??roles:
??-?{?role:nginx,?when:ansible_distribution_major_version?==?'7'?}
??-?{?role:memcached,?when:ansible_hostname?==?'memcached'?}


ansible-playbook?--check?lnm.yml

大致先寫到這,ansible是門龐大的課程,未完待續。

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 沈阳市| 东乌| 衡水市| 新和县| 宁德市| 东乡族自治县| 务川| 南康市| 宁都县| 金平| 黎平县| 峡江县| 桓仁| 汪清县| 延川县| 安远县| 铅山县| 象州县| 昂仁县| 共和县| 前郭尔| 台东市| 宁化县| 屏南县| 宣城市| 衢州市| 诏安县| 安泽县| 普定县| 潜江市| 巴彦淖尔市| 梨树县| 叶城县| 宁化县| 双柏县| 滦平县| 长春市| 博爱县| 海盐县| 松原市| 秀山|