Saltstack學(xué)習(xí)筆記——states篇(上)

Salt使用PyAMl語法(http://pyyaml.org) 作為它的模板文件的格式,但是其他很多模板語言在Salt中是可以使用的苫幢。一定要按照正確的格式書寫YAML,比如它使用到兩個空格代替tab歇僧。如果YAML文件出現(xiàn)不可預(yù)知的錯誤图张,你可以使用一個在線的debug工具(http://yaml-online-parser.appspot.com )。

1.啟動配置管理

在啟動配置管理功能之前诈悍,你需要再一次編輯你的master配置文件祸轮,在/etc/salt下。打開master配置文件侥钳,找到file_roots行适袜,缺省配置文件中,這一行在第156行∠隙幔現(xiàn)在苦酱,取消注釋即刪除#號,配置如下:

file_roots:
  base:
    - /srv/salt

這樣子就可以告訴Salt你的配置管理文件在哪里给猾。根據(jù)你是如何安裝Salt疫萤,有時你需要自己創(chuàng)建/srv/salt目錄

2.創(chuàng)建Top文件/Roadmap

基礎(chǔ)配置文件也叫做Top文件,在/srv/salt目錄下敢伸。我們來創(chuàng)建這個文件扯饶。這個文件提供了其它文件的映射〕鼐保可以用于作為其它服務(wù)器的基礎(chǔ)配置文件尾序。在/srv/salt目錄創(chuàng)建一個top.sls文件。你可以把它作為指向不同目錄的路線圖躯砰。在top.sls中加入以下內(nèi)容:

base:
  '*':
    - webserver

這個top.sls文件是用來分隔環(huán)境的蹲诀。默認(rèn)環(huán)境是base,在base的環(huán)境集合定義了對minions的匹配弃揽,可以使用簡單的*來指定所有的主機(jī)脯爪。

你也可以指定minions
salt可以通過glob则北、pcre正則表達(dá)式,或者通過grains來進(jìn)行匹配任何的目標(biāo)機(jī)器痕慢,例如:

base:
  '192.168.181.17':
    - match: grain
    - webserver

在top.sls相同的目錄下尚揣,創(chuàng)建一個名為webserver.sls的空文件,內(nèi)容如下:

httpd:                # ID的聲明
  pkg:               # state類型的聲明
    - installed       # state中的函數(shù)聲明

第1行掖举,是對全局ID的聲明快骗,可以是任意的標(biāo)識符,本例是需要被安裝的軟件包的包名塔次。

以Apache HTTP server為例方篮,在基于apatitude的包管理中叫做apache2,而在基于yum的包管理中叫做httpd励负。確保針對包管理工具使用正確的名字藕溅。也可以使用Salt的grains進(jìn)行包管理

第2和第3行告訴Salt如何處理這個包,本例是安裝這個包。要刪除一個包继榆,你只需要修改'- installed'為'-removed'即可巾表。

記住,空格很重要略吨!第二行'pkg:'前有兩個空格集币,第三行'-
installed'前有四個空格。如果遇到任何錯誤翠忠,請通過在線YAML解析器檢查語法鞠苟。

接下來運行我們創(chuàng)建的state,在master上打開一個終端并且運行一下命令:

salt '*' state.highstate

片刻后,從服務(wù)會反饋像如下成功的信息:

192.168.181.17:
----------
      ID: httpd
Function: pkg.installed
  Result: True
 Comment: The following packages were installed/updated: httpd.
 Started: 22:37:19.968357
Duration: 16922.03 ms
 Changes:   
          ----------
          apr-util-ldap:
              ----------
              new:
                  1.3.9-3.el6_0.1
              old:
                  
          httpd:
              ----------
              new:
                  2.2.15-39.el6.centos
              old:
                  
          httpd-tools:
              ----------
              new:
                  2.2.15-39.el6.centos
              old:
                  
          mailcap:
              ----------
              new:
                  2.1.31-2.el6
              old:
Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1

master將會指導(dǎo)所有的目標(biāo)minions運行state.highstate秽之。
當(dāng)minion執(zhí)行highstate偶妖,它將會下載top文件中匹配的內(nèi)容,minion將表達(dá)式中匹配的內(nèi)容下載政溃、編譯、執(zhí)行态秧。
一旦完成董虱,minion將返回所有的動作執(zhí)行結(jié)果和所有更改。

接下來我們來回顧下之前配置好的top.sls:

base:
  '192.168.181.17':
    - match: grain
    - webserver

這個例子中申鱼,webserver.sls文件可以簡單的寫作webserver愤诱。這個sls文件名稱空間遵循一些簡單的規(guī)則:

  1. 這個.sls可以被省略,例如webserver.sls可以被稱謂webserver
  2. 子目錄可以更好的組織
    a. 每個子目錄都代表一個點
    b. webserver/dev.sls可以寫作webserver.dev
  3. 在子目錄的存在一個名為init.sls文件捐友,所以webserver/init.sls也可以簡寫為webserver
  4. 如果webserver.sls和webserver/init.sls同時存在淫半,那么webserver/init.sls將會被忽略,并且webserver.sls將會被成為webserver

3.Troubleshooting

如果輸出的內(nèi)容不是你所預(yù)期的匣砖,以下的建議可以幫助你縮小問題科吭。

啟用日志記錄
當(dāng)你啟用日志的debug模式昏滴,salt輸出的信息將會很全

salt-minion -l debug

前臺運行minion
不使用daemon模式(-d)啟動minion,可以從輸出看到其工作的任何細(xì)節(jié)

salt-minion &

增加salt運行的默認(rèn)超時時間,例如对人,修改默認(rèn)超時時間為60s:

salt -t 60

為了更好的達(dá)到這三個效果:

# 在minion上運行
salt-minion -l debug & 
# 在master上運行
salt '*' state.highstate -t 60 

使用測試模式:

salt '*' state.highstate -t 60 test=True
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谣殊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子牺弄,更是在濱河造成了極大的恐慌姻几,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件势告,死亡現(xiàn)場離奇詭異蛇捌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)咱台,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門络拌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吵护,你說我怎么就攤上這事盒音。” “怎么了馅而?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵祥诽,是天一觀的道長。 經(jīng)常有香客問我瓮恭,道長雄坪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任屯蹦,我火速辦了婚禮维哈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘登澜。我一直安慰自己阔挠,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布脑蠕。 她就那樣靜靜地躺著购撼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谴仙。 梳的紋絲不亂的頭發(fā)上迂求,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機(jī)與錄音晃跺,去河邊找鬼揩局。 笑死,一個胖子當(dāng)著我的面吹牛掀虎,可吹牛的內(nèi)容都是我干的凌盯。 我是一名探鬼主播付枫,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼十气!你這毒婦竟也來了励背?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤砸西,失蹤者是張志新(化名)和其女友劉穎叶眉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芹枷,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡衅疙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鸳慈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饱溢。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖走芋,靈堂內(nèi)的尸體忽然破棺而出绩郎,到底是詐尸還是另有隱情,我是刑警寧澤翁逞,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布肋杖,位于F島的核電站,受9級特大地震影響挖函,放射性物質(zhì)發(fā)生泄漏状植。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一怨喘、第九天 我趴在偏房一處隱蔽的房頂上張望津畸。 院中可真熱鬧,春花似錦必怜、人聲如沸肉拓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽暖途。三九已至,卻和暖如春靠益,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背残揉。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工胧后, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抱环。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓壳快,卻偏偏與公主長得像纸巷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子眶痰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容