1. 程式人生 > >自動化運維工具----saltstack安裝及配置

自動化運維工具----saltstack安裝及配置

Saltstack

一.環境準備

https://mirrors.aliyun.com/repo/Centos-7.repo

https://mirrors.aliyun.com/repo/epel-7.repo

需要以上兩個阿里雲的repo還有本機自身的centos7映象的repo。

 

二.安裝saltstack

 

master機器上安裝salt-master

 

yum -y install salt-master

 

minion機器上安裝salt-minion

 

yum -y install salt-minion

 

 

 

master機器上配置/etc/salt/master配置檔案

 

搜尋file_root找到該配置欄目,把備註去掉

 

file_roots:
  base:
    - /saltstack/salt

搜尋pillar找到該配置欄目,把備註去掉

 

 

pillar_roots:
  base:
    - /saltstack/pillar

 

開啟防火牆

firewall-cmd --add-port=4506/tcp --permanent

firewall-cmd --add-port=4505/tcp --permanent

重啟服務

設定開機啟動

systemctl restart salt-master.service

systemctl enable salt-master.service 

 

 

 

minion機器上,配置/etc/salt/minion配置檔案

 

搜尋master並修改其ip地址

master: 172.16.1.177

搜尋id,此處表示在master側顯示本機為什麼樣的id。

id: web01

 

重啟服務

 

設定開機啟動

 

systemctl restart salt-minion.service

 

systemctl enable salt-minion.service 

 

然後在master機器上輸入命令

salt-key  檢視是否有minion連線上(若連線不上,可能是minion配置或者是防火牆問題,配置檔案的空格限制非常嚴格)

salt-key  -A  接受所有連線

salt-key  -a  接受主機

salt-key  -d  刪除主機

salt-key  -l   列出所有

 

三.saltstack命令

Salt命令格式

    目標    模組(命令)  方法(引數)

salt       ‘*’        test.ping

salt       ‘*’        cmd.run            ‘df -h’

 

一些小例項:

-------------------------------------------------例項1:批量管理檔案--------------------------------------------------

在之前的/etc/salt/master配置檔案中我們已經定義了saltfile預設根目錄為/srv/saltpillar根目錄為/srv/pillar。但是系統這時候是沒有這兩個目錄的,因此要自己建立。

mkdir  /srv/{salt,pillar}  

然後進入/srv/salt,建立目錄files

mkdir  /srv/salt/files

同時建立配置檔案,host_file.slssalt配置檔案的字尾必須為sls

vim  host_flie.sls 

update-hosts:
  file.managed:
    - name: /etc/hosts                         #指定修改哪裡的檔案
    - source: salt://files/hosts              #指定原始檔存放在本地的哪裡
    - user: root
    - group: root
    - mode: 664

執行命令,更新檔案。

salt  ‘*’  state.sls  host_file 

 

-------------------------------------------------例項2:批量安裝應用-------------------------------------------------

建立sls檔案

vim  service_install.sls

service-install:
  pkg.installed:                                  #安裝模組
    - names:
      - vsftpd
      - httpd
      - lrzsz
      - lsof

service-running:
  service.running:                             #服務啟動模組
    - enable: True
    - reload: True
    - names:
      - vsftpd

執行sls檔案

salt  ‘*’  state.sls  service_install.sls

 

------------------------------------------例項三:規劃定時任務crontab------------------------------------------

建立sls檔案

vim  cron.sls

 

cleanup:
  cron.present:
    - name: /bin/bash /scripts/cleanup.sh                    #想要加入定時任務的命令
    - user: root                                                             #指定使用者為root
    - minute: 5                                                             #分  
    - hour: 10-23                                                          #時
    - daymonth: 1-30                                                   #日
    - month: 1-6                                                           #月

#  -dayweek:                                                              #周