## ubuntu16安裝python3版本(python3.5及以上)
wget -o - | sudo apt-key add -
deb xenial main
## centos7
yum install -y -y
## python3.5.2安裝
pip install salt
c:\salt\conf ## master配置檔案目錄
c:\salt\conf\pki\master ## 認證資訊
salt-key --auto-create ## 建立公鑰
salt-master ## 執行salt-master程式
## 在不安裝salt-minion的情況下通過ssh執行salt命令
/etc/salt/roster
##yum install salt-master
## 4505傳送命令,監聽資訊
## 4506建立一對一連線,非同步處理
## /etc/salt/master
#hash_type: sha512 證書認證方式
## 秘鑰對存放路徑
/etc/salt/pki/master/master.pub
/etc/salt/pki/master/master.pem
## yum install salt-minion
## /etc/salt/minion
#master:
- [master1] # 多master管理,需要使用同一對公鑰和秘鑰master.pub、master.pem
- [master2]
#hash_type: sha512
#id: [minion id]
salt-key -l # 檢視所有清單
salt-key -a # 接受所有unaccepted keys
salt-key -a [salt-minion id] # 手動新增證書認證
salt-key -d # 刪除所有證書
salt-key -d [salt-minion id] # 刪除單個
salt -n "group1" cmd.run "ifconfig"
# -e 以正則匹配主機id
# -l 以逗號分隔
# -n nodegroups
master配置檔案中配置好組名和對應主機id
group1: "l@id1,id2" #l表示後面的id以列表形式分隔,分隔符","
# -c 多條件匹配,not,and,or
# -s 根據主機ip位址或ip子網進行匹配
## cmd.run(cmd ,cwd ,...)
salt "*" cmd.run "ifconfig"
## cp模組
1、salt-cp命令
salt-cp 「*」 cp.get_file [localpath] [remotepath]
2、salt 檔案伺服器
salt://表示 檔案伺服器的base環境。
salt檔案伺服器/etc/salt/master配置檔案中的flie_roots選項管理。
salt "*" cp.get_file salt://tmp/python1.py /tmp/dir1/ makedirs=true
4、cp.get_dir # 在master端上獲取minion端的檔案
5、cp.push # 從minion端推送檔案到master
cp.push功能預設不開啟,需要修改配置檔案中的file_recv 環境,預設為false
上傳的檔案存放在master端的 /var/cache/salt/master/minions//files/ 目錄下
file_recv: true
file_recv_max_size: # 允許最大上傳檔案大小,單位mb
## file模組
1、file.copy
salt '*' file.copy /path/to/src_dir /path/to/dst_dir recurse=true remove_existing=true
2、file.move
salt '*' file.move /path/to/src /path/to/dst
3、file.remove
salt '*' file.rename /path/to/src /path/to/dst
4、file.chown
salt '*' file.chown /etc/passwd root root
5、file.mkdir
salt '*' file.mkdir /opt/jetty/context
6、file.file_exists
salt '*' file.file_exists /etc/passwd
7、file.stats
salt '*' file.stats /etc/passwd
import salt.client
client = salt.client.localclient()
## cmd(tgt, fun, arg=(), timeout=none, tgt_type=u'glob', ret=u'', jid=u'', full_return=false, kwarg=none, **kwargs)
tgt: minion主機,預設是glob。由tgt_type選項修改
fun: 模組
arg: 要傳遞給遠端函式的引數列表,["arg1","arg2"]傳入兩個引數。
timeout: 超時
tgt_type: glob,list,nodegroup,pcre
result = client.cmd("group1" ,"cmd.run" ,arg = ["ls -la"] ,tgt_type = "nodegroup")
full_return:完整返回,包括退出**和其他作業元資料。僅輸出作業返回(預設)
>>> client.cmd("10.1.1.98", "test.ping", full_return=true)
}
## 獲取主機的grains資訊。
salt "*" grains.ls ## 列出grains所有的項
salt "*" grains.item os ## 檢視os項的資訊
## 定義grains資料
/etc/salt/minion
default_include: minion.d/*.conf
自定義鍵值
saltstack的高效運維
先關閉防火牆 systemctl stop firewalld systemctl disable firewalld iptables f 配置阿里雲映象源 wget o etc yum.repos.d centos base.repo wget o etc yum.repos.d epel.re...
自動化運維工具Saltstack學習筆記(二)
前面學習了saltstack安裝和基本的配置,可以通過saltstack批量執行系統命令,包括系統重啟,檢視系統負載,新增 刪除使用者等等。也可以把線上web,db,bbs等安裝和配置相同或相近的伺服器分為一組,通過saltstack的group功能批量執行管理。下面通過saltstack來實現批量...
自動化運維 Saltstack 教程
name version capacity centos 7 3.10.0 693.el7.x86 64 1 smp tue aug 22 21 09 27 utc 2017 x86 64 x86 64 x86 64 gnu linux saltstack 常見自動化運維工具 puppet www....