最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Saltstack快速入門簡單匯總

 更新時間:2016年03月01日 14:34:29   作者:youerning  
saltstack是使用python編寫的開源自動化部署與管理工具,擁有良好的擴展性以及優(yōu)秀的執(zhí)行效率,配置簡單,可以工作在多平臺上,經(jīng)常被描述為 Func加強版+Puppet精簡版

saltstack是使用python編寫的開源自動化部署與管理工具,擁有良好的擴展性以及優(yōu)秀的執(zhí)行效率,配置簡單,可以工作在多平臺上,經(jīng)常被描述為 Func加強版+Puppet精簡版。

saltsatck優(yōu)點:首先,速度快,基于消息隊列+線程,跑完多臺設(shè)備,都是毫秒級別的;其次,非常靈活,源碼是python,方便理解和自定義模塊;最后,命令簡單,功能強大。

前言:在很久以前,只有幾臺主機的時候當然不需要什么自動糊工具,但是隨著硬件成本越來越低廉的今天,隨隨便便就好幾十臺服務(wù)器,靠手工不是搞不定,但是反復(fù)的重復(fù)著沒有太多技術(shù)的操作一定會讓人抓狂的的,所以有必要選擇一個可以批量操作部署的自動化工具,諸如Pupet,ansible,rundeck,faric之類的工具不少少,礙于水平有限,暫時就saltstack稍微溜一點,簡單匯總一下基本的概念,操作等。

參考環(huán)境centos6.5

安裝:

復(fù)制代碼 代碼如下:

rpm -Uvh http://mirror.pnl.gov/epel/6/x86_64/epel-release-6-8.noarch.rpm

最新的似乎是2015.8.1,如果用pip安裝的話

master安裝

復(fù)制代碼 代碼如下:

yum install salt-master -y
chkconfig salt-master on
sed -i "s/# interface: 0.0.0.0/ interface: MasterIP地址/" /etc/salt/master ###綁定master端IP地址
service salt-master start ###啟動salt-master

Minion安裝

復(fù)制代碼 代碼如下:

yum install salt-minion –y
chkconfig salt-minion on
sed -i "s/#master: salt/ master: MasterIP地址/" /etc/salt/minion ###傳入Master端IP地址
service salt-minion start ###啟動salt-minion

如果開啟防火墻的話,需要配置防火墻,參考https://docs.saltstack.com/en/latest/topics/tutorials/firewall.html#iptables

復(fù)制代碼 代碼如下:

# Allow Minions from these networks
-I INPUT -s 10.1.2.0/24 -p tcp -m multiport --dports 4505,4506 -j ACCEPT
-I INPUT -s 10.1.3.0/24 -p tcp -m multiport --dports 4505,4506 -j ACCEPT
# Allow Salt to communicate with Master on the loopback interface
-A INPUT -i lo -p tcp -m multiport --dports 4505,4506 -j ACCEPT
# Reject everything else
-A INPUT -p tcp -m multiport --dports 4505,4506 -j REJECT

在master,minion分別啟動后會minion端會到master這里申請認證

master執(zhí)行:

復(fù)制代碼 代碼如下:

salt-key –L ##列出所有認證的客戶端
Accepted Keys:(已經(jīng)接受的)
minion-id-1
Denied Keys:(未被允許的)
Unaccepted Keys:(未接受的)
minion-id-2
Rejected Keys:(拒絕的)
# salt-key –A ##接受所有

每個minion客戶端的都有一個minion_id 即上面的minion-id-1 minion-id-2 就是客戶端的minion_id 默認是取得客戶端的主機名,而minion-id是不能重復(fù)的?。?!

注:如需更改需要在客戶端修改/etc/salt/minion_id配置文件,此文件只有在salt-minion啟動后才會生成

Salt-key常用命令

復(fù)制代碼 代碼如下:

salt-key –a 接受某個客戶端請求
salt-key –A 接受所有客戶端請求
salt-key –d 刪除單個客戶端
salt-key –D 刪除所有客戶端

注:刪除之后,如需重新認證,重啟客戶端即可

Salt配置文件

兩個重要的配置參數(shù)是file_roots(定義環(huán)境的目錄),nodegroups(定義組)

主要配置文件在/etc/salt/master(master端)

/etc/salt/minion(minion端)

注:master端配置文件默認是會加載所有/etc/salt/master.d/(此目錄默認不存在,需自己創(chuàng)建)目錄下的所有以.conf結(jié)尾的配置文件,為了更易閱讀,我將所有的自定義參數(shù)每個單一的創(chuàng)建一個配置文件,如環(huán)境變量,可以分別設(shè)置生產(chǎn),測試,開發(fā)環(huán)境,在往下分就是主機的應(yīng)用級別分類,根據(jù)具體環(huán)境,具體設(shè)置。

