一豫柬、SaltStack簡介
salt是一個新的基礎平臺管理工具, 只需要花費數(shù)分鐘即可運行起來, 擴展性足以支撐管理上萬臺服務器, 數(shù)秒鐘即可完成數(shù)據(jù)傳遞. 經(jīng)常被描述為Func加強版+Puppet精簡版. SaltStack采用C/S架構.
簡單的說: salt是一種全新的基礎設施管理方式, 部署輕松, 在幾分鐘內(nèi)可運行起來, 擴展性好. 很容易管理上萬臺服務器, 速度快, 服務器之間秒級通信. salt底層采用動態(tài)的連接總線, 使其可以用于編配, 遠程執(zhí)行, 配置管理等等.
最為重要的一點, salt是開源的. 而且是python實現(xiàn)的自動化運維工具, 這意味著我們可以對其進行一些改動, 在其基礎之上加上我們想要的功能, 對其進行二次開發(fā).
二稽寒、環(huán)境介紹
系統(tǒng)Centos_6.6 x64兩臺, 一臺為master,另一臺為minion.
三死讹、SaltStack安裝
*** 1. 如果機器內(nèi)沒有epel, 請下載.(2臺機器都執(zhí)行)***
[root@office-vps4051 ~]# rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm
*** 2. 由于salt的master和minion包是分開的, 所以機器需要安裝相應的包, 通常情況下, 一個master會對應多個minion***
*** 2.1 在master運行***
[root@office-vps4048 ~]# yum -y install salt-master
*** 2.2 在minion上運行***
[root@office-vps4051 ~]# yum -y install salt-minion
四棕兼、SaltStack配置
*** 1. 修改master配置文件***
[root@office-vps4048 ~]# vim /etc/salt/master
interface: 192.168.1.48 #服務端ip
[root@office-vps4048 ~]# /etc/init.d/salt-master start
*** 2. 修改被管理端(minion)***
[root@office-vps4051 ~]# vim /etc/salt/minion
master: 192.168.1.48 #master的主機名或ip
id: vps4051 #本機標識符,默認為主機名
[root@office-vps4051 ~]# /etc/init.d/salt-minion start
*** 3. 日志文件默認路徑***
[root@office-vps4048 ~]# tail -f /var/log/salt/master #master
[root@office-vps4051 ~]# tail -f /var/log/salt/minion #minion
*** 4. 接受minion的托管請求***
minion向master投誠后, 還需要master接受才行. 這個過程叫做”授信”.
[root@office-vps4048 ~]# salt-key -L
其中Unaccepted Keys是未許可的minion. 可使用下面的命令通過認證
[root@office-vps4048 ~]# salt-key -a vps4051
五胞谭、測試
*** 1. 基本操作命令通用格式***
格式: 命令 對象 執(zhí)行模塊 參數(shù)
salt ‘*’ cmd.run “ping -c 4 www.baidu.com"
*** 2. 安裝配置好之后, 首先要測試一下連通性, salt會列出每個認證過的minion連通狀態(tài)(true或false).***
[root@office-vps4048 ~]# salt '*' cmd.run "uptime"
*** 3. 批量重啟服務***
[root@office-vps4048 ~]# salt '*' cmd.run "/etc/init.d/httpd restart"
*** 4. 批量查看系統(tǒng)時間***
[root@node1 ~]# salt '*' cmd.run "uptime"
注意, 默認情況下master和minion之間使用以下端口進行通信:
4505(publish_port):salt的消息發(fā)布系統(tǒng)
4506(ret_port):salt客戶端與服務端通信的端口
cmd.run 為模塊,又稱之為超級命令. 可以執(zhí)行Linux中的任何命令.
六同廉、Salt States
SLS(代表Salt State文件)是Salt State系統(tǒng)的核心. SLS描述了系統(tǒng)的目標狀態(tài), 由格式簡單的數(shù)據(jù)構成. 這經(jīng)常被稱作配置管理.
*** 1. 默認的數(shù)據(jù) - YAML***
這些數(shù)據(jù)確保名為apache的軟件包處于已安裝狀態(tài), 服務進程apache處于運行狀態(tài).
第1行是這段數(shù)據(jù)的ID, 被稱作ID聲明. 這個ID是要將執(zhí)行這些命令的名字.
第2行和第4行表示State聲明開始, 使用了pkg和service這兩個states. pkg使用系統(tǒng)本地的軟件包管理器管理將要安裝的軟件, service管理系統(tǒng)守護進程.
第3行和第5行是要執(zhí)行的funcation. 這些function定義了名字為ID的軟件包和服務的目標狀態(tài). 此例中, 軟件包應當處于已安裝狀態(tài), 服務必須運行.
第6行關鍵字require. 這唄稱為必要語句(Requisite), 它確保了apache服務只有在成功安裝軟件后才會啟動.