1. Salt yaml配置文件使用Jinja2模板介绍
1.1 File状态使用template参数
1.2 模板文件里面变量使用{{ 名称 }}
1.3 变量列表
2. 实战应用
jinja2官方网站:
http://jinja.pocoo.org/
- template: jinja
{{ 名称 }}
` PORT `
- defaults: PORT: 8080
添加监听主机和端口变量
vim /srv/salt/devfiles/httpd.conf
Listen ` HOST `:` PORT `# ` MAC `
配置salt master配置文件、pillar配置文件、lamp.sls添加jinja模板:
[root@salt-master112 dev]# egrep -v '^$|^[#]' /etc/salt/masterstate_top: top.slsfile_roots: base: - /srv/salt dev: - /srv/salt/dev test: - /srv/salt/test prod: - /srv/salt/prodpillar_roots: base: - /srv/salt/pillar dev: - /srv/salt/dev/pillar[root@salt-master112 dev]# cat /srv/salt/pillar/top.sls dev: 'node*.test.com': - apache[root@salt-master112 dev]# cat /srv/salt/dev/pillar/apache.sls apache: HOST: {{ grains['fqdn_ip4'][0] }} PORT: 8080 MAC: {{ salt['network.hw_addr']('eth0') }}[root@salt-master112 dev]# salt '*' saltutil.refresh_pillar node1.test.com: Truemaster.test.com: Truenode2.test.com: True[root@salt-master112 dev]# salt '*' pillar.items master.test.com: ----------node1.test.com: ---------- apache: ---------- HOST: 10.1.0.109 MAC: 00:50:56:a4:44:7a PORT: 8080node2.test.com: ---------- apache: ---------- HOST: 10.1.0.110 MAC: 00:50:56:a4:44:7a PORT: 8080[root@salt-master112 dev]# cat /srv/salt/dev/lamp.sls lamp-pkg-install: pkg.installed: - names: - php - php-fpm - mysql - php-mysql - php-pdoapache-service: pkg.installed: - name: httpd file.managed: - name: /etc/httpd/conf/httpd.conf - source: - salt://files/httpd.conf - user: root - group: root - mode: 644 - template: jinja - defaults: HOST: {{ pillar['apache']['HOST'] }} PORT: {{ pillar['apache']['PORT'] }} MAC: {{ pillar['apache']['MAC'] }} - require: - pkg: apache-service service.running: - name: httpd - enable: True - reload: True - watch: - file: apache-servicemysql-service: pkg.installed: - name: mysql-server - require_in: - file: mysql-service file.managed: - name: /etc/my.cnf - source: - salt://files/my.cnf - user: root - group: root - mode: 644 - watch_in: - service: mysql-service service.running: - name: mysqld - enable: Truephp-fpm-service: service.running: - name: php-fpm - enable: True[root@salt-master112 dev]#
执行结果:
[root@salt-master112 dev]# salt '*' state.highstatemaster.test.com:---------- ID: /etc/resolv.conf Function: file.managed Result: True Comment: File /etc/resolv.conf is in the correct state Started: 17:54:00.390576 Duration: 31.841 ms Changes: Summary for master.test.com------------Succeeded: 1Failed: 0------------Total states run: 1Total run time: 31.841 msnode1.test.com:---------- ID: /etc/resolv.conf Function: file.managed Result: True Comment: File /etc/resolv.conf is in the correct state Started: 09:56:43.761673 Duration: 34.809 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-fpm Result: True Comment: Package php-fpm is already installed Started: 09:56:44.225287 Duration: 630.568 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-pdo Result: True Comment: Package php-pdo is already installed Started: 09:56:44.856050 Duration: 0.522 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php Result: True Comment: Package php is already installed Started: 09:56:44.856677 Duration: 0.366 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-mysql Result: True Comment: Package php-mysql is already installed Started: 09:56:44.857143 Duration: 0.386 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: mysql Result: True Comment: Package mysql is already installed Started: 09:56:44.857623 Duration: 0.349 ms Changes: ---------- ID: apache-service Function: pkg.installed Name: httpd Result: True Comment: Package httpd is already installed Started: 09:56:44.858061 Duration: 0.343 ms Changes: ---------- ID: apache-service Function: file.managed Name: /etc/httpd/conf/httpd.conf Result: True Comment: File /etc/httpd/conf/httpd.conf updated Started: 09:56:44.858780 Duration: 34.022 ms Changes: ---------- diff: --- +++ @@ -133,9 +133,9 @@ # prevent Apache from glomming onto all bound IP addresses (0.0.0.0) # #Listen 12.34.56.78:80 -Listen 0.0.0.0:8080 - -# 00:50:56:a4:7a:70 +Listen 10.1.0.109:8080 + +# 00:50:56:a4:44:7a # Dynamic Shared Object (DSO) Support # # To be able to use the functionality of a module which was built as a DSO you---------- ID: apache-service Function: service.running Name: httpd Result: True Comment: Service reloaded Started: 09:56:44.950689 Duration: 87.451 ms Changes: ---------- httpd: True---------- ID: mysql-service Function: pkg.installed Name: mysql-server Result: True Comment: Package mysql-server is already installed Started: 09:56:45.038390 Duration: 0.739 ms Changes: ---------- ID: mysql-service Function: file.managed Name: /etc/my.cnf Result: True Comment: File /etc/my.cnf is in the correct state Started: 09:56:45.039596 Duration: 17.182 ms Changes: ---------- ID: mysql-service Function: service.running Name: mysqld Result: True Comment: The service mysqld is already running Started: 09:56:45.057008 Duration: 68.422 ms Changes: ---------- ID: php-fpm-service Function: service.running Name: php-fpm Result: True Comment: The service php-fpm is already running Started: 09:56:45.125649 Duration: 53.97 ms Changes: Summary for node1.test.com-------------Succeeded: 13 (changed=2)Failed: 0-------------Total states run: 13Total run time: 929.129 msnode2.test.com:---------- ID: /etc/resolv.conf Function: file.managed Result: True Comment: File /etc/resolv.conf is in the correct state Started: 09:56:44.357709 Duration: 56.916 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-fpm Result: True Comment: Package php-fpm is already installed Started: 09:56:45.634382 Duration: 1721.668 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-pdo Result: True Comment: Package php-pdo is already installed Started: 09:56:47.356467 Duration: 1.34 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php Result: True Comment: Package php is already installed Started: 09:56:47.358095 Duration: 1.359 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-mysql Result: True Comment: Package php-mysql is already installed Started: 09:56:47.359721 Duration: 1.553 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: mysql Result: True Comment: Package mysql is already installed Started: 09:56:47.361541 Duration: 1.361 ms Changes: ---------- ID: apache-service Function: pkg.installed Name: httpd Result: True Comment: Package httpd is already installed Started: 09:56:47.363199 Duration: 1.377 ms Changes: ---------- ID: apache-service Function: file.managed Name: /etc/httpd/conf/httpd.conf Result: True Comment: File /etc/httpd/conf/httpd.conf updated Started: 09:56:47.365880 Duration: 84.28 ms Changes: ---------- diff: --- +++ @@ -133,9 +133,9 @@ # prevent Apache from glomming onto all bound IP addresses (0.0.0.0) # #Listen 12.34.56.78:80 -Listen 0.0.0.0:8080 - -# 00:50:56:a4:00:5c +Listen 10.1.0.110:8080 + +# 00:50:56:a4:44:7a # Dynamic Shared Object (DSO) Support # # To be able to use the functionality of a module which was built as a DSO you---------- ID: apache-service Function: service.running Name: httpd Result: True Comment: Service reloaded Started: 09:56:47.617560 Duration: 236.903 ms Changes: ---------- httpd: True---------- ID: mysql-service Function: pkg.installed Name: mysql-server Result: True Comment: Package mysql-server is already installed Started: 09:56:47.855453 Duration: 6.781 ms Changes: ---------- ID: mysql-service Function: file.managed Name: /etc/my.cnf Result: True Comment: File /etc/my.cnf is in the correct state Started: 09:56:47.865735 Duration: 72.983 ms Changes: ---------- ID: mysql-service Function: service.running Name: mysqld Result: True Comment: The service mysqld is already running Started: 09:56:47.939601 Duration: 169.518 ms Changes: ---------- ID: php-fpm-service Function: service.running Name: php-fpm Result: True Comment: The service php-fpm is already running Started: 09:56:48.109622 Duration: 157.914 ms Changes: Summary for node2.test.com-------------Succeeded: 13 (changed=2)Failed: 0-------------Total states run: 13Total run time: 2.514 s[root@salt-master112 dev]#
node1和node2的apache配置文件,Listen位置内容也有相应变化。
[root@im109 ~]# vim /etc/httpd/conf/httpd.conf Listen 10.1.0.109:8080# 00:50:56:a4:44:7a
[root@im110 ~]# vim /etc/httpd/conf/httpd.conf Listen 10.1.0.110:8080# 00:50:56:a4:44:7a
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。