Saltstack_使用指南03_配置管理

1. 主機規劃

Saltstack_使用指南03_配置管理

注意事項
修改了master或者minion的配置文件,那麼必須重啓對應的服務。

2. 瞭解YAML

Saltstack_使用指南03_配置管理

具體地址
https://docs.saltstack.com/en/latest/topics/yaml/index.html 
YAML:三板斧
1、縮進:  2個空格,不能使用Tab
2、冒號:  key: value   注意有空格
3、短橫線:  - list1     注意有空格
                      - list2

3. 配置管理路徑指定

3.1. master指定配置管理基本路徑

[root@salt100 salt]# pwd
/etc/salt
[root@salt100 salt]# vim master
………………
# Example:
# file_roots:
#   base:
#     - /srv/salt/
#   dev:
#     - /srv/salt/dev/services
#     - /srv/salt/dev/states
#   prod:
#     - /srv/salt/prod/services
#     - /srv/salt/prod/states
# 
# 將如下的註釋放開即可
# 也可以不變更配置,因爲這是個默認配置★★
file_roots:
  base:
    - /srv/salt
………………
[root@salt100 salt]# systemctl restart salt-master.service  # 修改了配置文件,必須重啓服務 

Saltstack_使用指南03_配置管理

3.2. 創建對應的目錄

[root@salt100 ~]# mkdir -p /srv/salt

4. 測試案例--單個狀態管理

4.1. 編寫測試案例----安裝apache

1、爲了方便後期維護指定一個特定目錄
[root@salt100 salt]# pwd
/srv/salt
[root@salt100 salt]# mkdir web
[root@salt100 salt]# cd web/
[root@salt100 web]# pwd
/srv/salt/web
2、編寫sls文件
[root@salt100 web]# pwd
/srv/salt/web
[root@salt100 web]# cat apache.sls  # 後綴名 sls,salt執行時會找sls文件
# sls文件允許註釋存在,內容可以直接複製使用
# 自定義的一個ID,唯一標識 ★★★★★
apache-install:
  # pkg 是一個執行模塊   . 引用   installed 使用方法
  pkg.installed:
    # - names 參數 支持多個列表
    - names:
      - httpd
      - httpd-devel

# enable: True 表示:開機自啓動
apache-service:
  service.running:
    - name: httpd
    - enable: True

4.2. 在master機器salt100上執行

給salt01、salt02、salt03部署安裝httpd
# 在master機器操作
[root@salt100 ~]# salt 'salt0*' test.ping  # 看salt01、salt02、salt03是否可通信
salt01:
    True
salt03:
    True
salt02:
    True
[root@salt100 ~]# salt 'salt0*' state.sls web.apache  # 給 salt01、salt02、salt03 部署httpd
# 說明:
# 1、master 配置管理基本目錄爲 /srv/salt
# 2、apache.sls 的路徑爲:/srv/salt/web/apache.sls
# 3、state.sls web.apache  說明 state模塊,調用 sls方法, 調用的文件是web路徑下的apache.sls文件【只是最後的 sls後綴名省略了】
備註:做了哪些事情

1、 將/srv/salt/web/apache.sls文件從master發送給minion;
2、 minion得到文件後,根據master指令執行apache.sls中的內容

master將文件發送到minion的那個位置
# 在minion端查看
[root@salt01 salt]# pwd
/var/cache/salt
[root@salt01 salt]# ll
total 0
drwxr-xr-x 6 root root 103 Dec 11 23:52 minion
[root@salt01 salt]# tree
.
└── minion
    ├── accumulator
    ├── extmods
    ├── files
    │   └── base
    │       └── web
    │           └── apache.sls
    ├── highstate.cache.p
    ├── proc
    └── sls.p

7 directories, 3 files

Saltstack_使用指南03_配置管理

4.3. 執行結果信息講解

# 執行返回結果是無序的
[root@salt100 ~]# salt 'salt0*' state.sls web.apache 
salt02:  # salt02執行結果信息
----------
          ID: apache-install  # apache.sls 中自定的ID【名稱】
    Function: pkg.installed
        Name: httpd
      Result: True
     Comment: The following packages were installed/updated: httpd
     Started: 23:51:46.604986
    Duration: 30335.469 ms
     Changes:   
              ----------
              httpd:
                  ----------
                  new:
                      2.4.6-88.el7.centos
                  old:
              httpd-tools:
                  ----------
                  new:
                      2.4.6-88.el7.centos
                  old:
              mailcap:
                  ----------
                  new:
                      2.1.41-2.el7
                  old:
----------
          ID: apache-install
    Function: pkg.installed
        Name: httpd-devel
      Result: True
     Comment: The following packages were installed/updated: httpd-devel
     Started: 23:52:16.965844
    Duration: 6661.51 ms
     Changes:   
              ----------
              apr-devel:
                  ----------
                  new:
                      1.4.8-3.el7_4.1
                  old:
              apr-util-devel:
                  ----------
                  new:
                      1.5.2-6.el7
                  old:
              cyrus-sasl:
                  ----------
                  new:
                      2.1.26-23.el7
                  old:
              cyrus-sasl-devel:
                  ----------
                  new:
                      2.1.26-23.el7
                  old:
              expat-devel:
                  ----------
                  new:
                      2.1.0-10.el7_3
                  old:
              httpd-devel:
                  ----------
                  new:
                      2.4.6-88.el7.centos
                  old:
              libdb-devel:
                  ----------
                  new:
                      5.3.21-24.el7
                  old:
              openldap:
                  ----------
                  new:
                      2.4.44-20.el7
                  old:
                      2.4.44-13.el7
              openldap-devel:
                  ----------
                  new:
                      2.4.44-20.el7
                  old:
----------
          ID: apache-service
    Function: service.running
        Name: httpd
      Result: True
     Comment: Service httpd has been enabled, and is running
     Started: 23:52:24.619598
    Duration: 314.737 ms
     Changes:   
              ----------
              httpd:
                  True

Summary for salt02
------------
Succeeded: 3 (changed=3)
Failed:    0
------------
Total states run:     3
Total run time:  37.312 s
salt01:  # salt01執行結果信息
………………
salt03:  # salt03執行結果信息
----------
………………

5. Salt高級狀態管理

生產環境使用,注意事項:
1、執行時不能使用 '*' ,所有minion執行
2、不能直接執行,要先 test=True;

5.1. 高級狀態sls文件的位置和名稱

默認file_roots的位置
Saltstack_使用指南03_配置管理
不用修改配置文件,默認即可。

5.2. 編寫top.sls文件

[root@salt100 salt]# pwd
/srv/salt
[root@salt100 salt]# tree
.
├── top.sls
└── web
    └── apache.sls

1 directory, 2 files
[root@salt100 salt]# cat top.sls 
base:
  # 使用通配符
  'salt0*':
    - web.apache
    # - web.nginx  # 可以有多個
  # 指定具體minion
  'salt03':
    - web.apache

5.3. 執行高級狀態

[root@salt100 ~]# salt 'salt01' state.highstate test=True  # 必須先執行這個
………………
# 原因:防止自己手動改了minion機器上組件的配置信息,但是沒有同步到salt;
# 結果直接執行後,又改回去了。
[root@salt100 ~]# salt 'salt01' state.highstate  # 執行高級狀態,通過top.sls 去查找
………………
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章