1. 程式人生 > >saltstack安裝部署與入門使用

saltstack安裝部署與入門使用

部署 centos6x saltstack

一、saltstack簡介

SaltStack 一種基於 C/S 架構的服務器基礎架構集中化管理平臺,管理端稱為 Master,客戶端稱為 Minion。SaltStack 具備配置管理、遠程執行、監控等功能,一般可以理解為是簡化版的 Puppet 和加強版的 Func。SaltStack 本身是基於 Python 語言開發實現,結合了輕量級的消息隊列軟件 ZeroMQ 與 Python 第三方模塊(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack 和 PyYAML 等)構建.

本文不以最新版安裝部署,以CentOS6.8_x64 python2.6.6 環境中 在epel源中穩定的版本進行yum安裝 。如需要安裝最新版本下載地址(readhat/CentOS系)https://repo.saltstack.com/index.html#rhel,


采用兩臺安裝搭建基本的環境。一臺做master/minion 一臺minion

兩臺防火墻要麽關閉 要麽加上允許本地網段白名單類似 :-A INPUT -s 172.16.3.0/24 -j ACCEPT

關閉selinux.


二、安裝

1,安裝epel擴展源

#yum install epel-release -y


2、安裝saltstack master

# yum install salt-master sat-minion -y

修改主配置文件/etc/salt/master 內容如下:

# cat master |egrep -v ‘(^$|^#)‘
interface: 0.0.0.0                #偵聽地址
file_roots:                       #文件根目錄
  base:
    - /srv/salt
    
# cat minion |egrep -v ‘(^$|^#)‘
default_include: minion.d/*.conf      
master: 127.0.0.1               #和master在同一臺
id: minion_local                #標識


#service salt-master start

#service salt-minion start



2、安裝minion(非master上)

#yum install epel-release -y

#yum install salt-minion -y

修改配置文件cat /etc/salt/minion

# cat minion |egrep -v ‘(^$|^#)‘
default_include: minion.d/*.conf      
master: 172.16.3.147              #和master在同一臺
id: minion_local                  #標識

#service salt-minion start


三、master上添加minion

如裏在master配置文件中打開

auto_accept: True

則所有的minon 將會自動被認證加入。自行考量。本次是手工添加

#salt-key -L

如圖:Unaccepted Keys:中出現兩個等待授權認證的minon

技術分享

#salt-key -A

輸入y

接受所有minion認證

再次salt-key -L 查看已授權的minion會就看到

#salt "*" test.ping #查看所有的活動在線的minion

如圖:

技術分享


到此基本的saltstack master /minion 環境部署完成

四、saltstack常用操作

除了上面的添加minon和測試minion在線情況外,還有一些其他的模擬提供一些常用操作;

1、salt語法

salt [客戶端id,即目標,支持正規表達式] [模塊名,如state,cmd。其實都是salt的模塊] [動作]

如: salt "*" test.ping 這裏的"*"就是匹配的目標,表示 所有minion test是模塊 ping是動作

目標有以下常用的五種形式:

指定目標主要有五種方式

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

如,salt ‘*‘ test.ping

b)、List,列表,需-L指定。

如,salt -L ‘minion_local,minion_152‘ test.ping 其中minion_local,minion_152

是完整的minion_id

c)、-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

d)、-C 混合模式,裏面可以既有正則表達式也有列表等

salt -C "minion_* or test_minion" test.ping 匹配所有minion開頭,或者test_minion id的

e)、分組,需要-N指定,其中組名就是上面/etc/salt/master.d/groups.conf文件裏面配置的

配置信息。如,salt -N apache test.ping


2、常用模塊

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

註:想了解某個模塊的功能或者具體參數可以

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

a)、cmd模塊

salt ‘*‘ cmd.run "echo $HOSTNAME" 這裏可以遠程執行shell命令,執行結果會返回

技術分享

b)、文件上傳與下載

salt "minion_152" cp.get_file salt://files/test.txt /tmp/test.txt

將/srv/salt/files/test.txt 推送到minion_152 /tmp/下也叫test.txt

技術分享

到minion_152 tmp目錄下查看

技術分享

同理可以通過 cp.push從minion上下載文件

需要修改master中的 file_recv: True

salt "minion_152" cp.push /etc/fstab #默認下到本地

/var/cache/salt/master/minions/minion-id/files目錄

技術分享

其他的模塊主參考官方文檔。這裏不再多說。

本文出自 “學無止境,學以致用” 博客,請務必保留此出處http://dyc2005.blog.51cto.com/270872/1967147

saltstack安裝部署與入門使用