一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SaltStack自動化運維入門指南

馬哥Linux運維 ? 來源:CSDN技術(shù)社區(qū) ? 2025-04-18 10:25 ? 次閱讀

Saltstack自動化運維入門

一、saltstack簡介

1.簡單介紹

saltstack 是基于C/S架構(gòu)的服務(wù)模式,服務(wù)器端叫做Master,客戶端叫作Minion,并且有消息隊列中的發(fā)布與訂閱(pub/sub)服務(wù)模式,minion與master之間通過 ZeroMQ 消息隊列通信。Master和Minion端都以守護進程的模式運行,一直監(jiān)聽配置文件里面定義的ret_port也就是4506端口(接收minion請求)和publish_port也就是4505端口(ZMQ的發(fā)布消息)。當(dāng)minion運行時會自動連接到配置文件里面定義的Master地址ret_port端口進行連接認證。采用RSA Key方式確認身份,傳輸采用AES加密,使傳輸?shù)陌踩缘玫奖U稀?/p>

Saltstack運行模式 :

? Local

? Master/Minion

? Salt SSH

Saltstack三大功能:

? 遠程執(zhí)行(執(zhí)行遠程命令)

? 配置管理(狀態(tài)管理)

? 云管理

2.通信模式

Salt使用發(fā)布 - 訂閱模式與受管系統(tǒng)進行通信。 連接由Salt minion發(fā)起,這意味著你不需要在這些系統(tǒng)上打開任何傳入端口(從而減少攻擊向量)。 Salt master使用端口4505和4506,必須打開端口才能接收訪問連接。

7409ef28-1aa4-11f0-9310-92fbcf53809c.png

在這里插入圖片描述
Publisher (端口4505)所有Salt minions都需要建立一個持續(xù)連接到他們收聽消息的發(fā)布者端口。 命令是通過此端口異步發(fā)送給所有連接,這使命令可以在大量系統(tǒng)上同時執(zhí)行。

Request Server (端口4506)Salt minions根據(jù)需要連接到請求服務(wù)器,將結(jié)果發(fā)送給Salt master,并安全地獲取請求的文件或與特定minion相關(guān)的數(shù)據(jù)值(稱為Salt pillar)。 連接到這個端口的連接在Salt master和Salt minion之間是1:1(不是異步)。

3.salt minion認證

當(dāng)minion第一次啟動時,它會在網(wǎng)絡(luò)中搜索一個名為salt的系統(tǒng)(盡管這可以很容易地更改為IP或不同的主機名)。 當(dāng)發(fā)現(xiàn)時,minion發(fā)起握手,然后將公鑰發(fā)送給Salt master。
在初始連接之后,Salt minions的公鑰存儲在服務(wù)器上,并且必須使用salt-key命令(或通過某種自動機制)在Salt master上接受。 這可能是讓新用戶混淆的原因,因為Salt不會提供解密消息所需的安全密鑰,直到Salt minions的公鑰被接受(這意味著Salt minions在被接受其密鑰之前不會運行任何命令)。
在minion密鑰被salt master接受后,Salt主機 minion會返回其公鑰以及旋轉(zhuǎn)的AES密鑰,該密鑰用于加密和解密由Salt master發(fā)送的消息。 返回的AES密鑰使用Salt minion最初發(fā)送的公鑰進行加密,因此只能由該Salt minion解密。

二、saltstack安裝

1.下載yum源
wget -P /etc/yum.repos.d https://mirrors.aliyun.com/saltstack/yum/redhat/7.6/x86_64/saltstack-rhel7.repo

2.在master端安裝
yum -y install salt-master

3.在minion端安裝
yum -y install salt-minion

三、saltstack的配置

注意冒號后面要有空格
#hostnamectl set-hostname salt01.tianyun.com
#vim /etc/hosts

初始化配置
配置對應(yīng)的文件路徑

master端

在/etc/salt/master下添加修改
master:10.0.100.132
user: root
interface:0.0.0.0
file_roots:
 base:
  - /srv/salt
pillar_roots:
 base:
  - /srv/pillar

啟動
systemctl start salt-master





minion端

在/etc/salt/minion下添加
#這里要指向salt-master服務(wù)器,可以是IP,也可以是域名,也可以是主機名,如果用的是內(nèi)部DNS服務(wù)器的話可以用主機名或者域名的形式。
master:10.0.100.132
user: root
id: agent1
 
