下文的案例是根據上一篇文章進行的修改。所以請優先讀取上一篇文章內容《Saltstack_10_配置管理-狀態模塊》php
而且目錄進行了變化,從 /srv/salt/lamp 變爲了 /srv/salt/lamp2 。html
另外:下文沒有根據模塊編寫,而是根據服務進行編寫的。其中數據庫也是單獨部署的。mysql
1 [root@salt100 ~]# salt --version 2 salt 2018.3.3 (Oxygen) 3 [root@salt100 ~]# salt-minion --version 4 salt-minion 2018.3.3 (Oxygen)
https://docs.saltstack.com/en/latest/ref/states/all/index.html
https://docs.saltstack.com/en/latest/topics/tutorials/states_pt2.html
https://docs.saltstack.com/en/latest/topics/tutorials/states_pt3.html
修改了master或者minion的配置文件,那麼必須重啓對應的服務。sql
1 狀態間關係: 2 1、我依賴誰 require 3 2、誰依賴我【我被誰依賴】 require_in 4 5 3、我監控誰 watch # 例如:若是配置文件有修改,那麼會重載、重啓服務 6 4、誰監控我【我被誰監控】 watch_in # 若是配置文件有修改,那麼會重載、重啓服務 7 8 5、我引用誰 include 9 6、我擴展誰 extend 10 11 如何編寫SLS技巧: 12 1、按狀態分類 若是單獨使用,很清晰 13 2、按服務分類 能夠被其餘的SLS include。例如:LNMP include mysql 的服務 【生產優先使用】
1 [root@salt100 lamp2]# pwd # 所在目錄 2 /srv/salt/lamp2 3 [root@salt100 lamp2]# ll 4 total 16 5 -rw-r--r-- 1 root root 599 Dec 31 15:27 apache.sls 6 drwxr-xr-x 2 root root 53 Dec 31 15:50 file 7 -rw-r--r-- 1 root root 41 Dec 31 15:49 init.sls 8 -rw-r--r-- 1 root root 563 Dec 31 15:42 mariadb.sls # 單獨使用 9 -rw-r--r-- 1 root root 346 Dec 31 15:31 php.sls 10 [root@salt100 lamp2]# ll file/ # 涉及的配置文件 11 total 80 12 -rw-r--r-- 1 root root 11786 Dec 31 15:50 httpd.conf 13 -rw-r--r-- 1 root root 671 Dec 31 15:43 my.cnf 14 -rw-r--r-- 1 root root 64945 Oct 31 03:33 php.ini 15 [root@salt100 lamp2]# cat init.sls 16 include: # 我包含誰 17 - lamp2.apache 18 - lamp2.php 19 20 [root@salt100 lamp2]# cat apache.sls 21 apache-service: 22 pkg.installed: 23 - name: httpd 24 25 file.managed: 26 - name: /etc/httpd/conf/httpd.conf 27 - source: salt://lamp2/file/httpd.conf 28 - user: root 29 - gourp: root 30 - mode: 644 31 - backup: minion 32 - require: # 我依賴誰 33 - pkg: apache-service # 依賴 apache-service 中 pkg 的安裝包 34 35 service.running: 36 - name: httpd 37 - enable: True 38 - reload: True 39 - require: # 我依賴誰 40 - pkg: apache-service 41 - watch: # 我監控誰 42 # 一旦發生變化,就重加載服務 43 - file: apache-service # 監控 apache-service 中 file 的文件 44 45 [root@salt100 lamp2]# cat php.sls 46 php-service: 47 pkg.installed: 48 - name: php 49 - name: php-devel 50 - name: mariadb 51 - name: php-mysql 52 - name: php-cli 53 - name: php-mbstring 54 55 file.managed: 56 - name: /etc/php.ini 57 - source: salt://lamp2/file/php.ini 58 - user: root 59 - group: root 60 - mode: 644 61 - backup: minion 62 - require: # 我依賴誰 63 - pkg: php-service
1 [root@salt100 lamp2]# salt 'salt01' state.sls lamp2.init test=True # 測試是否可行 【查看返回信息】 2 [root@salt100 lamp2]# salt 'salt01' state.sls lamp2.init # 查看執行結果 3 [root@salt100 lamp2]# salt 'salt0*' test.ping # 將進行批量執行----查看目標選擇是否正確 4 salt01: 5 True 6 salt02: 7 True 8 salt03: 9 True 10 [root@salt100 lamp2]# salt 'salt0*' state.sls lamp2.init # 批量執行【並查看執行結果】
1 [root@salt100 lamp2]# pwd # 所在目錄 2 /srv/salt/lamp2 3 [root@salt100 lamp2]# ll 4 total 16 5 -rw-r--r-- 1 root root 599 Dec 31 15:27 apache.sls 6 drwxr-xr-x 2 root root 53 Dec 31 15:50 file 7 -rw-r--r-- 1 root root 41 Dec 31 15:49 init.sls 8 -rw-r--r-- 1 root root 563 Dec 31 15:42 mariadb.sls # 單獨使用 9 -rw-r--r-- 1 root root 346 Dec 31 15:31 php.sls 10 [root@salt100 lamp2]# ll file/ # 涉及的配置文件 11 total 80 12 -rw-r--r-- 1 root root 11786 Dec 31 15:50 httpd.conf 13 -rw-r--r-- 1 root root 671 Dec 31 15:43 my.cnf 14 -rw-r--r-- 1 root root 64945 Oct 31 03:33 php.ini 15 [root@salt100 lamp2]# cat mariadb.sls 16 mariadb-service: 17 pkg.installed: 18 - name: mariadb 19 - name: mariadb-server 20 - require_in: # 誰依賴我「我被誰依賴」 21 - file: mariadb-service 22 - watch_in: # 誰監控我「我被誰監控」 23 - service: mariadb-service 24 25 file.managed: 26 - name: /etc/my.cnf 27 - source: salt://lamp2/file/my.cnf 28 - user: root 29 - group: root 30 - mode: 644 31 - backup: minion 32 - watch_in: # 誰監控我「我被誰監控」 33 - service: mariadb-service 34 35 service.running: 36 - name: mariadb.service 37 - enable: True 38 - restart: True
1 [root@salt100 lamp2]# salt 'salt100' state.sls lamp2.mariadb test=True # 測試是否可行 【查看返回信息】 2 [root@salt100 lamp2]# [root@salt100 lamp2]# salt 'salt100' state.sls lamp2.mariadb # 查看執行結果