ITPub博客

首页 > IT基础架构 > 服务器/存储 > 自动化运维工具Saltstack学习笔记

自动化运维工具Saltstack学习笔记

服务器/存储 作者:xz43 时间:2016-02-24 10:38:09 0 删除 编辑

1.Saltstack简介
Saltstack是一个具备puppet与func功能为一身的集中化,轻量级的自动化运维管理工具,使用python编写,功能非常强大,可以使用EPEL快速安装。相比较puppet,安装和配置更加容易和简单。下面是Saltstack安装和基础配置文档。(官方文档:http://docs.saltstack.com/topics/installation/rhel.html)

2.物理环境

140719570.jpg

3.安装前准备

修改服务器的主机名和hosts,使其能相互解析和ping通,下面以saltmaster为例。


01.#修改主机名vim /etc/sysconfig/network
02.HOSTNAME=SaltMaster
03.#查看主机名
04.[root@saltmaster ~]# hostname
05.saltmaster
06.#修改/etc/hosts文件,添加如下内容
07.192.168.1.235 SaltMaster
08.192.168.1.248 WEB248
09.192.168.1.244 DB244

4.安装Saltstack

利用EPEL源安装saltstack。


1.#导入EPEL YUM源
3.#服务器master的安装
4.yum -y install salt-master
5.#客户端minon安装
6.yum -y install salt-minion

5.Saltstack配置
 

1.#服务器master的配置,vim /etc/salt/master添加master侦听的IP地址。
2.# The address of the interface to bind to
3.interface: 192.168.1.235
4.#客户端minion的配置,vim /etc/salt/minion,添加master IP地址和minion ID号。
5.# Set the location of the salt master server
6.master: 192.168.1.235
7.# clusters.
8.id: WEB2013-10-023

6.启动Saltstack服务
 

1.#saltstack master启动和设置开机自动启动
2./etc/init.d/salt-master start
3.chkconfig salt-master on
4.#Saltstck minion启动和设置开机自动启动
5./etc/init.d/salt-minion start
6.chkconfig salt-minion on

7.Saltstack master认证Minion KEY

Saltstack使用公共密钥加密来保证master和minions的安全通信。安装的时候Salt自动生成这些证书,但需要在master端验证minion的证书来确认master和minion之间是授信的。


01.#salt-key -L查看所有没有认证,通过认证,拒绝认证的证书。
02.[root@SaltMast ~]# salt-key list
03.Accepted Keys:
04.Unaccepted Keys:
05.DB2012-08-001
06.WEB2013-10-023
07.Rejected Keys:
08.#证书认证用命令salt-key -a id
09.[root@SaltMast ~]# salt-key -a DB2012-08-001
10.The following keys are going to be accepted:
11.Unaccepted Keys:
12.DB2012-08-001
13.Proceed? [n/Y] y
14.Key for minion DB2012-08-001 accepted.
15.[root@SaltMast ~]# salt-key -a WEB2013-10-023
16.The following keys are going to be accepted:
17.Unaccepted Keys:
18.WEB2013-10-023
19.Proceed? [n/Y] y
20.Key for minion WEB2013-10-023 accepted.
21.#查看认证通过的证书
22.[root@SaltMast ~]# salt-key list
23.Accepted Keys:
24.DB2012-08-001
25.WEB2013-10-023
26.Unaccepted Keys:
27.Rejected Keys:

8.Saltstack测试

1)通信测试:Saltstack证书认证通过以后,就可以进行通信,在master通过test.ping命令来测试它们之间的连接。通配符"*"代表了所有minion。

130404671.jpg

2)执行命令:在Saltstack master端通过执行"salt id 系统命令"来返回minion执行结果。

132036816.jpg

9.Saltstack分组及其测试

1)为什么要分组?线上WEB,DB,IMG等安装配置相同或者相近的服务器可分为一组,方便批量安装和管理,编辑 /etc/salt/master 添加如下内容,每个组可以有N多服务,每个服务器用逗号分隔。


