博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SaltStack配置管理--状态间的关系(六)
阅读量:4970 次
发布时间:2019-06-12

本文共 4418 字,大约阅读时间需要 14 分钟。

一.include的引用

需求场景:用于含有多个SLS的状态,使用include可以进行多个状态的组合,将安装apache,php,mysql集合在一个sls中

 

[root@7mini-node1 prod]# pwd/srv/salt/prod[root@7mini-node1 prod]# vim lamp.slsinclude:  - apache.init  - php.init  - mysql.init[root@7mini-node1 prod]# vim ../base/top.sls prod:  '7mini-node1':    - lamp[root@7mini-node1 prod]# salt  "7mini-node1" state.highstate    #执行无报错为正确

 

 

二.extend的使用

需求场景:软件包安装的时候,需求假设:只在node1上按装php-mbstring包,其他的机器不安装。单独在组合的sls中添加,不需要可以删掉

[root@7mini-node1 prod]# pwd/srv/salt/prod[root@linux-node1 prod]# vim lamp.sls include:  - apache.init  - php.init  - mysql.initextend:  php-install:    pkg.installed:      - name: php-mbstring[root@linux-node1 prod]# salt  "7mini-node1" state.highstate

 

三、require和require_in的使用

require:我依赖谁

require_in:我被谁依赖
需求场景:如果安装不成功或者配置httpd不成功,不启动httpd

(1)require使用[root@7mini-node1 apache]# pwd/srv/salt/prod/apache[root@7mini-node1 apache]# systemctl stop httpd[root@7mini-node1 apache]# vim init_require.sls apache-install:  pkg.installed:    - name: httpdapache-config:  file.managed:    - name: /etc/httpd/conf/httpd.conf    - source: salt://apache/files/httpd1.conf----->将此处的文件改错,模拟配置错误    - user: root    - group: root    - mode: 644apache-service:  service.running:    - name: httpd    - enable: True    - require:---------------------------->使用require,表示依赖      - pkg: apache-install--------------->依赖的状态模块为pkg模块,id为apache-install      - file: apache-config--------------->依赖的状态模块为file模块,id为apache-config[root@7mini-node1 apache]# salt   "7nini-noed1" state.highstate   #执行模块提示会有报错,此时httpd不会正常启动

 

(2)require_in使用               #与require是相同的只是表达方式的不同[root@7mini-node1 apache]# vim init_require_in.sls apache-install:  pkg.installed:    - name: httpd    - require_in:------------------>被依赖      - service: apache-service---->被依赖的模块是service,id为apache-serviceapache-config:  file.managed:    - name: /etc/httpd/conf/httpd.conf    - source: salt://apache/files/httpd.conf    - user: root    - group: root    - mode: 644    - require_in:      - service: apache-serviceapache-service:  service.running:    - name: httpd    - enable: True解释说明:require和require_in都能实现依赖的功能,主动和被动的关系不同

  

四、watch和watch_in的使用

需求场景:监控配置文件变动,重启服务或重载服务

设置重启

[root@7mini-node1 apache]# pwd/srv/salt/prod/apache[root@7mini-node1 apache]# vim init_watch.sls apache-install:  pkg.installed:    - name: httpdapache-config:  file.managed:    - name: /etc/httpd/conf/httpd.conf    - source: salt://apache/files/httpd.conf    - user: root    - group: root    - mode: 644apache-service:  service.running:    - name: httpd    - enable: True    - watch:---------------------->使用watch      - file: apache-config------->监控的模块为file,id为apache-config[root@7mini-node1 apache]# vim files/httpd.conf     #随意修改配置文件[root@7mini-node1 apache]# salt  "7mini-node1" state.highstate

 设置重载

[root@7mini-node1 apache]# vim init_watch.sls apache-install:  pkg.installed:    - name: httpdapache-config:  file.managed:    - name: /etc/httpd/conf/httpd.conf    - source: salt://apache/files/httpd.conf    - user: root    - group: root    - mode: 644apache-service:  service.running:    - name: httpd    - enable: True    - reload: True----------------------------------->增加参数重载    - watch:      - file: apache-config[root@7mini-node1 apache]# salt -S "192.168.56.11" state.highstate

 

五、unless:状态间的条件判断

需求场景:给apache的admin目录进行加密登陆查看    #如果某文件存在将不执行

(1)修改配置文件,添加认证功能[root@7mini-node1 apache]# vim files/httpd.conf 
AllowOverride All Order allow,deny Allow from all AuthType Basic AuthName "haha" AuthUserFile /etc/httpd/conf/htpasswd_file Require user admin
(2)修改状态文件init.sls[root@7mini-node1 apache]# vim init.sls apache-install: pkg.installed: - name: httpdapache-config: file.managed: - name: /etc/httpd/conf/httpd.conf - source: salt://apache/files/httpd.conf - user: root - group: root - mode: 644apache-auth: pkg.installed: - name: httpd-tools cmd.run:------>使用cmd模块的run方法 - name: htpasswd -bc /etc/httpd/conf/htpasswd_file admin admin---->生成密码文件 - unless: test -f /etc/httpd/conf/htpasswd_file---->unless判断条件,test -f判断为假则执行。即htpasswd文件如果不存在就执行生成密码apache-service: service.running: - name: httpd - enable: True - reload: True - watch: - file: apache-config[root@7mini-node1 apache]# salt "7mini-node1" state.highstate

 浏览器访问10.0.0.11/admin/index.html会出现密码验证 

  

 

 

  

  

 

转载于:https://www.cnblogs.com/jimmy-xuli/p/9128883.html

你可能感兴趣的文章
mysql的表和数据类型
查看>>
uva11988Broken Keeyboard(链表)
查看>>
Java线程池关闭1-shutdown和isTerminated<转>
查看>>
web安全学习第一周
查看>>
nginx的学习材料
查看>>
Java中利用BigInteger类进行大数开方
查看>>
IIS错误:在唯一密钥属性“fileExtension”设置为“.mp4”时,无法添加类型为“mimeMap”的重复集合项...
查看>>
Eclipse快捷键
查看>>
关于jar冲突的解决方向servlet-api
查看>>
洛谷P3369 【模板】普通平衡树(FHQ Treap)
查看>>
揭密FutureTask
查看>>
搞死ILDASM
查看>>
HDOJ/HDU Tempter of the Bone(深搜+奇偶性剪枝)
查看>>
Android的Task和Activity相关
查看>>
PHP 安装
查看>>
CoreData基础
查看>>
cocos2d-html5 让图层阻挡下层触碰事件
查看>>
POJ 1850 Code 数位DP
查看>>
Ubuntu linux设置从当前目录下加载动态库so文件
查看>>
破解神器Hashcat使用简介
查看>>