啟動
service salt-minion start





查看所有的密鑰

[root@master]# sudo salt-key --list-all # salt-key -L
Accepted Keys:
agent1
Denied Keys:
Unaccepted Keys:
Rejected Keys:





接受一個指定密鑰

salt-key --accept=
salt-key -a=





接受所有密鑰

salt-key --accept-all
salt-key -A -y





刪除一個指定密鑰

salt-key -d xxx





刪除所有密鑰

salt-key -D





測試常用
遠程執(zhí)行入門

[root@master]# salt '*' test.ping
agent1:
 True

# salt 'agent1' test.ping
# salt 'agent1' cmd.run 'df -h'
# salt -L 'agent2,agent3' cmd.run 'uptime' -L跟多個主機
# salt -S '192.168.122.0/24' cmd.run 'uptime'

注:
master 秘鑰對默認存儲在/etc/salt/pki/master/master.pub /etc/salt/pki/master/master.pem
master 端認證的公鑰存儲在:/etc/salt/pki/master/minions/
minion 秘鑰對默認存儲在/etc/salt/pki/minion/minion.pub /etc/salt/pki/minion/minion.pem
minion 存放的master公鑰/etc/salt/pki/minion/minion_master.pub
minion_id 默認存儲在/etc/salt/minion_id#?





7417d246-1aa4-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

salt命令詳解

salt "*" sys.list_modules  # 查看所有模塊

# salt -h
Usage: salt [options] ''[arguments]

Options(選項):
   --version : 查看saltstack軟件的版本號。
   --versions-report : 查看saltstack軟件以及依賴包的版本號。
   -h, --help : 查看幫助信息。
   --saltfile=SALTFILE:指定saltfile的路徑。 如果沒有通過,將在當(dāng)前工作目錄中搜索一個。
   -c CONFIG_DIR, --config-dir=CONFIG_DIR:指定配置文件的目錄(默認是/etc/salt/)。
   -t TIMEOUT, --timeout=TIMEOUT:指定超時時間默認是5秒。
   --hard-crash:捕捉到original異常不退出默認關(guān)閉。
   -s, --static:以組的形式返回所有minion的數(shù)據(jù)。
   -p, --progress:顯示進度圖,需要progressbar的python包。
   --failhard :在第一個執(zhí)行錯誤返回之后停止批處理。
   --async : 異步執(zhí)行。
   --subset=SUBSET : 對目標(biāo)minions的隨機子集執(zhí)行程序. minions在執(zhí)行前會先驗證是否存在該命名的函數(shù),再去執(zhí)行
   -v, --verbose : 打開命令詳細,顯示jid和活動的工作查詢
   --hide-timeout : 隱藏超時時間。
   --show-jid : 顯示任務(wù)的jid。
   -b BATCH, --batch=BATCH, --batch-size=BATC : 按照百分比執(zhí)行任務(wù)。
   -a EAUTH, --auth=EAUTH, --eauth=EAUTH, --external-auth=EAUTH : 指定外部認證方式。
   -T, --make-token : 生成master token.
   --return=RETURNER : 設(shè)置一種替代方法。 默認情況下,salt將從命令將返回數(shù)據(jù)發(fā)送回主服務(wù)器,但返回數(shù)據(jù)可以重定向到任意數(shù)量的系統(tǒng),數(shù)據(jù)庫或應(yīng)用程序。
   --return_config=RETURNER_CONF : 指定命令返回的設(shè)置文件。
   -d, --doc, --documentation : 查看指定模式或所有模塊文檔。
   --args-separator=ARGS_SEPARATOR :  指定發(fā)送命令跟命令參數(shù)的分隔符,當(dāng)用戶想把一個命令當(dāng)作參數(shù)發(fā)送給另一個命令執(zhí)行時。
   --summary : 顯示匯總信息。
   --username=USERNAME : 指定外部認證的用戶名。
   --password=PASSWORD : 指定外部認證的密碼。
   --metadata=METADATA : 將元數(shù)據(jù)傳遞給Salt,用于搜索作業(yè)。
  
  
