ansible roles
ansible roles
roles角色
roles角色是ansilbe 1.2引入的新特性,用于結(jié)構(gòu)化、層次化 地組織playbook,roles會將tasks 、files、handlers、vars分別放在不同的目錄下 ,roles能夠根據(jù)目錄結(jié)構(gòu)自動識別并裝載變量文件 、tasks 、files、handlers等,在playbook中使用include指令引入服務(wù)名。
roles目錄結(jié)構(gòu)范例
# playbookssite.ymlwebservers.ymlfooservers.ymlroles/ common/ tasks/ handlers/ library/ files/ templates/ vars/ defaults/ meta/ webservers/ tasks/ defaults/ meta/- common,webservers角色名稱
- files:存放由copy或script模塊等調(diào)用的文件
- templates :template模塊查找所需要模板文件的目錄
- tasks:定義task,至少應(yīng)該包含一個名為main.yml的文件;其它的文件需要在此文件中通過include進行包含
- handlers :至少應(yīng)該包含一個名為main.yml的文件;其它的文件需要在此文件中通過include進行包含
- vars :定義變量,至少應(yīng)該包含一個名為main.yml的文件
- meta :定義當前角色的特殊設(shè)定及其依賴關(guān)系,至少應(yīng)該包含一個名為main.yml的文件,其它文件需在此文件中通過include進行包含
- default :設(shè)定默認變量時使用此目錄中的main.yml文件,比vars的優(yōu)先級低
roles創(chuàng)建規(guī)則
- 創(chuàng)建和playbook文件同級的roles目錄
- 根據(jù)需要在roles目錄下創(chuàng)建自定義角色名目錄
- 根據(jù)需要在角色目錄下創(chuàng)建tasks 、handlers 、library、files、vars、templates等目錄 。
- 根據(jù)需要在tasks、handlers 、library、files 、vars、templates等目錄下創(chuàng)建main.yml以便引入其他同級yml文件
范例
tomcat.yml
[appmanager@localhost ansible]$ lltotal 3drwxr-xr-x. 3 appmanager devops 20 Jun 3 03:06 roles-rw-r--r--. 1 appmanager devops 68 Jun 3 03:10 tomcat.yml[appmanager@localhost ansible]$ cat tomcat.yml ---- hosts: nodes_by_key remote_user: node1 roles: - tomcatroles
[appmanager@localhost ansible]$ tree roles/roles/ tomcat files apache-tomcat-8.5.79.tar.gz tasks download.yml install.yml main.yml start.yml vars main.ymltasks
[appmanager@localhost tasks]$ pwd/home/appmanager/mnt/ansible/roles/tomcat/tasks[appmanager@localhost tasks]$ cat download.yml - name: download the tomcat copy: src="/a2020/img/data-img.jpg" data-src=apache-tomcat-8.5.79.tar.gz dest=/home/node1/tmp[appmanager@localhost tasks]$ cat install.yml - name: install the tomcat unarchive: src="/a2020/img/data-img.jpg" data-src={ { tomcat_package_name }} dest={ { basepath }} copy=true[appmanager@localhost tasks]$ cat start.yml - name: start tomcat shell: nohup { { basepath }}/{ { tomcat_basepath }}/bin/startup.sh &[appmanager@localhost tasks]$ cat main.yml - include: download.yml- include: install.yml- include: start.ymlvars - main.yml
[appmanager@localhost vars]$ pwd/home/appmanager/mnt/ansible/roles/tomcat/vars[appmanager@localhost vars]$ cat main.yml tomcat_version: 8.5.79tomcat_package_name: apache-tomcat-8.5.79.tar.gzbasepath: /home/node1tomcat_basepath: apache-tomcat-{ { tomcat_version }}node1節(jié)點tomcat進程
[node1@localhost ~]$ psfu | grep java | grep -v grepnode1 10853 1 0 05:29 ? 00:00:03 /usr/bin/java -Djava.util.logging.config.file=/home/node1/apache-tomcat-8.5.79/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /home/node1/apache-tomcat-8.5.79/bin/bootstrap.jar:/home/node1/apache-tomcat-8.5.79/bin/tomcat-juli.jar -Dcatalina.base=/home/node1/apache-tomcat-8.5.79 -Dcatalina.home=/home/node1/apache-tomcat-8.5.79 -Djava.io.tmpdir=/home/node1/apache-tomcat-8.5.79/temp org.apache.catalina.startup.Bootstrap start展開閱讀全文投稿時間:2022-06-05 最后更新:2022-09-07
.jpg)
標簽:氣流干燥設(shè)備
上一篇:香港彩495(廣安)有限公司