項目背景:
通過部署Saltstsck環境,我們可以在成千上萬的服務器上做到批量執行命令,根據不同業務特點我們可以進行配置集中化管理、分發文件、采集服務器數據、軟件包管理。可以搭建我們自己的自動化運維平台,滿足我們的不同場景下的需求。
實驗環境:
vmware workstation 11
centos6.5的系統下
Saltstack服務器:ip:192.168.0.10 防火牆關閉 setenforce 0
Saltstck被控端: ip:192.168.0.44 防火牆關閉 setenforce 0
SecureCRT (ssh遠程連接軟件)
軟件介紹:
Saltstsck官網介紹:
Salt, a new approach to infrastructure management, is easy enough to get running in minutes, scalable enough to manage tens of thousands of servers, and fast enough to communicate with those servers in seconds.
Salt delivers a dynamic communication bus for infrastructures that can be used for orchestration, remote execution, configuration management and much more.
譯文:
Saltstsck,一種新的基礎設施管理的方法,在幾分鐘之內我們就可以部署成功,可擴展到管理成千上萬的服務器,可以在幾秒中內快速的進行服務器間的溝通。
Saltstsck提供了一個動態的通信總線的基礎設施,可用於業務流程,遠程執行,配置管理和更多的功能。
軟件特點:
特性
(1)、部署簡單、方便;
(2)、支持大部分UNIX/Linux及Windows環境;
(3)、主從集中化管理;
(4)、配置簡單、功能強大、擴展性強;
(5)、主控端(master)和被控端(minion)基於證書認證,安全可靠;
(6)、支持API及自定義模塊,可通過Python輕松擴展。
實驗過程:
一、安裝包含軟件包Saltstack的epel源
1、Saltstack服務器端安裝:
[root@real_server01 ~]# rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Retrieving http://ftp.linux.ncsu.edu/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Preparing... ########################################### [100%]
package epel-release-6-8.noarch is already installed
2、Saltstack被監控端安裝:
[root@ansible ~]# rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Retrieving http://ftp.linux.ncsu.edu/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Preparing... ########################################### [100%]
package epel-release-6-8.noarch is already installed
二、Saltstack服務器端軟件安裝
[root@real_server01 ~]# yum install -y salt-master -y
三、Saltstack被控端軟件安裝
[root@ansible ~]# yum install -y salt-minion
四、Saltstack服務器端配置文件設置
1、綁定master通信IP
2、自動認證
3、指定Saltstack文件根目錄
五、Saltstack被控端配置文件設置
1、指定master主機IP
2、修改被控端主機識別ID
六,啟動服務
1、服務器端啟動
2、被控端啟動
七、設置ssh信任
http://9399369.blog.51cto.com/9389369/1750915(這是我寫的雙機信任,你可以只做服務器端到被控端的)
八、測試安裝設置是否正確
九、利用Saltstack遠程執行命令
十、查看你主機支持的Saltstack模塊和API
十一、獲取被控端ip地址信息
十二、為所以的被控端安裝mysql數據庫。
十三、grains詳解
grains是Saltstack的一個重要組件,用來收集被控端主機的基本信息
1、獲取所有主機的grains信息
[root@real_server01 ~]# salt '*' grains.ls
fuchao002:
- SSDs
- biosreleasedate
- biosversion
- cpu_flags
- cpu_model
- cpuarch
- domain
- fqdn
- fqdn_ip4
- fqdn_ip6
- gpus
- host
- hwaddr_interfaces
- id
- init
- ip4_interfaces
- ip6_interfaces
- ip_interfaces
- ipv4
- ipv6
- kernel
- kernelrelease
- locale_info
- localhost
- lsb_distrib_codename
- lsb_distrib_id
- lsb_distrib_release
- machine_id
- manufacturer
- master
- mdadm
- mem_total
- nodename
- num_cpus
- num_gpus
- os
- os_family
- osarch
- oscodename
- osfinger
- osfullname
- osmajorrelease
- osrelease
- osrelease_info
- path
- productname
- ps
- pythonexecutable
- pythonpath
- pythonversion
- saltpath
- saltversion
- saltversioninfo
- selinux
- serialnumber
- server_id
- shell
- virtual
- zmqversion
可以看到手機的主機信息特別多。
2、獲取主機單項grains數據
十四、pillar組件
1、修改配置文件/et/salt/master,開啟pillar
2、重啟服務
3、查看主機的pillar信息
4、查看pillar的主目錄
5、創建pillar目錄
[root@real_server01 ~]# install -d /srv/pillar
6、重啟服務
[root@real_server01 pillar]# service salt-master restart
Stopping salt-master daemon: [ OK ]
Starting salt-master daemon: [ OK ]
7、定義入口文件
[root@real_server01 ~]# cd /srv/pillar/ #切換到pillar目錄
[root@real_server01 pillar]# vim top.sls
base:
'*':
- data
[root@real_server01 pillar]# vim data.sls
appname:fuchao1
flow:
maxconn:30000
maxmem:3G
8、校驗pillar
項目總結:Saltstack相對ansible來說知識點比較多,使用比較復雜,但是它功能更強大!我想大家都知道它有多火爆了。基本上運維工程師都要求對Saltstack有一定的理解和掌握。所以我這篇博文對大家還是有一點兒幫助的。 希望跟大家一起進步!!!