实在是厌倦了对大量服务器日复一日的重复操作。尤其是在虚拟化的时代,系统的每个组件都有很多个相同的节点在运行,更让重复的次数再乘以N。 当我发现Salt的时候,我的眼前一亮:这正是我所需要的东西。
# 安装EPEL,注意选择合适的版本 rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm yum update # 安装master yum install salt-master # 修改配置 vim /etc/salt/master # 最基本的设定服务端监听的IP(比如使用VIP做master的高可用时): # interface: 服务端监听IP # 其他配置参考 http://docs.saltstack.com/ref/configuration/master.html # 启动服务(以下命令等效) salt-master -d /etc/init.d/salt-master start service salt-master start
# 安装EPEL,注意选择合适的版本 rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm yum update # 安装minion yum install salt-minion # 修改配置 vim /etc/salt/minion # 最基本的设定是指定master地址,以及本机标识符: # master: master的主机名或IP地址 # id: 本机标识符 # 添加ID时注意中间需要有空格 # 启动服务(以下命令等效) salt-minion -d /etc/init.d/salt-minion start service salt-minion start
minion向master投诚后,还需要master接受才行。这个过程叫做“授信”。
Salt底层使用公钥-私钥证书来保证通信信道的安全。具体的机制可以参考ZeroMQ的相关内容。Salt已经屏蔽了底层的细节,只需要使用封装好的命令:
# 在master上运行 # 查看所有minion salt-key -L
Accepted Keys: windows bond_app_server_main mac_os_vm salt-master Unaccepted Keys: minion1 minion2 Rejected Keys:
其中Unaccepted Keys是未许可的minion。可以使用下面的命令通过认证:
salt-key -a minion1
安装配置好之后,首先要测试一下联通性:salt ‘*‘ test.ping。salt会列出每个认证过的minion的联通状态(true 或 false)。
再举一些例子:
# 查询主机运行了多长时间 sudo salt ‘*‘ cmd.run "uptime" # 批量重启服务 salt ‘*‘ cmd.run "service httpd restart" # 让多台机器一起,使用Apache Bench进行压力测试 salt ‘*‘ cmd.run "ab -n 10 -c 2 http://www.google.com/"
注意,默认情况下master和minion之间使用以下端口进行通信:
4505(publish_port): salt的消息发布系统
4506(ret_port):salt客户端与服务端通信的端口
网络的设置需要保证这些端口可以访问。
如有疑问请联系QQ:403182580
参考文档:http://www.saltstack.cn/projects/cssug-kb/wiki/Salt_intro_1#%E6%8E%A5%E5%8F%97minion%E7%9A%84%E6%89%98%E7%AE%A1%E8%AF%B7%E6%B1%82
本文出自 “openvpn搭建” 博客,请务必保留此出处http://lovesource.blog.51cto.com/1454821/1587827
原文地址:http://lovesource.blog.51cto.com/1454821/1587827