av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

快速上手SaltStack

SaltStack是一個(gè)服務(wù)器基礎(chǔ)架構(gòu)集中化管理平臺(tái),具備配置管理、遠(yuǎn)程執(zhí)行、監(jiān)控等功能,基于Python語(yǔ)言實(shí)現(xiàn),結(jié)合輕量級(jí)消息隊(duì)列(ZeroMQ)與Python第三方模塊(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)構(gòu)建。

成都創(chuàng)新互聯(lián)公司長(zhǎng)期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為高郵企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站,高郵網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

而且采用RSA Key方式確認(rèn)身份,傳輸采用AES加密,這使得它的安全性得到了保障。SaltStack經(jīng)常被描述為Func加強(qiáng)版+Puppet精簡(jiǎn)版。

為什么選擇SaltStack?

目前市場(chǎng)上主流的開(kāi)源自動(dòng)化配置管理工具有puppet、chef、ansible、saltstack等等。到底選擇那個(gè)比較好?可以從以下幾方面考慮:

語(yǔ)言的選擇(puppet/chef vs ansible/saltstack)

Puppet、Chef基于Ruby開(kāi)發(fā),ansible、saltstack基于python開(kāi)發(fā)的

運(yùn)維開(kāi)發(fā)語(yǔ)言熱衷于python(后期可做二次開(kāi)發(fā)),排除Puppet、Chef

速度的選擇 (ansible vs saltstack)

ansible基于ssh協(xié)議傳輸數(shù)據(jù),SaltStack使用消息隊(duì)列zeroMQ傳輸數(shù)據(jù)。從網(wǎng)上數(shù)據(jù)來(lái)看,SaltStack比ansible快大約40倍。

對(duì)比ansible,Saltstack缺點(diǎn)是需要安裝客戶端。為了速度建議選擇SaltStack

SaltStack github地址:https://github.com/saltstack/salt

SaltStack官網(wǎng)文檔地址:https://docs.saltstack.com

SaltStack架構(gòu)

在SaltsStack架構(gòu)中服務(wù)端叫作Master,客戶端叫作Minion,都是以守護(hù)進(jìn)程的模式運(yùn)行,一直監(jiān)聽(tīng)配置文件中定義的ret_port(saltstack客戶端與服務(wù)端通信的端口,負(fù)責(zé)接收客戶端發(fā)送過(guò)來(lái)的結(jié)果,默認(rèn)4506端口)和publish_port(saltstack的消息發(fā)布系統(tǒng),默認(rèn)4505端口)的端口。當(dāng)Minion運(yùn)行時(shí)會(huì)自動(dòng)連接到配置文件中定義的Master地址ret_port端口進(jìn)行連接認(rèn)證。

  1. Master:控制中心,salt命令運(yùn)行和資源狀態(tài)管理
  2. Minion : 需要管理的客戶端機(jī)器,會(huì)主動(dòng)去連接Mater端,并從Master端得到資源狀態(tài)
  3. 信息,同步資源管理信息
  4. States:配置管理的指令集
  5. Modules:在命令行中和配置文件中使用的指令模塊,可以在命令行中運(yùn)行
  6. Grains:minion端的變量,靜態(tài)的
  7. Pillar:minion端的變量,動(dòng)態(tài)的比較私密的變量,可以通過(guò)配置文件實(shí)現(xiàn)同步minions定義
  8. highstate:為minion端下發(fā)永久添加狀態(tài),從sls配置文件讀取.即同步狀態(tài)配置
  9. salt_schedule:會(huì)自動(dòng)保持客戶端配置

SaltStack安裝配置

默認(rèn)以CentOS6為例,采用yum安裝,還有其它安裝方式,如pip、源碼、salt-bootstrap

EPEL源配置

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/epel/epel-release-latest-6.noarch.rpm

安裝、配置管理端(master)

yum -y install salt-master
service salt-master start

注:需要iptables開(kāi)啟master端4505、4506端口

安裝被管理端