Logging Options(日志相關(guān)參數(shù)):
   -l LOG_LEVEL, --log-level=LOG_LEVEL : 指定日志級別。
   --log-file=LOG_FILE : 指定日志記錄文件
   --log-file-level=LOG_LEVEL_LOGFILE : 日志文件日志記錄級別。'all', 'garbage', 'trace', 'debug', 'info', 'warning', 'error','critical', 'quiet'. 默認: 'warning'.


Target Options(目標(biāo)選擇選項):
*   -E, --pcre : 正則匹配
*   -L, --list: 列表匹配,目標(biāo)表達式將被解釋為以逗號分隔的列表。
*   -G, --grain: grains匹配。
   --grain-pcre :grains加正則匹配。
   -N, --nodegroup:組匹配。
   -R, --range:范圍匹配。
   -C, --compound : 綜合匹配(指定多個匹配,空格隔開)。
*   -I, --pillar : pillar值匹配。
   -J, --pillar-pcre : pillar加正則匹配。
   -S, --ipcidr : minions網(wǎng)段地址匹配。


Output Options(輸出參數(shù)):
   --out=OUTPUT, --output=OUTPUT : 使用指定的輸出器從'salt'命令打印輸出。 內(nèi)置的是 'key', 'yaml', 'overstatestage', 'newline_values_only', 'pprint', 'txt', 'raw', 'virt_query', 'compact', 'json', 'highstate', 'nested', 'quiet', 'no_return'.

   --out-indent=OUTPUT_INDENT, --output-indent=OUTPUT_INDENT :  在空格中打印由提供的值縮進的輸出。 負值禁用縮進。 僅適用于支持縮進的輸出器。

   --out-file=OUTPUT_FILE, --output-file=OUTPUT_FILE : 輸出到指定文件。

   --out-file-append, --output-file-append : 輸出附加到指定的文件。

   --no-color, --no-colour : 關(guān)閉所有的顏色顯示。

   --force-color, --force-colour : 強制輸出顏色顯示。

   --state-output=STATE_OUTPUT, --state_output=STATE_OUTPUT : 覆蓋配置的state_output值輸出,指定state格式(full, terse, mixed, changes or filter)輸出,默認值是full。


salt-key命令詳解
# salt-key -h

Actions:
  -l ARG, --list=ARG:顯示指定狀態(tài)的key(支持正則表達式)
  -L, --list-all :列出所有公鑰。"--list all"已經(jīng)棄用。
  -a ACCEPT, --accept=ACCEPT: 接受指定的公鑰(除了掛起的密鑰之外,使用--include-all匹配拒絕的密鑰),支持正則表達式。
  -A, --accept-all :接收所有等待認證的key。
  -r REJECT, --reject=REJECT :拒絕指定等待認證的key(支持正則表達式)
  -R, --reject-all:拒絕所有等待認證的key。
  --include-all: 顯示所有狀態(tài)的key。
  -p PRINT, --print=PRINT :打印指定的公鑰支持正則表達式。
  -P, --print-all:打印所有的公鑰。
  -d DELETE, --delete=DELET:刪除指定的key。
  -D, --delete-all:刪除所有的key。
  -F, --finger-all:顯示所有key的指紋信息。









查找模塊
salt'*'-d|grep":"|grep disk

查找某個模塊擁有的方法
salt'agent1'sys.list_functions test





四、配置管理入門實踐

master端和minion端配置好后 ,

文件管理

[root@master ~]# mkdir /srv/{salt,pillar}
[root@master ~]# cd /srv/salt
[root@master salt]# vim host_file.sls
/etc/hosts:
 file.managed:
  - source: salt://files/hosts
  - user: root
  - group: root
  - mode:644
[root@master salt]# mkdir files
[root@master salt]# cd files/
[root@master files]# cp /etc/hosts .
[root@master files]# pwd
/srv/salt/files
[root@master files]# cd ..
[root@master salt]# pwd
/srv/salt
[root@master salt]# ls
files host_file.sls
[root@master salt]# salt '*' state.sls host_file
agent1:
----------
     ID: /etc/hosts
  Function: file.managed
   Result:True
  Comment: File /etc/hostsisinthe correct state
  Started:18:15:50.497755
  Duration:68.637ms
  Changes: 

