Saltstack介紹node
Salt三種運行方式web
1.local本地運行
2.Master/Minion
3.Salt sshapache
Salt的三大功能vim
a.遠程執行
b.配置管理(狀態管理)
c.雲管理:阿里雲,aws,openstack都提供了封裝好的接口,能夠使用salt-cloud進行雲主機的管理app
Saltstack環境準備
第一臺:mini1,既做爲salt-master,又做爲salt-minion
第二臺:node2.chinasoft.com,只做爲salt-minionssh
1.安裝salt客戶端和服務端測試
環境:
主機master 192.168.3.12:
yum install -y salt-master salt-minion阿里雲
啓動服務端
/etc/init.d/salt-master startspa
被控制端192.168.3.19:
yum install -y salt-minionrest
cat /etc/hosts
192.168.3.12 mini1
192.168.3.16 node2.chinasoft.com
2.修改客戶端配置
vim /etc/salt/minion
將master改成master主機地址
master: 192.168.3.12
啓動客戶端
/etc/init.d/salt-minion start
3.Saltstack的認證
minion首次啓動後會在minion端看到minion的私鑰和公鑰,salt會把公鑰發送給master
將客戶端贊成加入信任列表
# salt-key -a mini1
# salt-key -a node2.chinasoft.com
能夠看到/etc/salt/pki/minion目錄下有了minion_master.pub文件,這個就是master的公鑰
salt-key -a 支持通配符,好比salt-key -a mini* 統一mini開頭的主機名加入信任列表
4.Saltstack的遠程執行
使用test.ping測試master和minion是否連通
salt:基本命令; *:表明全部minion主機;test:模塊; ping:test模塊的一個方法,這裏的單引號也能夠使用雙引號
批量執行簡單命令:
# salt '*' test.ping node2.chinasoft.com: True mini1: True
使用cmd.run遠程執行命令,cmd是模塊,run是cmd模塊的一個方法
啓動時間
# salt '*' cmd.run 'uptime' node2.chinasoft.com: 09:52:35 up 3 days, 16:38, 2 users, load average: 0.00, 0.02, 0.00 mini1: 09:52:35 up 1 day, 19:48, 1 user, load average: 0.01, 0.02, 0.01
磁盤大小
# salt '*' cmd.run 'df -Th' mini1: Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg0-root ext4 25G 1.6G 23G 7% / tmpfs tmpfs 495M 16K 495M 1% /dev/shm /dev/sda1 ext4 291M 39M 238M 14% /boot /dev/mapper/vg0-usr ext4 20G 2.8G 16G 15% /usr /dev/mapper/vg0-var ext4 9.7G 1004M 8.2G 11% /var node2.chinasoft.com: Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg_node2-root ext4 29G 994M 27G 4% / tmpfs tmpfs 935M 12K 935M 1% /dev/shm /dev/sda1 ext4 485M 39M 421M 9% /boot /dev/mapper/vg_node2-data ext4 29G 239M 28G 1% /data /dev/mapper/vg_node2-usr ext4 9.7G 2.0G 7.2G 22% /usr /dev/mapper/vg_node2-web ext4 25G 172M 23G 1% /web
5.配置管理
建立salt的工做目錄,啓用配置管理:
file_root表明文件目錄所在,base指base環境,是必須存在的,這裏支持多種(測試開發生產等)環境,後續會提到
簡單安裝一個apache服務,並添加到自啓動
vim /etc/salt/master
file_roots:
base:
- /srv/salt
建立/srv/salt目錄
mkdir /srv/salt
# /etc/init.d/salt-master restart
# 編寫腳本安裝apache服務並開機自啓動,注意空格不能用tab鍵代替
vim /srv/salt/apache.sls apache-install: pkg.installed: - names: - httpd - httpd-devel apache-service: service.running: - name: httpd - enable: True - reload: True
執行腳本:
# salt '*' state.sls apache
關於配置文件apache.sls的解釋(注意生產環境的配置文件不要將#後面的內容放進去,不然會報錯):
apache-install: #服務ID
pkg.installed: #apache:模塊 install:方法
- names: #names列表
- httpd #會使用yum安裝httpd
- httpd-devel #會使用yum安裝httpd-devel
apache-service: #服務ID
service.running: #service:模塊 running:方法
- name: httpd #name:指定http的服務用來service.running
- enable: True #開機啓動
- reload: True #支持重載
執行後能夠看到已經成功完成apache的安裝及啓動