项目背景:

通过部署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

centos6.5上部署集中化管理平台Saltstack!!!_python2、自动认证

centos6.5上部署集中化管理平台Saltstack!!!_管理平台_02

3、指定Saltstack文件根目录

centos6.5上部署集中化管理平台Saltstack!!!_管理平台_03

五、Saltstack被控端配置文件设置

1、指定master主机IP

centos6.5上部署集中化管理平台Saltstack!!!_集中化_04

2、修改被控端主机识别ID

centos6.5上部署集中化管理平台Saltstack!!!_集中化_05

六,启动服务

1、服务器端启动

centos6.5上部署集中化管理平台Saltstack!!!_集中化_06

2、被控端启动

centos6.5上部署集中化管理平台Saltstack!!!_管理平台_07

七、设置ssh信任

http://9399369.blog.51cto.com/9389369/1750915 (这是我写的双机信任,你可以只做服务器端到被控端的)

八、测试安装设置是否正确

centos6.5上部署集中化管理平台Saltstack!!!_python_08

九、利用Saltstack远程执行命令

centos6.5上部署集中化管理平台Saltstack!!!_管理平台_09

十、查看你主机支持的Saltstack模块和API

centos6.5上部署集中化管理平台Saltstack!!!_管理平台_10

十一、获取被控端ip地址信息

centos6.5上部署集中化管理平台Saltstack!!!_管理平台_11十二、为所以的被控端安装mysql数据库。

centos6.5上部署集中化管理平台Saltstack!!!_集中化_12

十三、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数据

centos6.5上部署集中化管理平台Saltstack!!!_集中化_13十四、pillar组件

1、修改配置文件/et/salt/master,开启pillar

centos6.5上部署集中化管理平台Saltstack!!!_集中化_142、重启服务

centos6.5上部署集中化管理平台Saltstack!!!_集中化_153、查看主机的pillar信息

centos6.5上部署集中化管理平台Saltstack!!!_python_16

4、查看pillar的主目录

centos6.5上部署集中化管理平台Saltstack!!!_python_175、创建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

centos6.5上部署集中化管理平台Saltstack!!!_集中化_18






项目总结:Saltstack相对ansible来说知识点比较多,使用比较复杂,但是它功能更强大!我想大家都知道它有多火爆了。基本上运维工程师都要求对Saltstack有一定的理解和掌握。所以我这篇博文对大家还是有一点儿帮助的。 希望跟大家一起进步!!!