復(fù)制代碼 代碼如下:

/etc/salt/master.d/env.conf
file_roots:
base:
- /data/salt/base
- /data/salt/base/sls
apache:
- /data/salt/apache
- /data/salt/apache/confsls
nginx:
- /data/salt/tomcat
- /data/salt/nginx/confsls
mysql:
- /data/salt/mysql

如上述配置所述,一共定義了四個個環(huán)境,分別是base,apache,nginx,mysql等,環(huán)境變量的作用在下面會說到,主要是配合sls文件使用

不同環(huán)境的sls配置文件的目錄分別放在對應(yīng)的目錄,比如base環(huán)境的sls文件,既可以放在/data/salt/base 也可以放在/data/salt/base/sls,其中sls文件是什么會在后面說到

接下來配置所有minion的分組信息,按照用途或者不同ip等分類信息分別定義組名

復(fù)制代碼 代碼如下:

/etc/salt/master.d/groups.conf
nodegroups:
redis: 'redis*'
mysql: 'mysql*'
apache: 'tomcat* not apache-[1][3-4]'
nottom: '* not tomcat*'

如上所述上面一共定義了四個組

注:注意上面的格式,salt幾乎所有的配置文件遵循兩個空格為一個遞進的方式(即file_root下面空兩個的都是它的參數(shù),二它參數(shù)下面空兩格的又是它參數(shù)的參數(shù),后面寫配置文件會更全面的介紹),而且不能用tab鍵補全!!!

Salt常用命令:

Salt語法

salt [客戶端id,即目標] [模塊名,如state,cmd。其實都是salt的模塊] [動作]

接觸saltstack的第一個salt命令一定是test.ping,主要用于探測客戶端的存活狀態(tài)

注:常用的兩個模塊主要是state,cmd兩個模塊,分別對應(yīng)的功能就是state(狀態(tài),在后面會詳細敘述,什么是狀態(tài)),以及cmd(遠程執(zhí)行,而用到此模塊的方法一般就是cmd.run)

首先介紹target,目標,或者說客戶端id的匹配方式

復(fù)制代碼 代碼如下:

[root@master~]# salt \* test.ping
minion-1:
True
minion-2:
True
minion-3:
True
minion-4:
True

True代表正常,沒有響應(yīng)當然代表客戶端沒有啟動或者沒有認證成功之類的。

指定目標主要有五種方式

一: Global,即salt默認的匹配方式,能識別終端常用的通配符,如*代表所有

如,salt '*' test.ping

二: List,列表,需-L指定。

如,salt -L 'foo,bar' test.ping 其中foo,bar是完整的minion_id

三:正則表達式,需-E指定。

如,salt -E 'pre[1-7]' test.ping 會匹配pre1,pre2..pre7,并且匹配到左右minion_id里面含有1-7的,如pre-11,pre7也會匹配到,如果只匹配1-7可使用參照下面

如,salt -E ^pre[1-7]$ test.ping或者 salt pre[1-7] test.ping

四:混合模式,需-C指定。里面可以既有正則表達式也有列表等

salt -C "apache* or E@ngin*" test.ping 匹配所有tomcat開頭,或者mon開頭的

五:分組,需要-N指定,其中組名就是上面/etc/salt/master.d/groups.conf文件里面配置的配置信息。

如,salt -N apache test.ping

然后是模塊,主要介紹state,cmd,cp模塊

注:想了解某個模塊的功能或者具體參數(shù)可以

salt \* sys.doc [模塊名,如cmd]

即salt \* sys.doc cmd 就會列出相關(guān)操作及示例了

遠程命令執(zhí)行

遠程命令執(zhí)行大概是最常用的操作的,比如獲取所有minion端的ip地址,查看同一個目錄下的文件,全部增加一條環(huán)境變量到/etc/profile文件里并刷新環(huán)境變量等等操作

cmd模塊

主要用此模塊的run方法,即cmd.run

使用方式如下,

salt \* cmd.run 'ls /root'

如上所示,選擇了所有的客戶端,master端用cmd.run模塊,把''里面的'ls /root'命令全部分發(fā)下去,其中單引號''也可以用雙引號""代替,引號的作用就是把被引號的命令傳給salt-master,然后master分發(fā)給所有的minion執(zhí)行,上述命令就會列出所有minion端/root目錄下的文件

