4、saltstack学习 状态判断
1、状态判断
先在之前完成的lamp环境里,写个phpinfo
cd /var/www/html/
mkdir admin
vim admin/info.php
<?php
phpinfo()
?>
给这个phpinfo目录加密码认证
先修改salt-master的httpd文件,在156行下边加入下边一段
[root@master-1 web]# vim files/httpd.conf
"/var/www/html/admin"> AllowOverride All Order allow,deny Allow from All AuthUserFile /etc/httpd/conf/htpasswd_file AuthName "haha" AuthType Basic Require user admin
[root@master-1 web]# vim /srv/salt/base/web/lamp.sls
lamp-install: # 安装 pkg.installed: - pkgs: - httpd - php - php-pdo - php-mysql #配置 apache-config: file.managed: # 文件管理 - name: /etc/httpd/conf/httpd.conf - source: salt://web/files/httpd.conf #这是个相对目录,相当于base目录下的web - user: root - group: root - mode: 644 - require: #依赖某个状态 - pkg: lamp-install apache-auth: pkg.installed: - name: httpd-tools - require_in: - cmd: apache-auth # 确保httpd-tools安装 cmd.run: - name: htpasswd -bc /etc/httpd/conf/htpasswd_file admin admin # 调用htpasswd命令生成用户名密码,用户名和密码都是admin,保存到认证文件/etc/httpd/conf/htpasswd_file apache-conf: file.recurse: - name: /etc/httpd/conf.d - source: salt://web/files/apache-conf.d php-config: file.managed: - name: /etc/php.ini - source: salt://web/files/php.ini - user: root - group: root - mode: 644 lamp-service: service.running: - name: httpd - enable: True - reload: True - watch: # 关注某个状态,只要下边的配置文件有变更,就重载服务 - file: apache-conf #监控的状态模块,后边是状态ID - file: apache-config
2、判断命令是否执行unless
格式
test -f /etc/httpd/conf/htpasswd_file # 判断命令返回值为真,那么cmd.run就不执行,再修改lamp.sls
[root@master-1 web]# vim /srv/salt/base/web/lamp.sls
lamp-install: # 安装 pkg.installed: - pkgs: - httpd - php - php-pdo - php-mysql #配置 apache-config: file.managed: # 文件管理 - name: /etc/httpd/conf/httpd.conf - source: salt://web/files/httpd.conf #这是个相对目录,相当于base目录下的web - user: root - group: root - mode: 644 - require: #依赖某个状态 - pkg: lamp-install apache-auth: pkg.installed: - name: httpd-tools - require_in: - cmd: apache-auth # 确保httpd-tools安装 cmd.run: - name: htpasswd -bc /etc/httpd/conf/htpasswd_file admin admin # 调用htpasswd命令生成用户名密码,用户名和密码都是admin,保存到认证文件/etc/httpd/conf/htpasswd_file - unless: test -f /etc/httpd/conf/htpasswd_file # 判断命令返回值为真,那么cmd.run就不执行 apache-conf:#目录管理 file.recurse: - name: /etc/httpd/conf.d - source: salt://web/files/apache-conf.d php-config: file.managed: - name: /etc/php.ini - source: salt://web/files/php.ini - user: root - group: root - mode: 644 lamp-service: service.running: - name: httpd - enable: True - reload: True - watch: # 关注某个状态,只要下边的配置文件有变更,就重载服务 - file: apache-conf #监控的状态模块,后边是状态ID - file: apache-config