您好,登錄后才能下訂單哦!
?
Saltstack官方文檔: dock.saltstack.com
Saltstack項目:github.com/saltstack
Saltstack中文網:wiki.saltstack.cn
?
Salt是基礎平臺管理工具。只需花費數分鐘即可運行,擴展性足以支撐管理上萬臺服務器,數秒鐘即可完成數據傳遞。
???????? Salt可以做什么:
1.?????? 配置管理
2.?????? 遠程命令
3.?????? 包管理
?
應用步驟:
本環境假設為離線環境,需要使用離線包安裝此服務
參考文檔
https://blog.csdn.net/u014703013/article/details/81288969
1.? 先使用wget 下載網站的安裝包,為了后面離線安裝作準備。
以下這個是例子,根據你的發行版是啥而具體選擇啥版本:
wget -r -c -np? -P c:\satl? https://repo.saltstack.com/yum/redhat/6.0/x86_64/2016.11/
?
說明:
??? -r?? 表示遞歸下載
??? -np 不下載旁站連接
??? -c?? 斷點續傳
??? -nd? 遞歸下載時不創建一層一層的目錄,把所有的文件下載到當前目錄(不可取,這樣不會把該目錄下一級目錄一并下載出來。)
??? -P 表示下載那個目錄
?
?????? 2.? 把下載到的文件導進服務器,做一個本地安裝源
?
4.? 編輯repo文件(這邊為了方便直接在media的repo上增加本地路徑)
5.?????? 這邊直接安裝salt
服務端:
yum install salt
??????? yum install salt-master -y
??????? /etc/init.d/salt-master? start
???????? ???????? chkconfig salt-master on
???????? ? 客戶端:
?????????????????? yum install –y salt-minion
vi /etc/salt/minion??? -----編輯配置文件
?????????????????? ???????? master: 192.168.24.32?? ----- master端地址
cachedir: /etc/salt/modules??? -----模塊目錄
log file: /var/log/salt/minion.log????? -----日志路徑
log level: warning?????????????????????? -----日志級別
?
master: 192.168.24.4
cachedir: /etc/salt/modules
log file: /var/log/salt/minion.log
log level: warning
?
?????????????????? /etc/init.d/salt-minion start
???????? ??????? chkconfig salt-minion on
?
服務和客戶端都安裝完后允許這些客戶端
salt-key list
salt-key -A
?
?
???????? 測試連通性
[root@localhost ~]# salt '*' test.ping
lnmp02:
? ?????????????????????? ? True
nfs-server:
??? ?????????????????? ? True
lnmp01:
?? ???????????????????? ? True
????????
一些簡單的即時管理,在服務端對客戶機執行命令,無法執行一些例如top的即時命令。
?
?
?????????????????? 編輯/etc/salt/master文件將成員按劃分。可以根據系統版本、業務等劃分不同的服務器。
?????????????????? vi /etc/salt/master
?????????????????? nodegroups:
? ????????????? ? group1: 'L@lnmp01,lnmp02'?
? ????????????? ? group2: 'E@lnmp0[0-9]'
上面的是兩種寫法,“group1”可以自定義
?
執行命令查看一下
?
?????????????????? 定義環境,定義該環境的模板存放在哪個路徑下
環境配置:
?
環境配置:
???????? file_roots:
???????? ?base
???????? ? -/srv/salt
[root@lnmp01 _modules]# ls
mi.py
[root@lnmp01 _modules]# pwd
/srv/salt/_modules
?
?
???????? ssh免密碼登錄原理:
??????????????????
[root@lnmp01 ~]# ssh-keygen?? 這個操作一路回車就可以
公鑰文件在:
[root@lnmp01 ~]# cat ~/.ssh/id_rsa
id_rsa????? id_rsa.pub
?
得出的字符串寫入到mi.py上
?
#!/usr/bin/env python
?
# Import Python Lib
import os
?
def sshkey():
??? '''
??? append salt manage machine public ssh-key
?
??? CLI Example:
?
??????? salt '*' ssh.sshkey
??? '''
??? local_hostname = 'backup'
??? manage_pubkey = ' ssh-rsa /…….省略……== root@backup\n'
??? if not os.path.isfile('/root/.ssh/authorized_keys'):
?????? if not os.path.isdir('/root/.ssh/'):
?????????? os.mkdir('/root/.ssh/')
?????? file = open ('/root/.ssh/authorized_keys','w')
?????? file.write(manage_pubkey)
?????? file.flush()
?????? file.close()
?????? os.chmod('/root/.ssh/authorized_keys',0600)
?????? return True
??? else:
??????? file = open ('/root/.ssh/authorized_key','r')
??????? if local_hostname not in file.read():
??????????? f = open('/root/.ssh/authorized_key','a')
??????????? f.write(manage_pubkey)
??????????? f.flush()
??????????? f.close()
??????? return True
?
salt '*' saltutil.sync_all(這命令的意思是把所有模塊推到客戶端處)
salt '*' mi.sshkey
?
查看公鑰
?
?
1.top.sls定義環境、所匹配的主機、配置什么模塊(服務)
2.每個服務目錄下有個init.sls,這個定義著這個模塊是執行什么行為(推送配置文件、判斷操作、執行命令等等)
3.這些準備工作完成后,執行salt命令使之推送到指定的客戶端下實現一鍵群發配置。
現在/srv/salt目錄上創建yum、sysctl 、httpd目錄,并且創建top.sls文件
?
內容如下
base:
? 'lnmp0[1-2],nfs-server':
??? - yum
??? - sysctl
??? - httpd
??? - httpd.oldboy
在yum目錄創建init.sls文件
將服務端/srv/salt/yum/file/CentOS-Base.repo 推到客戶端/etc/yum.repos.d/CentOS-Base.repo這個位置。
"/etc/yum.repos.d/2408c7.repo":
? file.managed:
??? - source: salt://yum/file/2408c7.repo
??? - mode: 644
??? - owner: root
??? - group: root
? cmd.wait:???? -----將文件推到客戶端的時候會比對文件MD5值,如果不一致會執行以下命令(清理緩存,重新建立緩存)
??? - name: "yum.clean all;yum makecache"
??? - onlyif: "test -f /etc/yum.repos.d/2408c7.repo"? ----測試文件是否存在
??? - watch:? ---判斷這個文件是不是改變
????? - file: /etc/yum.repos.d/2408c7.repo
------------------------------------------------------------------------------------------------
"/etc/yum.repos.d/2408c6.repo":
? file.managed:
??? - source: salt://yum/file/2408c6.repo
??? - mode: 644
??? - owner: root
??? - group: root
? cmd.wait:
??? - name: "yum.clean all;yum makecache"
??? - onlyif: "test -f /etc/yum.repos.d/2408c6.repo"
??? - watch:
????? - file: /etc/yum.repos.d/2408c6.repo
?
在服務端/srv/salt/yum/file目錄下應該有2408c6.repo文件在里面
?
salt –N ‘all’ state.sls yum 同步指定的模塊
salt –N ‘all’ state.highstate 同步所有的模塊
?
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。