Fork me on GitHub

新博客地址:voidy's blog

运维自动化之SaltStack简单入门

Posted on 2014-11-30 15:27  尛鱼  阅读(1332)  评论(0编辑  收藏  举报

运维自动化之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的安装与配置:

  1. 首先,如果你的系统中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:

1 [root@controller ~]# salt-key -L
2 Accepted Keys:
3 172.16.1.72
4 172.16.19.14
5 Unaccepted Keys:
6 Rejected Keys:
View Code

进行测试

  接下来进行最简单的测试:在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安装一个软件包:

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:
View Code

  根据反馈信息来看,old是空,说明以前没有这个软件,而new就是我们刚刚安装的软件。接下来,我们到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
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
View Code

  可以清楚的看到,比之前多了一个软件,这说明我们成功安装了软件了。

  以上,就是有关salt的简单的介绍以及安装使用了。

  如果想学习更多的有关Salt的知识,请移步去官网

  话说亲耐的新番又在呼唤我了,追番去了先。

 

    PS:本博客欢迎转发,但请注明博客地址及作者~

   博客地址:http://www.cnblogs.com/voidy/

   <。)#)))≦