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
<Directory "/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 </Directory>
[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

浙公網安備 33010602011771號