Summaryforagent1
------------
Succeeded:1
Failed:  0
------------
Total states run:  1
Total run time: 68.637ms
 
 
用name的方式
[root@master salt]# vim host_file.sls
file_test:
 file.managed:
  - name: /etc/hosts
  - source: salt://test/123.txt
  - user: root
  - group: root
  - mode:644









7433c47e-1aa4-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

拷貝文件

# salt-cp '*' /etc/hosts /root





安裝nginx

pkg是模塊,installed是方法,-names是參數(shù)。 相當(dāng)于 yum install nginx。 require是依賴關(guān)系

[root@master salt]# pwd
/srv/salt
[root@master salt]# vim nginx_install.sls
nginx-install:
 pkg.installed:
  - names:
   - nginx

/etc/hosts:
 file.managed:
  - source: salt://files/hosts
  - user: root
  - group: root
  - mode:644
  - require:
   - pkg: nginx-install
 service.running:
  - names:
   - nginx
[root@master salt]# salt '*' state.sls nginx_install









7446b70a-1aa4-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

安裝apache

[root@master salt]# vim apache.sls
apache-service:
 pkg.installed:
  - names:
   - httpd
   - mod_ssl
 service.running:
  - name: httpd
  - enable:True
[root@master salt]# vim top.sls
base:
'*':
  - apache
[root@master salt]# salt '*' state.highstate
salt'*'state.highstate test=True表示狀態(tài)的同步,test=True表示測試成功與否
apache沒安裝就安裝,安裝過的就不用









計劃任務(wù)

minute hour daymonth month dayweek
[root@master ~]# cd /srv/salt/
[root@master salt]# vim crontab.sls
/usr/sbin/ntpdate time.aliyun.com >> /dev/null:
 cron.present:
  - user: root
  - minute:'*/5'
[root@master salt]# salt '*' cron.list_tab root

客戶機查看
[root@localhost ~]# crontab -l
# Lines below here are managed by Salt, do not edit
# SALT_CRON_IDENTIFIER:/usr/sbin/ntpdate time.aliyun.com >> /dev/null
*/5* * * * /usr/sbin/ntpdate time.aliyun.com >> /dev/null





745ff544-1aa4-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

7473f1de-1aa4-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

5分鐘修改為3分鐘,然后再執(zhí)行一遍
[root@master salt]# vim crontab.sls
/usr/sbin/ntpdate time.aliyun.com >> /dev/null:
 cron.present:
  - user: root
  - minute:'*/3'
[root@master salt]# salt '*' state.sls crontab


刪除cron
[root@master salt]# vim del_cron.sls
/usr/sbin/ntpdate times.aliyun.com >> /dev/null:
 cron.absent:
  - name: /usr/sbin/ntpdate times.aliyun.com >> /dev/null
[root@master salt]# salt '*' state.sls del_cron





saltstack的state.sls和state.highstate之區(qū)別

state.sls默認的運行環(huán)境是base環(huán)境,但是它并不讀取top.sls(top.sls定義了運行環(huán)境以及需要運行的sls)。關(guān)于state.sls的官方文檔說明如下:

salt.modules.state.sls(mods, saltenv='base', test=None, exclude=None, queue=False, env=None,**kwargs)





這里saltenv指的是運行環(huán)境,默認是base環(huán)境。

state.highstate: 這個是全局的所有環(huán)境,以及所有狀態(tài)都生效。它會讀取每一個環(huán)境的top.sls,并且對所有sls都生效。

五、正則匹配主機

https://www.cnblogs.com/wangyajian/p/11572572.html

Grains:https://www.cnblogs.com/wangyajian/p/11586990.html
pliiar:https://www.cnblogs.com/wangyajian/p/11586998.html
state模塊:https://www.cnblogs.com/wangyajian/p/11633678.html
state安裝nginx:https://www.cnblogs.com/wangyajian/p/11633828.html
highstate:https://www.cnblogs.com/wangyajian/p/11663089.html
salt-key:https://www.cnblogs.com/hanson666/articles/7105197.html





六、數(shù)據(jù)系統(tǒng)Grains(客戶端)

Minion收集信息,Master用于并匹配Target Minion端設(shè)置,提供給Master端

==========客戶端自身收集的身份信息==========
Grains里面收集了minion啟動時候的所有系統(tǒng)信息,存儲在minion端。

