运维自动化之SaltStack简单入门
饱食终日而无所事事,是颓也,废也。但看昨日,费九牛二虎之力除一BUG便流连于新番之中,不知东方之既黑,实乃颓颓然而荒废矣。故今日来缀一文以忏昨日之悔。
SaltStack简介
salt是一个新的基础平台管理工具。只需花费数分钟即可运行起来, 扩展性足以支撑管理上万台服务器,数秒钟即可完成数据传递. 经常被描述为 Func 加强版+Puppet 精简版。这么说你可能不太明白,那么简单地说:Salt就是一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。salt底层采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等。
最为重要的一点,salt是开源的,而且是python实现的一种运维自动化的工具,这意味着我们可以对其进行一些改动,在其基础之上加上我们想要的功能,对其进行二次开发。salt的源码在这里。感兴趣的朋友可以看一下。那么既然如此,SaltStack的安装配置简单么?如果知道salt的宗旨的话,那么你就不会这么问了。正如很多最强大、最有用的工程解决方案都是基于简单原则建立起来的。SaltStack 也竭尽全力做到那样:K.I.S.S.(Keep It Stupidly Simple 简单到愚蠢)。
环境介绍
系统:CentOS6.5两台
Windows Server 2008 R2
这里是把其中一台CentOS系统的机器当做master,把另一台的CentOS电脑以及Windows电脑当做minion,按照英文翻译的理解就是其中一台是用来控制另外两台的。
Salt安装与配置
Salt之CentOS的安装与配置:
- 首先,如果你的系统中EPEL当前不是enabled的话,你需要先通过如下的命令对其进行启动(PS:以下命令需要在两台机器上都执行):
1 rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm
2. 接下来,由于salt的master和minion包是分开的,所以机器需要安装相应的包,通常情况下,一个master会对应多个minion。
在master上运行:
1 yum install salt-master
在minion上运行:
1 yum install salt-minion
至此,CentOS上的master就安装好了。
3.接下来,先不要启动,先到minion进行配置,在/etc/salt/minion文件中,找到master那一行,将注释去掉,然后把master的IP或者hostname写在冒号后面。然后找到id,同样去掉注释,将此机器的ip或者hostname写上去。嗯,至此CentOS算是完成了。
Salt之Windows的安装与配置:
首先,下载Windows的salt-minion,链接在这里:Salt-Minion-2014.7.0-x86-Setup.exe。
1.下载完成后,点击安装,然后,一直下一步,直到你遇见一个输入框,第一行是输入你的master的IP,当然hostname也行。第二行是你本机的IP或者hostname。
2.完成安装后,去C盘的salt文件夹下看看你的conf文件夹下是否有一个pki文件夹以及两个文件,一个是minion,一个是minion_id文件。若没有的话自己建立一个minion文件,没有后缀名,然后将master以及id写进去,步骤同Linux版的配置。
启动服务
如果完成了以上步骤,恭喜你快要见到胜利的曙光了,现在,启动你的master:
1 service salt-master start
接下来,启动你的minion,LInux版启动如下:
1 service salt-minion start
Windows启动方法就是进入C盘的salt文件夹内,然后启动salt-minion.exe,这样,你就启动了你的salt,然后去master执行如下命令:
1 salt-key -L
如果步骤没问题的话,你会看到这样的界面:
1 [root@controller ~]# salt-key -L 2 Accepted Keys: 3 Unaccepted Keys: 4 172.1.1.72 5 172.1.19.14 6 Rejected Keys:
然后执行如下命令接受验证请求:
1 [root@controller ~]# salt-key -A 2 The following keys are going to be accepted: 3 Unaccepted Keys: 4 172.1.1.72 5 172.1.19.14 6 Proceed? [n/Y] Y 7 Key for minion 172.16.1.72 accepted. 8 Key for minion 172.16.19.14 accepted.
接下来可以看一下你现在能控制的minion:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
进行测试
接下来进行最简单的测试:在master执行如下指令:
1 [root@controller ~]# salt 172.16.19.14 test.ping 2 172.16.19.14: 3 True
然后下面就是反馈的结果。是True说明已经可以进行控制了,那么我们控制minion安装一个软件试试。
在minion检测软件:
1 [root@controller ~]# rpm -qa | grep mysql 2 mysql-server-5.1.73-3.el6_5.x86_64 3 mysql-libs-5.1.73-3.el6_5.x86_64 4 mysql-5.1.73-3.el6_5.x86_64
可以看到只有三个有关mysql的。然后我们在master上控制minion安装一个软件包:
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 [root@controller ~]# salt 172.16.19.14 pkg.install sources='[{"mysql":"http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm"}]' 2 172.16.19.14: 3 ---------- 4 mysql-community-release: 5 ---------- 6 new: 7 el6-5 8 old:
根据反馈信息来看,old是空,说明以前没有这个软件,而new就是我们刚刚安装的软件。接下来,我们到minion看一下是否已经成功安装了软件:
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 [root@controller ~]# rpm -qa | grep mysql 2 mysql-server-5.1.73-3.el6_5.x86_64 3 mysql-libs-5.1.73-3.el6_5.x86_64 4 mysql-5.1.73-3.el6_5.x86_64 5 [root@controller ~]# rpm -qa | grep mysql 6 mysql-server-5.1.73-3.el6_5.x86_64 7 mysql-community-release-el6-5.noarch 8 mysql-libs-5.1.73-3.el6_5.x86_64 9 mysql-5.1.73-3.el6_5.x86_64
可以清楚的看到,比之前多了一个软件,这说明我们成功安装了软件了。
以上,就是有关salt的简单的介绍以及安装使用了。
如果想学习更多的有关Salt的知识,请移步去官网。
话说亲耐的新番又在呼唤我了,追番去了先。
PS:本博客欢迎转发,但请注明博客地址及作者~
博客地址:http://www.cnblogs.com/voidy/
<。)#)))≦