注:引號里面的命令跟在任何一臺機器上的命令沒有任何區(qū)別,唯一的區(qū)別就是salt執(zhí)行的命令默認用的是sh,而我們常用的shell是bash,比如bash中l(wèi)l是ls –l的別名,而sh里面是沒有做ll的別名的,所以引號里面的命令如果用ll命令會提示找不到此命的

cmd有幾個有用的參數(shù),在可以著重介紹一下

cwd 定義命令所在的目錄,即工作目錄,在哪個目錄執(zhí)行操作
如:

復(fù)制代碼 代碼如下:

Salt \* cmd.run cwd=/opt ‘pwd'
minion-id-1:
/opt

runas,定義執(zhí)行此條命令的用戶,使用哪個用戶執(zhí)行這條命令
如:

復(fù)制代碼 代碼如下:

Salt \* cmd.run runas=nobody ‘touch /tmp/file'

然后去客戶端就會發(fā)現(xiàn),在/tmp/目錄下有一個file文件,擁有者是nobody

然后就state模塊了

主要用到的幾個方法是sls,highstate,show_sls

在講state模塊的時候首先得了解sls文件。

Sls文件用.sls結(jié)尾,放在指定的環(huán)境目錄下,即提到的/data/salt/base /data/salt/base/sls或者/data/salt/apache/sls等目錄

注:假如在這兩個目錄下有兩個一樣的sls文件,那么會file_root配置的第一個環(huán)境目錄,即

比如環(huán)境:

base:

復(fù)制代碼 代碼如下:

/data/salt/base
/data/salt/base/sls

會執(zhí)行/data/salt/base里的sls文件,因為它在前一行

sls文件基本格式如下:

例子一

復(fù)制代碼 代碼如下:

/tmp/ttt20:
file.managed:
- source: salt://files/tst
- mode: 700
- backup: minion
- makedirs: True

例子二

復(fù)制代碼 代碼如下:

testfile:
file.managed:
- name: /tmp/ttt20
- source: salt://files/tst
- mode: 700
- backup: minion
- makedirs: True

如上所示,其實例子一與例子二是達成了一樣的效果,只不過寫法不一樣
像例子一,因為沒有- name: /tmp/ttt20所以,它會去第一行的標識作為name
,而例子二的testfile可以任意起名,只要不與該文件中的其他標識一樣即可。

上面的例子達到的功能就是,將/srv/salt/files/tst文件復(fù)制到客戶端的/tmp/ttt20位置,如果存在則替換,如果已存在且一樣則提示is correct state,即已經(jīng)是正確的狀態(tài)了。

然后就是top.sls

在每個獨立的salt環(huán)境下有且只能有一個top.sls文件,這個文件為該環(huán)境的入口文件,里面記錄了目標主機對應(yīng)的sls文件
如:

base:

minion-id-1:
- test1
- test2

minion-id-2:
- test1
- test3

以tomcat-1為例

它匹配了

- test1
- test2

上面一共是一個2個sls配置文件,即匹配該環(huán)境下的test11.sls,test2.sls文件
所以在執(zhí)行state模塊的時候,它會去檢索這些對應(yīng)的配置文件并執(zhí)行該配置文件里的內(nèi)容。
注:在前面提到過,這些參數(shù)前面的空格不能用tab鍵補全或者少寫,不然會報錯,再者就是如果配置文件為xxxx.sls 在調(diào)用這個配置文件的時候只要寫xxxx,即它的文件名,沒有后綴

以test1為例

復(fù)制代碼 代碼如下:

/tmp/testfile.txt:
file.managed:
- source: salt://test.txt
- mode: 700
- user: root
- mode: 644
- makedirs: True

功能就是調(diào)用file模塊,將salt://test.txt(其中,salt://對于該環(huán)境的file_root目錄,即/data/salt/base)與目標的/tmp/testfile.txt文件做比對,如不一致則更新。

并且此文件的擁有者為root mask碼為644,如果目標文件目錄不存在就創(chuàng)建

現(xiàn)在回到highstate,sls,show_sls方法

執(zhí)行如下

復(fù)制代碼 代碼如下:

salt \* state.sls test
salt \* state.highstate
salt \* state.show_sls test

上面的意思依次是

1.在當前環(huán)境下尋找test.sls文件并執(zhí)行

2.匹配當前環(huán)境的top.sls文件所有的sls文件并執(zhí)行

3.查看當前環(huán)境test.sls文件的執(zhí)行內(nèi)容,但是不在客戶端執(zhí)行。