[root@master ~]# salt '*' grains.ls 列出所有item
[root@master ~]# salt '*' grains.items 獲取所有item值
[root@master ~]# salt '*' grains.item os_family
[root@master ~]# salt '*' grains.item osrelease
[root@master ~]# salt -G 'osrelease:7.8.2003' test.ping
[root@master ~]# salt '*' grains.item ipv4
[root@master ~]# salt '*' grains.item ip4_interfaces





748d51ce-1aa4-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

自定義Grains
方法一:vim /etc/salt/minion

服務(wù)器機柜位置
[root@agent ~]# vim /etc/salt/minion
grains:
 roles:
  - webserver
  - dbserver
 deployment: datacenter1
 cabinet:13
 cab_u:14-15
roles是key,value有webserver和dbserver,數(shù)據(jù)中心一
[root@agent ~]# systemctl restart salt-minion





749aedb6-1aa4-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

七、數(shù)據(jù)系統(tǒng)Pillar(服務(wù)端)

Master端設(shè)置,提供給Minion端

Pillar在SaltStack中主要作用是存儲和定義配置管理中需要的一些數(shù)據(jù),比如軟件版本號、用戶名密碼等信息,它的存儲格式跟Grains類似,都是YAML格式。

[root@master ~]# vim /etc/salt/master
pillar_roots:
 base:
  - /srv/pillar
[root@master ~]# mkdir /srv/pillar
[root@master pillar]# vim env_salt01.sls
roles:
 - webserver
 - dbserver
deployment: datacenter1
cabinet:13
cab_u:14-15
[root@master pillar]# vim top.sls
base:
'*':
  - env_salt01
[root@master pillar]# salt '*' saltutil.refresh_pillar
[root@master pillar]# salt -I 'roles:webserver' cmd.run 'uptime'
[root@master pillar]# salt --pillar 'roles:webserver' cmd.run 'uptime'









74b196ce-1aa4-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

八、遠程執(zhí)行Targeting

和Minion_ID相關(guān):

? Globbing(通配符)

? Regex(正則表達式)

? List(列表)

和Minion_ID無關(guān):

? Subnet/IP

? Grains

? Pillar

? Compound matchers(復(fù)合匹配)

? Node groups(節(jié)點組)

# salt 'salt01.tianyun.com' test.ping
# salt 'salt01*' test.ping
正則:
*表0到多次
?表0到1次
[]表任意一個字符
[!]

# salt -L 'salt01,salt02' cmd.run 'uptime' 列表-L跟多個主機
不支持的寫法:# salt -L 'salt01.tianyun.com,salt03*' test.ping
# salt -E 'salt0[^14].tianyun.com' test.ping 正則表示非01 04
# salt -S '10.0.100.0/24' test.ping 子網(wǎng)
# salt -G 'os:Centos' cmd.run 'uptime' 系統(tǒng)自帶Grains
# salt -I 'Zabbix_Server' test.ping Pillar

Minion端修改ID:vim /etc/salt/minion_id









SLS文件中使用正則,注意matchpcre:
# cat /srv/salt/top.sls
base:
'saltstack0[^23].tianyun.com':
  -match: pcre
  - apache

SLS文件中使用Grains
base:
'os:CentOS':
  -match: grain
  - apache





復(fù)合匹配

復(fù)合匹配
# salt -C ‘I@or/and'
# salt -C 'I@roles:dbserver and I@delpoyment:datacenter1 and G@os:Centos and S@10.0.100.0/24 or E@salt0[13].tianyun.com' cmd.run 'uptime'

[root@master ~]# vim /etc/salt/master
nodegroups:
 webs:'I@roles:dbserver and I@delpoyment:datacenter1 and G@os:Centos and S@10.0.100.0/24 or E@salt0[13].tianyun.com'
[root@master ~]# salt -N 'webs' test.ping





九、配置管理States

States是SaltStack系統(tǒng)中的配置語言,在日常運維中需要編寫大量的States文件,例如需要創(chuàng)建一個用戶、安裝一個軟件包、之后管理相應(yīng)的配置文件,最后確保服務(wù)能正常運行。
則需要編寫一些States SLS文件,即狀態(tài)配置文件去描述和實現(xiàn)相應(yīng)的功能。States SLS主使用YAML語言,也可以支持使用Python語言編寫。