yum -y install salt-minion
sed -i 's@#manster:.*@manster: master_ipaddress@' /etc/salt/minion  #master_ipaddress為管理端IP
echo 10.252.137.141 > /etc/salt/minion_id #個(gè)人習(xí)慣使用IP,默認(rèn)主機(jī)名
service salt-minion start

Master與Minion認(rèn)證

minion在第一次啟動(dòng)時(shí),會(huì)在/etc/salt/pki/minion/(該路徑在/etc/salt/minion里面設(shè)置)下自動(dòng)生成minion.pem(private key)和 minion.pub(public key),然后將 minion.pub發(fā)送給master。master在接收到minion的public key后,通過(guò)salt-key命令accept minion public key,這樣在master的/etc/salt/pki/master/minions下的將會(huì)存放以minion id命名的 public key,然后master就能對(duì)minion發(fā)送指令了。 認(rèn)證命令如下:

[[email protected] ~]# salt-key -L    #查看當(dāng)前證書(shū)簽證情況
Accepted Keys:
Unaccepted Keys:
10.252.137.141
Rejected Keys:
[[email protected] ~]# salt-key -A -y   #同意簽證所有沒(méi)有接受的簽證情況
The following keys are going to be accepted:
Unaccepted Keys:
10.252.137.141
Key for minion 10.252.137.141 accepted.
[[email protected] ~]# salt-key -L
Accepted Keys:
10.252.137.141
Unaccepted Keys:
Rejected Keys:

SaltStack遠(yuǎn)程執(zhí)行

[[email protected] ~]# salt '*' test.ping
10.252.137.141:
True
[[email protected] ~]# salt '*' cmd.run 'ls -al'
10.252.137.141:
total 40
drwx------  4 root root 4096 Sep  7 15:01 .
drwxr-xr-x 22 root root 4096 Sep  3 22:10 ..
-rw-------  1 root root  501 Sep  7 14:49 .bash_history
-rw-r--r--  1 root root 3106 Feb 20  2014 .bashrc
drwx------  2 root root 4096 Jan 30  2015 .cache
drwxr-xr-x  2 root root 4096 Apr 22 13:57 .pip
-rw-r--r--  1 root root  140 Feb 20  2014 .profile
-rw-r--r--  1 root root   64 Apr 22 13:57 .pydistutils.cfg
-rw-------  1 root root 4256 Sep  7 15:01 .viminfo

salt執(zhí)行命令的格式如下:

salt ''  [arguments]

target:執(zhí)行salt命令的目標(biāo),可以使用正則表達(dá)式

function:方法,由module提供

arguments:function的參數(shù)

target可以是以下內(nèi)容:

\1. 正則表達(dá)式

salt -E 'Minion*' test.ping  #主機(jī)名以Minion開(kāi)通

\2. 列表匹配

salt -L Minion,Minion1 test.ping

\3. Grians匹配

salt -G 'os:CentOS' test.ping

os:CentOS(默認(rèn)存在)是Grains的鍵值對(duì),數(shù)據(jù)以yaml保存在minion上,可在minion端直接編輯/etc/salt/grains,yaml格式?;蛘咴趍aster端執(zhí)行salt ‘*’ grains.setval key “{‘sub-key’: ‘val’, ‘sub-key2’: ‘val2’}” ,具體文檔(命令salt * sys.doc grains查看文檔)

\4. 組匹配

salt -N groups test.ping

如,在master新建/etc/salt/master.d/nodegroups.conf ,yaml格式

\5. 復(fù)合匹配

salt -C 'G@os:CentOS or L@Minion' test.ping

\6. Pillar值匹配

salt -I 'key:value' test.ping

/etc/salt/master設(shè)置pillar_roots,數(shù)據(jù)以yaml保存在Master上

\7. CIDR匹配

salt -S '10.252.137.0/24' test.ping

10.252.137.0/24是一個(gè)指定的CIDR網(wǎng)段

function是module提供的方法

通過(guò)下面命令可以查看所有的function: salt ‘10.252.137.141’ sys.doc cmd

function可以接受參數(shù):

salt '10.252.137.141' cmd.run 'uname -a'

