关于Staltstack
saltstate服務搭建:
cat /etc/hosts(master和minion都添加)
127.0.0.1 ? localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 ? ? ? ? localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.201 ? kvm2
192.168.1.202 ? kvm3
?
?
salt-master端執行
====================================================
#換阿里源:
wget https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
yum -y install epel-release-latest-7.noarch.rpm
?
#master端安裝salt-master和salt-minion
yum -y install salt-master salt-minion
#設置master
sed -i "s/^#interface: 0.0.0.0/interface: `ip a|grep "/24"|awk -F '/' '{print $1}'|awk -F ' ' '{print $2}'`/" /etc/salt/master
sed -i "/interface:/a\id: `ip a|grep "/24"|awk -F '/' '{print $1}'|awk -F ' ' '{print $2}'`" /etc/salt/master
sed -i "s/^#file_roots/file_roots/" /etc/salt/master
sed -i "s/^#? base/? base/" /etc/salt/master? ? #這一步可能會有另一個一模一樣的也會打開,請注意
sed -i "s/#? ? - \/srv\/salt/? ? - \/srv\/salt/" /etc/salt/master
sed -i "s/^#auto_accept: False/auto_accept: True/" /etc/salt/master
sed -i "s/^#publish_port/publish_port/" /etc/salt/master
sed -i "s/#ret_port/ret_port/" /etc/salt/master
?
#啟動master
systemctl start salt-master
#設置開機自啟動
chkconfig salt-master on
?
#設置minion
cat /etc/salt/minion|grep -v ^#|grep -v ^$
master: 192.168.1.201
id: 192.168.1.201
?
#啟動minion
systemctl start salt-minion
#設置開機自啟動
chkconfig salt-minion on
?
?
============================================================
?
?
#minion端安裝minion
wget https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
yum -y install epel-release-latest-7.noarch.rpm
yum -y install salt-minion
?
#設置minion端minion的配置文件
cat /etc/salt/minion|grep -v ^#|grep -v ^$
master: 192.168.1.201
id: 192.168.1.202
?
systemctl start salt-minion
systemctl enable salt-minion
?
?
******************************************************
如果此時刪除了/etc/salt/pki/master目錄下的所有
或者刪除了/etc/salt/pki/minion目錄下的所有
那么客戶端和服務器的salt-master和salt-minion都需要重啟
******************************************************
?
?
#salt-master端操作
[root@kvm2 master]# pwd
/etc/salt/pki/master
[root@kvm2 master]# salt-key -L ? (-L:列表 -D:刪除所有 -d:刪除選中的 -A:同意所有 -a 192*)
Accepted Keys:
192.168.1.201 ? ? ? ? ? #重點
192.168.1.202 ? ? ? ? ? #重點
Denied Keys:
Unaccepted Keys:
Rejected Keys:
?
[root@kvm2 master]# tree
.
├── master.pem
├── master.pub
├── minions
├── minions_autosign
├── minions_denied
├── minions_pre
│?? ├── 192.168.1.201
│?? └── 192.168.1.202
└── minions_rejected
?
?
[root@kvm2 master]# salt-key -A
?
?
?
?
測試:
**********************************************
解決:
登錄到192.168.1.202上,并執行rm -rf /etc/salt/pki/minion/minion_master.pub
再重啟下:systemctl restart salt-minion
說明:
minion端拿到的key與master端的不符,驗證無法通過。
解決方法是刪除minion端的key,再重新與master進行連接和認證
?
master端再全部接收一次salt-key -A 并 重啟salt-master和salt-minion
**********************************************
?
?
注:打開上面配置文件中的選項
mkdir /srv/salt
systemctl restart salt-master
?
?
#寫一個安裝httpd的服務
cd /srv/salt/
vim apache.sls? ? ? ? ? (下行比上行多2個空格)
apache-install: ? ? ? ? (標題,可自定義)
? pkg.installed:? ? ? ? (pkg模塊的installed方法,重點)
? ? - names:? ? ? ? ? ? (通過names告訴installed要裝什么)
? ? ? - httpd
? ? ? - httpd-devel
?
apache-service: ? ? ? ? (標題,可自定義)
? service.running:? ? ? (service模塊的running方法)
? ? - name: httpd
? ? - enable: True (開機自啟)
? ? - reload: True? ? ? ?
?
注:第2行是使用pkg函數的installed的方法
上圖中第4和5行都是names的參數傳遞的包的名稱?
?
?
? ***************? ?中間省略一部分 *******************
?
?
salt '*' cmd.run 'yum -y install net-tools'
salt '*' cmd.run 'ip a'
?
?
?
?
高級狀態: 官網介紹
cd /srv/salt
vim top.sls? ? ?#文件必須放在base環境下
base:
? '192.168*':
? ? - apache
?
?
[root@kvm2 salt]#?salt '*' state.highstate
?
[root@kvm2 salt]#?salt '*' grains.ls
?
?
?
[root@kvm2 salt]#?salt '*' grains.items? ? ?
#把所有grains的內容顯示出來,也可以是單臺機器的?salt '192.168.1.202' grains.items
#顯示的內容中包括cpu標志位、base的版本、base的時間、cpu型號、cpu架構、域名、fqdn名、硬件信息等?
?
?
?
?
?
部分命令:
salt-key -a <key-name> ? #接受某個minion-key
salt-key -d <key-name> ? #刪除某個minion-key
salt-key -A? ? ? ? ? ? ? #接受所有的minion-key
salt-key -D? ? ? ? ? ? ? #刪除所有的minion-key
?
?
顯示磁盤使用情況
salt '*' disk.usage
salt 'minion*' disk.usage
列出網絡接口
salt '*' network.interfaces
安裝包
salt '*' pkg.install <命令參數>
目標可以使用Grains系統基于Salt minion系統信息:
salt -G 'os:Ubuntu' test.ping
可以通過正則表達式過濾目標
salt -E 'minion[0-9]' test.ping
可以在列表中明確指定目標
salt -L 'minion1,minion2' test.ping
?
?
Salt命令使用通用結構執行:
salt '*' pkg.install 'tree'
說明:
*:目標
pkg:模塊
install:方法
tree: 參數
目標.方法:?這就是你如何利用Salt的真正力量。命令由模塊和功能組成,Salt帶有內置模塊,用于安裝軟件,復制文件,檢查服務以及您想要自動執行的大多數其他任務。
參數:提供您正在調用的函數所需的任何額外數據。例如,pkg.install函數想知道您要安裝哪些軟件包。你用一個參數告訴它。
?
文件:
您可以將模塊或函數名稱傳遞給sys.doc執行模塊,以直接從命令行獲取有關任何模塊的詳細信息。該列表基于目標進行過濾。
相當于CentOS中的man --help這些參數
比如:
salt '*' sys.doc
salt '*' sys.doc pkg
salt '*' sys.doc pkg.install
?
?
?
?
?
向主機的hosts文件中添加條目
vim opop.sls
myserver in hosts file:
? host.present:
? ? - name: myserver? ? ? ? ?#要添加的主機名
? ? - ip: 192.168.1.202 #要添加的IP
?
執行:
salt '192.168.1.202' state.sls opop
?
?
?
?
執行調用功能
vim opop.sls
restart vsftpd:?
? module.run:
? ? - name: service.restart
? ? - m_name: vsftpd? ? ? #m_name作為“名稱”傳遞給執行模塊
?
salt '*' state.sls opop
?
?
?
?
?
?
參考? ? ? ? ? ? ? ? ?官網參考? ? ? ? ? ? ? ? ?官網模塊介紹
?
?
posted on 2019-06-25 16:16? smile-you-me 閱讀( ...) 評論( ...) 編輯 收藏轉載于:https://www.cnblogs.com/smlile-you-me/p/11083469.html
總結
以上是生活随笔為你收集整理的关于Staltstack的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《AI极简经济学》书中的精髓:人工智能的
- 下一篇: 10份2020宠物市场行业报告