[root@master ~]# vim /etc/salt/master
file_roots:
 base:
  - /srv/salt/
 dev:
  - /srv/salt/dev/services
  - /srv/salt/dev/states
 test:
  - /srv/salt/test
 prod:
  - /srv/salt/prod/services
  - /srv/salt/prod/states
[root@master ~]# systemctl restart salt-master
[root@master ~]# cd /srv/salt/
[root@master salt]# pwd
/etc/salt
[root@master salt]# mkdir dev test prod
base基礎(chǔ)環(huán)境,所有機器都需要的配置
yum、dns、kernel參數(shù)、zabbix agent


[root@master salt]# mkdir -p init/files
[root@master salt]# vim init/files/resolv.conf
nameserver8.8.8.8
nameserver114.114.114.114
[root@master salt]# cd init/
[root@master init]# pwd
/srv/salt/init
[root@master init]# ls
files


[root@master init]# vim dns.sls
/etc/resolv.conf:
 file.managed:
  - source: salt://init/files/resolv.conf
/etc/resolv.conf 是minion目標(biāo)文件.如果下面配了name就不一樣
source: salt:// 表示salt的base環(huán)境
   
[root@master init]# salt '*' state.sls init.dns env=base 
注意這里是init.dns,直接放在/srv/salt/xx.sls 這樣就不用加init?,F(xiàn)在是放在了/srv/salt/init/xx.sls
默認也是env=base









74c492b0-1aa4-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

針對所有主機:

[root@master salt]# pwd
/srv/salt
[root@master salt]# vim top.sls
base:
'*':
  - init.dns
[root@master salt]# salt '*' state.highstate # 基于top.sls





74db4190-1aa4-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

十、配置管理LAMP部署env=dev

1.準(zhǔn)備模板文件

yum -y install httpd php php-mysql php-gd gd mariadb-server
cp -rf /etc/httpd/conf/httpd.conf /srv/salt/dev/files/
cp -rf /etc/my.cnf /srv/salt/dev/files/

[root@master ~]# vim /etc/salt/master
file_roots:
 base:
  - /srv/salt/
 dev:
  - /srv/salt/dev/
[root@master dev]# systemctl restart salt-master

[root@master salt]# cd dev/
[root@master dev]# ls
[root@master dev]# mkdir files
[root@master dev]# pwd
/srv/salt/dev
[root@master dev]# cp -rf /etc/httpd/conf/httpd.conf /srv/salt/dev/files/
[root@master dev]# cp -rf /etc/my.cnf /srv/salt/dev/files/
[root@master dev]# vim lamp.sls
lamp-pkg-install:
 pkg.installed:
  - names:
   - httpd
   - php
   - php-mysql
   - php-gd
   - gd
   - mariadb-server

httpd-files:
 file.managed:
  - name: /etc/httpd/conf/httpd.conf
  - source: salt://files/httpd.conf

httpd-service:
 service.running:
  - name: httpd
  - enable:True

mysql-files:
 file.managed:
  - name: /etc/my.cnf
  - source: salt://files/my.cnf

mysql-service:
 service.running:
  - name: mariadb
  - enable:True
[root@master ~]# salt '*' state.sls lamp saltenv=dev


[root@master ~]# vim /srv/salt/top.sls
base:
'*':
  - init.dns

dev:
'*':
  - lamp
[root@master ~]# salt '*' state.highstate

若想狀態(tài)觸發(fā),自動重啟,需要用到require









十一、配置管理狀態(tài)關(guān)系

unless

? 主要用于cmd狀態(tài)模塊,僅當(dāng)unless選項指向的命令

? 返回false時才執(zhí)行name指向的命令,test -d /usr/local/nginx

re

?require 我依賴某個狀態(tài) 我依賴誰

? require_in 我被某個狀態(tài)依賴 誰依賴我

wa

?watch 我關(guān)注某個狀態(tài)【監(jiān)控】當(dāng)狀態(tài)發(fā)生改變,例如我關(guān)注的狀態(tài)發(fā)生改變,restart

? watch_in 我被某個狀態(tài)關(guān)注

require

require:
 模塊名:ID





