Salt和Puppet Chef 一样可以让你同时在多台服务器上执行命令也包括安装和配置软件。Salt 有两个主要的功能:配置管理和远程执行。(我个人很喜欢的一个功能)
salt也分为Salt-master(类似于puppet的master)和salt-minion(client)
本文主机:centos6.5 x64
ip:192.168.28.133
本机充当master及minion端进行测试;
1、安装salt
1
2
3
4
5
6
7
|
yum
install
salt-master salt-minion
####即可
[root@master salt]
# pwd
/etc/salt
[root@master salt]
# ll
总用量 48
-rw-r----- 1 root root 23020 6月 11 04:39 master
-rw-r----- 1 root root 21392 6月 11 04:39 minion
|
现在就可以启动salt-master、salt-minion服务;
2、配置minion:
1
2
3
|
vim minion
11 master: 192.168.28.133
###Master服务器的IP地址
42
id
: _host_serv_1.lansgg.com
###这个名字可以是任何字符串
|
重新加载minion服务
1
|
/etc/init
.d
/salt-minion
restart
###重启后你会在当前目录多了两个目录
|
3、master端认证minion key
1>、输入salt-key -L 列出所有没有认证,认证过,拒绝认证的证书
2>、你应该可以看到一个没有认证的证书_host_serv_1.lansgg.com
3>、认证这个证书使用 salt-key -a _host_serv_1.lansgg.com
4、通信测试
从master 使用一个test ping的命令来测试他们之间的连接
1
2
3
|
[root@master salt]
# salt '*' "test.ping" ###通配符 *代表所有minion
_host_serv_1.lansgg.com:
True
####证明OK
|
Salt的语法结构,包括命令,目标和动作,举个例子,* 指任何主机(* 是一个通配符),test.ping 是动作。
你可以在已经链接和信任的主机上执行任何可用的命令,关键提示:这些需要执行的命令在目标主机上必须可用,例如,如下命令:
1
|
[root@master salt]
# salt '*' cmd.run "service httpd restart"
|
《上图停止失败是因为我的httpd服务本身就是关闭的》;
1
2
3
|
[root@master salt]
# salt _host_serv_1.lansgg.com cmd.run "uptime"
_host_serv_1.lansgg.com:
01:23:40 up 1:55, 3
users
, load average: 0.00, 0.00, 0.00
|
你也可以根据你自己的需求,执行一些命令在特定的目标群组上。参考-G 参数,从此以后你不需要再登陆minion,所有的配置和执行能够快速高效的远程执行。
5、salt 函数
Salt拥有一个巨大的函数库可用于执行,而且Salt函数是自带文档说明的。在minions上执行 sys.doc 函数可以查看哪些函数可用:
1
2
|
[root@master salt]
# salt '*' sys.doc
[root@master ~]
# salt '*' sys.doc disk ##查看disk函数相关
|
可以在线查看 在线查看
这些函数覆盖从shell命令到包管理到数据库服务器操作等所有内容。它们包含强大的系统管理API,而这则是Salt配置管理和很多其他部分的核心。
远程执行shell命令
1
|
[root@master salt]
# salt '*' cmd.run 'ls -l /etc'
|
1
|
[root@master salt]
# salt '*' cmd.run 'yum install tree -y '
|
函数参数的传递
很多函数可以通过命令行接收参数:
1
|
[root@master salt]
# salt '*' pkg.install tree
|