并且支持關(guān)鍵字參數(shù):

在所有minion上切換到/目錄以salt用戶運(yùn)行uname -a命令。
salt '10.252.137.141' cmd.run 'uname -a' cwd=/ user=salt

SaltStack配置管理

states文件

salt states的核心是sls文件,該文件使用YAML語(yǔ)法定義了一些k/v的數(shù)據(jù)。

sls文件存放根路徑在master配置文件中定義,默認(rèn)為/srv/salt,該目錄在操作系統(tǒng)上不存在,需要手動(dòng)創(chuàng)建。

在salt中可以通過(guò)salt://代替根路徑,例如你可以通過(guò)salt://top.sls訪問(wèn)/srv/salt/top.sls。

在states中top文件也由master配置文件定義,默認(rèn)為top.sls,該文件為states的入口文件。

一個(gè)簡(jiǎn)單的sls文件如下:

apache:
pkg.installed
service.running
  - require:
    - pkg: apache

說(shuō)明:此SLS數(shù)據(jù)確保叫做”apache”的軟件包(package)已經(jīng)安裝,并且”apache”服務(wù)(service)正在運(yùn)行中。

  • 第一行,被稱為ID說(shuō)明(ID Declaration)。ID說(shuō)明表明可以操控的名字。
  • 第二行和第四行是State說(shuō)明(State Declaration),它們分別使用了pkg和service states。pkg state通過(guò)系統(tǒng)的包管理其管理關(guān)鍵包,service state管理系統(tǒng)服務(wù)(daemon)。 在pkg及service列下邊是運(yùn)行的方法。方法定義包和服務(wù)應(yīng)該怎么做。此處是軟件包應(yīng)該被安裝,服務(wù)應(yīng)該處于運(yùn)行中。
  • 第六行使用require。本方法稱為”必須指令”(Requisite Statement),表明只有當(dāng)apache軟件包安裝成功時(shí),apache服務(wù)才啟動(dòng)起來(lái)。

state和方法可以通過(guò)點(diǎn)連起來(lái),上面sls文件和下面文件意思相同。

apache:
pkg.installed
service.running
  - require:
    - pkg: apache

將上面sls保存為init.sls并放置在sal://apache目錄下,結(jié)果如下:

/srv/salt
├── apache
│   └── init.sls
└── top.sls

top.sls如何定義呢?

master配置文件中定義了三種環(huán)境,每種環(huán)境都可以定義多個(gè)目錄,但是要避免沖突,分別如下:

# file_roots:
#   base:
#     - /srv/salt/
#   dev:
#     - /srv/salt/dev/services
#     - /srv/salt/dev/states
#   prod:
#     - /srv/salt/prod/services
#     - /srv/salt/prod/states

top.sls可以這樣定義:

base:
 '*':
  - apache

說(shuō)明:

第一行,聲明使用base環(huán)境

第二行,定義target,這里是匹配所有

第三行,聲明使用哪些states目錄,salt會(huì)尋找每個(gè)目錄下的init.sls文件。

運(yùn)行states

一旦創(chuàng)建完states并修改完top.sls之后,你可以在master上執(zhí)行下面命令:

[[email protected] ~]# salt '*' state.highstate
sk2:
----------
State: - pkg
Name:      httpd
Function:  installed
Result:    True
Comment:   The following packages were installed/updated: httpd.
Changes:
----------
httpd:
----------
new:
2.2.15-29.el6.centos
old:
----------
State: - service
Name:      httpd
Function:  running
Result:    True
Comment:   Service httpd has been enabled, and is running
Changes:
----------
httpd:
True
Summary
------------
Succeeded: 2
Failed:    0
------------
Total:     2

上面命令會(huì)觸發(fā)所有minion從master下載top.sls文件以及其中定一個(gè)的states,然后編譯、執(zhí)行。執(zhí)行完之后,minion會(huì)將執(zhí)行結(jié)果的摘要信息匯報(bào)給master。


分享題目:快速上手SaltStack
URL分享:http://uogjgqi.cn/article/djsceih.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流