[root@master dev]# cat /srv/salt/dev/lamp.sls
dep-install:
 pkg.installed:
  - names:
   - php

httpd-install:
 pkg.installed:
  - name: httpd
  - require:
   - pkg: dep-install
 
 
httpd-files:
 file.managed:
  - name: /etc/httpd/conf/httpd.conf
  - source: salt://files/httpd.conf
  - require:
   - pkg: httpd-install

httpd-service:
 service.running:
  - name: httpd
  - enable:True
  - require:
   - file: httpd-files
   
mysql-files:
 file.managed:
  - name: /etc/my.cnf
  - source: salt://files/my.cnf









watch

[root@master dev]# cat /srv/salt/dev/lamp.sls
dep-install:
 pkg.installed:
  - names:
   - php

httpd-install:
 pkg.installed:
  - name: httpd
  - require:
   - pkg: dep-install
 
 
httpd-files:
 file.managed:
  - name: /etc/httpd/conf/httpd.conf
  - source: salt://files/httpd.conf
  - require:
   - pkg: httpd-install

httpd-service:
 service.running:
  - name: httpd
  - enable:True
  - require:
   - file: httpd-files
  - reload:True# 可選,如果PID不變,選擇reload。默認沒這個的話,只有watch就是restart
  - watch:
   - file: httpd-files 只要httpd-files發(fā)生變化就變化,改端口,啟動變化也會改
   
mysql-files:
 file.managed:
  - name: /etc/my.cnf
  - source: salt://files/my.cnf
     
[root@master dev]# salt '*' state.sls lamp saltenv=dev









關(guān)系,watch_in 與 require_in
watch,reload都寫在服務(wù)那
watch_in,如果是寫在文件那。 則在服務(wù)寫reload

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 自動化
    +關(guān)注

    關(guān)注

    29

    文章

    5725

    瀏覽量

    81230
  • 端口
    +關(guān)注

    關(guān)注

    4

    文章

    1006

    瀏覽量

    32640
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    722

    瀏覽量

    22631

