一、什么是saltstack Salt,,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。salt底层采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等. SaltStack 是继 Puppet、Chef 之后新出现的配置管理及远程执行工具, 目前,SaltStack 正得到越来越多的瞩目。与 Puppet 相比,SaltStack 没有那么笨重,感觉较为轻量;不像 Puppet 有 一套自己的 DSL 用来写配置,SaltStack 使用 YAML 作为配置文件格式,写 起来既简单又容易,同时也便于动态生成;此外,SaltStack 在远程执行命令 时的速度非常快,也包含丰富的模块。 官方站点:http://www.saltstack.com/ 官方文档:http://docs.saltstack.com/ 中文站点:http://www.saltstack.cn/ 中文手册:http://docs.saltstack.cn/ 中文wiki:http://wiki.saltstack.cn/doc 二、安装 这里采用的是从EPEL源直接yum安装,当然我们要更新epel源:

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm SaltStack-Master(主服务器) # yum -y install salt-master SaltStack-Minion(从服务器) # yum -y install salt-minion

三、简单配置及使用 1、基本信息:

Master端:192.168.1.21 saltstack-node1.example.com
Minion端:192.168.1.22 saltstack-node2.example.com

2、启动命令:

Master端:/etc/init.d/salt-master {start|stop|status|restart|condrestart|reload}
Minion端:/etc/init.d/salt-minion {start|stop|status|restart|condrestart|reload}

3.主配置文件:

Master端:/etc/salt/master
Minion端:/etc/salt/master

4.配置Master端 修改监听地址默认为监听所有

sed -ie ‘s/^#.*interface:.*/\ interface: 192.168.1.111/g’ /etc/salt/master

###注:如果使用主机名,请绑定hosts

5.配置minion端 客户端minion的配置,vim /etc/salt/minion,添加master IP地址和minion ID号,ID建议用主机名来配置,然后开启日志功能,为了不重复操作我下面写了一个脚本,当我们配置minion时能快速搞定:

#/bin/bash

#desc : salt client setttings
read -p “Input Mster IP: “ MIP ###指定masterIP
COMM1=”sed -i \“s/#master: salt/master: $MIP/\“ /etc/salt/minion”
eval $COMM1
#
echo ‘ ‘
read -p “Input Minion ID: “ MID ###修改minion ID
COMM2=”sed -i \“s/#id:.*/id: $MID/\“ /etc/salt/minion”
eval $COMM2
### 开启日志
sed -i “s@#log_file: /var/log/salt/minion@log_file: /var/log/salt/minion@1” /etc/salt/minion
sed -i ‘488d’ /etc/salt/minion
#
sed -i “s@#key_logfile: /var/log/salt/key@key_logfile: /var/log/salt/key@” /etc/salt/minion
#
echo ‘ ‘
echo -e “\033[42;37m Salt-minion Information: \033[0m”
echo ‘##############################’
sed -e ‘/^#/d;/^$/d’ /etc/salt/minion
echo ‘##############################’
echo ‘ ‘

###启动服务
/etc/init.d/salt-minion start

###只要有新的minion客户端添加进来我们运行这个脚本就可快速完成minion端的配置啦.

6.修改完毕我们就可以重启服务啦. 四、开始和Master端通信 1.Minion第一次与Master端通信会向其申请签发证书。在Master端执行# salt-key 即可看到已经签发、待签发以及拒绝的Minion列表。上面那台Minion刚刚申请,所以现在在Master上执行命令后SaltStack- Minion01将会出现在待签发的列表中。 [

Screenshot from 2015-08-12 15:31:02](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/08/Screenshot-from-2015-08-12-153102.png)
Screenshot from 2015-08-12 15:31:02](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/08/Screenshot-from-2015-08-12-153102.png)
对于批量管理,首先建议的就是打开Master端的自动签发证书,要不然就得在服务器上执行命令# salt-key -a Minion-ID或者# salt-key -A,但相比都比较麻烦,于是我们可执行以下命令将其自动签发

sed -ie ‘s/^#auto_accept:.*/\auto_accept: True/g’ /etc/salt/master
/etc/init.d/salt-master restart

此时再次执行# salt-key 将会看到saltstack-node2.example.com出现在已签发的列表中。 [

PIC2](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/08/PIC2.png)](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/08/PIC2.png) 2.简单测试其功能: 目前为止,Master端已经可以和Minion正常通信。 首先测试下,向saltstack-node2.example.com执行一条查看内存的命令 [![PIC3](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/08/PIC3.png)
PIC2](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/08/PIC2.png)](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/08/PIC2.png) 2.简单测试其功能: 目前为止,Master端已经可以和Minion正常通信。 首先测试下,向saltstack-node2.example.com执行一条查看内存的命令 [![PIC3](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/08/PIC3.png)
这里就先不解释命令的含义啦,后面在细说。 至此,简单测试完毕 当然SaltStack的功能不止于此,下篇正式看下他是如何工作以及各种配置的编写.