久久国产乱子伦精品免费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. 主站蜘蛛池模板: 南城县| 井冈山市| 武威市| 通化市| 梅州市| 石嘴山市| 大连市| 台北县| 禄丰县| 红安县| 锡林浩特市| 烟台市| 武安市| 荆门市| 正定县| 常德市| 新竹县| 逊克县| 绵阳市| 高安市| 武鸣县| 威海市| 阿坝县| 慈利县| 民县| 鄂托克前旗| 北票市| 股票| 佛坪县| 英吉沙县| 汉阴县| 桐庐县| 阿勒泰市| 建湖县| 上思县| 麦盖提县| 女性| 额尔古纳市| 漠河县| 宾川县| 永寿县|