原文標(biāo)題:比Ansible更高效?SaltStack自動化運維快速入門指南

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    誠聘高級自動化工程師

    獵頭職位:高級自動化工程師【合肥】工作職責(zé): 1、根據(jù)基礎(chǔ)架構(gòu)管理需求,規(guī)劃設(shè)計
    發(fā)表于 12-12 10:37

    銳捷助互聯(lián)網(wǎng)數(shù)據(jù)中心網(wǎng)絡(luò)自動化、可視

    吉朋表示,集中在網(wǎng)絡(luò)虛擬,以及自動化、可視上。當(dāng)前,互聯(lián)網(wǎng)業(yè)務(wù)快速發(fā)展,服務(wù)器數(shù)量激增,要求基礎(chǔ)網(wǎng)絡(luò)快速交付,支撐業(yè)務(wù)快速上線,同時
    發(fā)表于 01-25 09:42

    ansible-first-book 自動化工具

    ansible-first-book 自動化工具
    發(fā)表于 09-08 09:31 ?5次下載

    配電自動化實用指標(biāo)研究

    根據(jù)《配電自動化實用化驗收細則》中對配電自動化考核要求,重點圍繞終端在線率、遙信動作正確率、遙控使用率與遙控成功率四項指標(biāo)進行考核。目前對配電
    發(fā)表于 03-05 14:55 ?0次下載

    什么是標(biāo)準(zhǔn)和流程呢?工作梳理

    其他崗位,工作直面生產(chǎn)環(huán)境,每一步操作與生產(chǎn)系統(tǒng)能否正常運行息息相關(guān),稍有不慎就易產(chǎn)生生產(chǎn)事故。并且
    的頭像 發(fā)表于 05-01 17:31 ?1.8w次閱讀
    什么是<b class='flag-5'>運</b><b class='flag-5'>維</b>標(biāo)準(zhǔn)<b class='flag-5'>化</b>和流程<b class='flag-5'>化</b>呢?<b class='flag-5'>運</b><b class='flag-5'>維</b>工作梳理

    厲害了!山東電力自動化平臺正式投

    日前,國網(wǎng)山東省電力集團公司通過了山東信息通信技術(shù)監(jiān)督裝備及支撐工具開發(fā)實施項目的驗收,代表著自動化平臺正式投
    發(fā)表于 04-30 11:18 ?4557次閱讀

    如何區(qū)分Puppet,Ansible,Saltstack的作用特點?

    目前主流的自動化工具有puppet、ansible、saltstack,實際上每一個工具都基本上能夠完成你的
    的頭像 發(fā)表于 08-05 09:00 ?5024次閱讀

    網(wǎng)絡(luò)自動化的全面普及勢必會減少網(wǎng)絡(luò)人工作業(yè)

    5G時代對于通信工程師而言,網(wǎng)絡(luò)自動化的全面普及勢必會減少網(wǎng)絡(luò)人工作業(yè),淘汰大量傳統(tǒng)通信工程師;隨著SDN/NFV/容器編排等技術(shù)的
    的頭像 發(fā)表于 04-29 15:54 ?5679次閱讀
    網(wǎng)絡(luò)<b class='flag-5'>自動化</b><b class='flag-5'>運</b><b class='flag-5'>維</b>的全面普及勢必會減少網(wǎng)絡(luò)<b class='flag-5'>運</b><b class='flag-5'>維</b>人工作業(yè)

    Ansible企業(yè)級自動化探索的詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是Ansible企業(yè)級自動化探索的詳細資料說明主要內(nèi)容包括了:場景一:自動化
    發(fā)表于 06-03 08:00 ?2次下載
    Ansible企業(yè)級<b class='flag-5'>自動化</b><b class='flag-5'>運</b><b class='flag-5'>維</b>探索的詳細資料說明

    城域網(wǎng)自動化實現(xiàn)的關(guān)鍵點、難點和解決方案研究

      針對城域網(wǎng)自動化水平較低、人工成本高且無法擺脫重復(fù)勞動的現(xiàn)狀,本文探討了當(dāng)前城域網(wǎng)自動化
    發(fā)表于 10-28 09:09 ?2796次閱讀
    城域網(wǎng)<b class='flag-5'>自動化</b><b class='flag-5'>運</b><b class='flag-5'>維</b>實現(xiàn)的關(guān)鍵點、難點和解決方案研究

    城域網(wǎng)是什么,其生命周期和自動化應(yīng)用有哪些特點

    Labs 摘? 要針對城域網(wǎng)自動化水平較低、人工成本高且無法擺脫重復(fù)勞動的現(xiàn)狀,本文探討了當(dāng)前城域網(wǎng)
    的頭像 發(fā)表于 12-25 14:24 ?1283次閱讀

    使用Python腳本實現(xiàn)自動化任務(wù)

    許多運工程師會使用 Python 腳本來自動化任務(wù)。Python 是一種流行的編程語言,具有豐富的第三方庫和強大的自動化能力,適用于許
    的頭像 發(fā)表于 04-08 10:36 ?1895次閱讀

    網(wǎng)絡(luò)設(shè)備自動化工具—ansible入門筆記介紹

    Ansible是一款自動化工具,基于Python開發(fā),集合了眾多運工具 (Puppet、CFengine、Chef、SaltStack
    的頭像 發(fā)表于 01-15 13:46 ?2501次閱讀
    網(wǎng)絡(luò)設(shè)備<b class='flag-5'>自動化</b><b class='flag-5'>運</b><b class='flag-5'>維</b>工具—ansible<b class='flag-5'>入門</b>筆記介紹

    自動化智能維系統(tǒng)在高鐵牽引變電所的研究與應(yīng)用

    自動化智能維系統(tǒng)在高鐵牽引變電所的研究與應(yīng)用 張穎姣 安科瑞電氣股份有限公司 上海嘉定 201801 摘要: 目前,高鐵牽引變電所綜合自動化系統(tǒng)
    的頭像 發(fā)表于 04-16 16:21 ?915次閱讀
    <b class='flag-5'>自動化</b>智能<b class='flag-5'>運</b>維系統(tǒng)在高鐵牽引變電所的研究與應(yīng)用

    IT自動化工具Ansible基礎(chǔ)入門

    Ansible是幫助人員實現(xiàn)自動化的最重要的工具之一。
    的頭像 發(fā)表于 02-07 10:00 ?412次閱讀
    IT<b class='flag-5'>自動化</b>工具Ansible基礎(chǔ)<b class='flag-5'>入門</b>