注:上面特別提到了是在當前環(huán)境,默認情況下,salt只會查找執(zhí)行base環(huán)境下的sls文件,不會執(zhí)行其他環(huán)境的配置文件,所以在不同環(huán)境下,需要指定要執(zhí)行的配置環(huán)境,比如apache環(huán)境,只是執(zhí)行apache的sls文件的話,則需聲明saltenv=apache,如下

復(fù)制代碼 代碼如下:

salt \* state.sls test saltenv=apache
salt \* state.highstate saltenv=apache
salt \* state.show_sls test saltenv=apache

相關(guān)文章

  • 一文深入學習Python中的os.listdir函數(shù)

    一文深入學習Python中的os.listdir函數(shù)

    這篇文章主要給大家介紹了關(guān)于Python中os.listdir函數(shù)的相關(guān)資料,os.listdir是 Python中的一個函數(shù),它的意思是返回指定目錄下的文件和文件夾的名稱的列表,需要的朋友可以參考下
    2023-10-10
  • Python構(gòu)建圖像分類識別器的方法

    Python構(gòu)建圖像分類識別器的方法

    今天小編就為大家分享一篇Python構(gòu)建圖像分類識別器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 使用Python可視化展示排序算法

    使用Python可視化展示排序算法

    這篇文章主要介紹了使用Python可視化展示排序算法,讓我們創(chuàng)建一個名為algorithm?.py的文件,在這個文件中,我們將用python編寫所有的排序算法,需要的朋友可以參考下
    2024-11-11
  • Python?中將數(shù)字轉(zhuǎn)換為字母的方法

    Python?中將數(shù)字轉(zhuǎn)換為字母的方法

    本文詳細介紹了在 Python 中將數(shù)字轉(zhuǎn)換為字母的幾種常用方法,我們介紹了使用 chr() 函數(shù)、string 模塊和 ord() 函數(shù)等方法,并提供了示例代碼幫助你理解和應(yīng)用這些方法,感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • python 實現(xiàn)對文件夾內(nèi)的文件排序編號

    python 實現(xiàn)對文件夾內(nèi)的文件排序編號

    下面小編就為大家分享一篇python 實現(xiàn)對文件夾內(nèi)的文件排序編號,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python使用一行代碼獲取上個月是幾月

    Python使用一行代碼獲取上個月是幾月

    本文介紹的關(guān)于Python時間日期處理,日期時間處理在實際應(yīng)用場景中無處不在,所以這也成了編程語言中必不可少的模塊,本文主要給大家介紹Python使用一行代碼獲取上個月是幾月的相關(guān)知識,感興趣的朋友一起看看吧
    2018-08-08
  • 微信小程序python用戶認證的實現(xiàn)

    微信小程序python用戶認證的實現(xiàn)

    這篇文章主要介紹了微信小程序python用戶認證的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python實現(xiàn)PDF和TIFF格式之間的相互轉(zhuǎn)換

    Python實現(xiàn)PDF和TIFF格式之間的相互轉(zhuǎn)換

    PDF是數(shù)據(jù)文檔管理領(lǐng)域常用格式之一,主要用于存儲和共享包含文本、圖像、表格、鏈接等的復(fù)雜文檔,而TIFF常見于圖像處理領(lǐng)域, 在實際應(yīng)用中,我們可能有時需要將PDF文件轉(zhuǎn)換為TIFF圖像,本文將介紹如何使用Python實現(xiàn)PDF和TIFF格式之間的相互轉(zhuǎn)換,需要的朋友可以參考下
    2024-07-07
  • python調(diào)用cmd復(fù)制文件代碼分享

    python調(diào)用cmd復(fù)制文件代碼分享

    Python3調(diào)用cmd復(fù)制文件,win7下測試通過,大家參考使用吧
    2013-12-12
  • 詳解pytest實現(xiàn)mark標記功能詳細介紹

    詳解pytest實現(xiàn)mark標記功能詳細介紹

    這篇文章主要介紹了詳解pytest實現(xiàn)mark標記功能詳細介紹,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04

最新評論

柳江县| 松原市| 凉山| 永年县| 扎鲁特旗| 灌云县| 双城市| 镇原县| 嫩江县| 前郭尔| 汤原县| 湟源县| 习水县| 蕉岭县| 获嘉县| 瑞丽市| 闽清县| 集安市| 彰化市| 邯郸市| 岑溪市| 论坛| 随州市| 东山县| 陆河县| 新乐市| 安阳县| 博乐市| 莒南县| 贵南县| 伊金霍洛旗| 贺州市| 论坛| 繁峙县| 长垣县| 四川省| 高清| 珲春市| 湘乡市| 洛隆县| 尖扎县|