设为首页 收藏本站
查看: 1664|回复: 0

[经验分享] saltstack自动化运维

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-18 12:44:39 | 显示全部楼层 |阅读模式
一、Saltstack架构

Saltstack基于C/S架构,服务端master:192.168.179.128和客户端minions :192.168.179.129

二、Saltstack的安装配置

1、master的安装

rpm -ivhhttp://mirrors.sohu.com/fedora-e ... ease-6-8.noarch.rpm
yum install salt-master默认配置文件位于/etc/salt/master ,默认不需要更改该配置文件。master端有两个端口需要在iptables上放行

4505(publish_port):salt的消息发布系统
4506(ret_port):salt 客户端与服务端通信的端口

启动方法:/etc/init.d/salt-master start

2、minion客户端的安装

rpm -ivhhttp://mirrors.sohu.com/fedora-e ... ease-6-8.noarch.rpm
yum install salt-minion客户端的配置文件为/etc/salt/minion ,打开该文件,这里有两项是必须配置项。其一、找到如下行

# resolved, thenthe minion will fail to start.
#master: salt

在其下增加master主机的配置

# resolved, then the minion will fail to start.
#master: salt
master: 192.168.179.128

这里直接配置的是IP地址,也可以配置成主机名,如果配置成主机名的话,需要在/etc/hosts文件中master主机对应的IP ,如果使用内部DNS的例外,可以在内部DNS上的统一配置。

其二、找到如下段部分
Rejected Keys:在其下增加一行内容

id: host174

[iyunv@localhost ]# salt-key -L
Accepted Keys:
host129
Unaccepted Keys:

这里是指定当前主机的id号,这在后面master认证和master调用命令执行时显示的名称,可以根据实际识别需要填写。另外需要注意的是,以上两处配置冒号后面都需要有一个空格,不然会报如下错误:

Starting salt-miniondaemon: [ERROR ] Error parsing configuration file: /etc/salt/minion - whilescanning a simple key
in "<string>", line 44, column 1:
id:host172
^
could not found expected ':'
in "<string>", line 46, column 1:
# Append a domain to a hostname ...
^除以上两个必须配置项外,客户端还有其他很多可配置项,如user(默认是root)、root_dir(默认是根目录)等选项,这些配置后可以控制master端的权限。

配置文件配置完成后,可以通过/etc/init.d/salt-minion start命令启动minion 。

三、C/S认证

和puppet一样, salt 的 master 和 minions 是通过证书通信的,故存在证书的信任颁发问题。
在master端:salt-key -L 查看当前需要接受的keys(master和minions都需要把服务开启)。

[iyunv@localhost ]# salt-key -L
Accepted Keys:
host129
Unaccepted Keys:
Rejected Keys:这里可以看到我已经认证过一台id为host129的主机。我再新增一个130的主机:

[iyunv@localhost conf]# salt-key -L
Accepted Keys:
host129
Unaccepted Keys:
host130
Rejected Keys:
[iyunv@localhost conf]# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
host1130
Proceed? [n/Y] Y
Key for minion host130 accepted.
[iyunv@localhost conf]# salt-key -L
Accepted Keys:
host129
host130
Unaccepted Keys:
Rejected Keys:我上面用的-A参数,该参数意思是接受所有认证主机的认证,也可以使用 -a id名只认证单独的主机。默认认证完成后会在/etc/salt/pki/master/minions目录找到以ID名命令的文件,里面存放的是密钥文件。

如果对客户端信任,可以让master自动接受请求,在master端/etc/salt/master配置

auto_accept: True

注:认证这里zeromq2版本下有一个bug --minion与master的连接断开后,不会自动重连的问题,zeromq3正常,这个主要在centos5下经常遇到。具体可以通过以下方法确认具体的版本:

[iyunv@localhost minions]# salt '*' test.versions_report
host130:
Salt: 2014.1.0
Python: 2.6.6 (r266:84292, Jun 18 2012, 14:18:47)
Jinja2: 2.2.1
M2Crypto: 0.20.2
msgpack-python: 0.1.13
msgpack-pure: Not Installed
pycrypto: 2.0.1
PyYAML: 3.10
PyZMQ: 2.2.0.1
ZMQ: 3.2.4
host129:
Salt: 2014.1.0
Python: 2.6.6 (r266:84292, Feb 22 2013, 00:00:18)
Jinja2: unknown
M2Crypto: 0.20.2
msgpack-python: 0.1.13
msgpack-pure: Not Installed
pycrypto: 2.0.1
PyYAML: 3.10
PyZMQ: 2.2.0.1
ZMQ: 3.2.4

如果更换版本,可以到这里下载http://download.opensuse.org/repositories/home:/fengshuo:/zeromq/CentOS_CentOS-5/x86_64/ ,centos6版本的epel源里有,也可以在这里找到,只需把centos-5改成centos-6就行了。

四、命令执行

1、测试master和minion之间的通信是否正常

[iyunv@localhost minions]# salt '*' test.ping
host129:
True
host130:
True

True代表正常,*代表所有主机,也可以选择单台或者按组及正则进行匹配等,这个可以参看下官方相关文档。其默认执行的正则是shell正则,也可以使用其他正则或组等,如下:

salt 'shell正则' 命令
salt -E 'prel 正则'
salt -N $group 命令
salt -L 'server_id1,server_id2,server_id3' 命令
2、执行命令操作

常用的操作类似如下

salt '*' cmd.run"ab -n 10 -c 2 http://www.111cn.net/"
salt '*' grains.ls 查看grains分类
salt '*' grains.items 查看grains所有信息
salt '*' grains.item osrelease 查看grains某个信息
salt '*' cmd.run "/App/nginx/sbin/nginx -v"命令执行使用cmd.run参数,由于输出内容较多,不再一一列出,这里只列出一台查看nginx版本的:

[iyunv@localhost minions]# salt'*' cmd.run "/App/nginx/sbin/nginx -v"
host130:
Tengine version: Tengine/1.5.2 (nginx/1.2.9)
host129:
Tengine version: Tengine/1.4.6 (nginx/1.2.9)



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302123-1-1.html 上篇帖子: Saltstack API以及对应的Python模板 下篇帖子: Saltstack安装 (CentOS7.x)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表