项目背景:
通过部署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源
rpm -ivh
http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
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
3、指定Saltstack文件根目录
五、Saltstack被控端配置文件设置
1、指定master主机IP
2、修改被控端主机识别ID
六,启动服务
1、服务器端启动
2、被控端启动
七、设置ssh信任
http://9399369.blog.51cto.com/9389369/1750915 (这是我写的双机信任,你可以只做服务器端到被控端的)
八、测试安装设置是否正确
九、利用Saltstack远程执行命令
十、查看你主机支持的Saltstack模块和API
十一、获取被控端ip地址信息
十三、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数据
1、修改配置文件/et/salt/master,开启pillar
4、查看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有一定的理解和掌握。所以我这篇博文对大家还是有一点儿帮助的。 希望跟大家一起进步!!!