1.# nodegroups:
2.#   group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'
3.#   group2: 'G@os:Debian and foo.domain.com'
4.nodegroups:
5.wwwgroup:  'L@WEB2013-10-023,DB2012-08-001'
6.dbgroup:  'DB2012-08-001'

2)分组测试

135057802.jpg


SaltStack安装和基本的配置已经完成,可以通过SaltStack批量执行系统命令,包括重启系统,重启服务,查看系统负载,添加/删除用户等等。也可以把线上WEB,DB,BBS等安装和配置相同或相近的服务器分为一组,通过Saltstack的group功能批量执行管理。下面通过Saltstack来实现批量安装,卸载RPM软件包,批量分发文件,压缩包和推送目录到指定的minion,定期修改Apache/Nginx/Mysql等配置文件并实施推送到minion。

1.物理环境

154621933.jpg

2.配置Saltstack master

1)编辑/etc/salt/master, 取掉下面注释行,目录/srv/salt是Saltstack核心配置文件目录。


1.file_roots:
2.base:
3.- /srv/salt/

2)查看我规划的Saltstack .sls和配置文件,软件包的目录结构。

170953759.jpg

3)在/srv/salt目录下面新建top.sls文件,该文件是Saltstack入口配置文件。Saltstack "top.sls"文件开头一般用base:书写,通配符'*'表示所有的minion,-conf.pack表示conf目录下面的pack.sls文件,在这里我定义的是RPM软件包管理。


1.base:
2.'*':
3.- conf.pack
4.- conf.nginx
5.- conf.apache
6.- conf.mysql
7.- conf.software

3.软件包的管理

1)创建软件包管理的配置文件pack.sls 文件,httpd表示要安装软件包,pkg:表示Saltstack安装包管理,-name表示安装软件包名称,-installed表示安装,-removed表示卸载,service:表示Saltstack服务管理,后两行保证apache的服务是开启的。


1.httpd:
2.pkg:
3.- name: httpd
4.- installed
5.service:
6.- running
7.- enable: True

2)软件包管理测试,在ID为WEB2013-10-23的服务器上面查看,已经安装apache服务并启动。

162528587.jpg

4.Nginx/apache配置文件的分发

1)创建Nginx sls配置文件nginx.sls ,第一表示分发到minion文件路径,-managed表示Saltstack文件管理,-source:表示master端配置文件地址,下面三行表示文件的属性。


1./usr/local/nginx/conf/nginx.conf:
2.file:
3.- managed
4.- source: salt://nginx/nginx.conf
5.- user: www
6.- group: www
7.- mode: 644
8.- backup: minion

2)Nginx/apache配置文件的分发测试,在ID为WEB2013-10-23的服务器查看Nginx配置文件及其属性都是OK的。

164149904.jpg

5.Saltstack常用命令总结

通过salt '*' sys.doc | grep "salt '*'"可以查看所有salt帮助文档的说明。

1)Saltstack通过cp.get_file可以将master文件分发到minion,/software/Install_Centos_LAMP_v.0.1.sh表示把文件分发到minion上的文件路径,makedirs=True表示如果目录不存在自动创建,在传输大文件的时候还支持压缩传输,在传输大文件的时候还支持压缩传输gzip。

165519954.jpg

2)cp.get_dir和cp.get_file一样,不过get_dir是用来下载整个目录的,也支持压缩传输。

170043966.jpg

3)Saltstack cmd.run 命令可以执行系统命令并把结果返回。

171756726.jpg

3)Saltstack state.highstate命令表示主动推送master和minion同步,也可以通过schedule方式让客户端minion定期同步master。


1.salt '*' state.highstate

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9399028/viewspace-1993517/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
鱼儿的学习空间

注册时间:2010-11-16

  • 博文量
    433
  • 访问量
    1863692