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

[经验分享] SaltStack部署

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-30 08:41:01 | 显示全部楼层 |阅读模式
   SaltStack使用python开发,非常简单易用和轻量级的管理工具; 采用 C/S模式,由master和Minion构成,通过ZeroMQ进行通信,速度非常快。
    ZeroMQ是一种基于消息队列的多线程高性能通讯库。
通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。
    EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。
1.下载安装epel。
[iyunv@saltstack saltstack]# wget http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm
[iyunv@saltstack saltstack]# ls
epel-release-6-8.noarch.rpm
[iyunv@saltstack saltstack]# rpm -ivh epel-release-6-8.noarch.rpm
[iyunv@saltstack saltstack]# ls /etc/yum.repos.d/ ----查看是否安装成功
CentOS-Base.repo epel.repo epel-testing.repo
2.安装saltstack服务端salt-master。
[iyunv@saltstack saltstack]# yum install -y salt-master
[iyunv@saltstack saltstack]# chkconfig salt-master on
[iyunv@saltstack saltstack]# service salt-master restart
Stopping salt-master daemon: [FAILED]
Starting salt-master daemon: [ OK ]
如果有启动问题可以检查/var/log/salt/master日志文件进行排错。检查服务器端口是否正常开启。
4505(publish_port)为saltstack的消息发布系统
4506(ret_port)为saltstack客户端与服务端通信的端口。
[iyunv@saltstack saltstack]# netstat -nptul|grep python
tcp 0 0 0.0.0.0:4505 0.0.0.0:* LISTEN1990/python2.6
tcp 0 0 0.0.0.0:4506 0.0.0.0:* LISTEN2014/python2.6
saltstack服务端的配置文件是/etc/salt/master ,服务端配置文件可以不用配置,默认情况下salt-master在所有接口上监听4505和4506两个端口,如果想绑定某个具体的ip,需要对/etc/salt/master配置文件中额interface做出修改,修改后需要重启服务。

                             
3.在客户端上安装 saltstack的客户端程序,客户端上也 需要先配置好 EPEL,然后 yum安装 salt-minion客户端程序。
[iyunv@salt-minion ~]# wget http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm
[iyunv@salt-minion ~]# rpm -ivh epel-release-6-8.noarch.rpm
[iyunv@salt-minion ~]# yum install -y salt-minion
[iyunv@salt-minion ~]# vi /etc/salt/minion #修改客户端配置文件
master: 192.168.1.112 #指定salt服务器的ip地址,注意冒号后面有空格
id: 192.168.1.113_client #指定salt客户机的id,注意冒号后面有空格,id可以随便命名,可以根据服务器功能或者主机名来命名,这样清晰明了。
4.修改完配置文件,重启服务。客户端日志文件:/var/log/slat/minion可以进行排错
[iyunv@salt-minion ~]# chkconfig salt-minion on
[iyunv@salt-minion ~]# service salt-minion restart
Stopping salt-minion daemon: [FAILED]
Starting salt-minion daemon: [ OK ]
把所有需要管理的客户机都按照上述步骤安装好客户端后,就可以回到服务端进行下一 步的管理控制了。这时候 master要想真正和客户端通信还需要配置salt的认证,minion在 第一次启动时,会在 /etc/salt/pki/minion/下自动生成 minion.pem(private key)和 minion.pub(publickey),然后将 minion.pub发送给 master。master在接收到 minion的publickey后,通过salt-sky命令接收minionpublic key,这样在master 的
/etc/salt/pki/master/minions下将会存放以客户端id命名的publickey,然后master将能对minion发送指令。
[iyunv@saltstack minions]# pwd
/etc/salt/pki/master/minions
认证命令为:salt-key
-a 接受指定的客户端
-A 接受所有的客户端
-r 拒绝指定的客户端
-R 拒绝所有的客户端
-d 删除指定的客户端
-D 删除所有的客户端

[iyunv@saltstack minions]# salt-key -Ay #添加所有的客户端,y不用输入yes
The following keys are going to be accepted:
Unaccepted Keys:
192.168.1.113_client
Proceed? [n/Y] y
Key for minion 192.168.1.113_client accepted.
[iyunv@saltstack minions]# ls
192.168.1.113_client
[iyunv@saltstack minions]# salt-key -L #在服务器端查看客户端
Accepted Keys: #已经接受的客户端
192.168.1.113_client
Denied Keys:
Unaccepted Keys:
Rejected Keys:
[iyunv@saltstack minions]#
[iyunv@saltstack minions]# lsof -i:4505
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
salt-mast 1990 root 12u IPv4 16949 0t0 TCP *:4505 (LISTEN)
salt-mast 1990 root 14u IPv4 24721 0t0 TCP192.168.1.112:4505->192.168.1.113:39428 (ESTABLISHED)
部署完成
---------------------------------------------------------------------------------------------------------------------------------------
salt管理客户端的各种命令
命令 目标 操作 客户机上面执行的所有操作
[iyunv@saltstack minions]# salt "*" cmd.run "ip add show eth0|grepglobal" #查看所有客户端的ip
192.168.1.113_client:
inet 192.168.1.113/24 brd 192.168.1.255 scope global eth0
[iyunv@saltstack minions]# salt "*" test.ping #测试连通性
192.168.1.113_client:
True

[iyunv@saltstack /]# salt "*" cmd.run "df -Th"
192.168.1.113_client:
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_slave1-lv_root ext4 18G 2.3G 15G 14% /
tmpfs tmpfs 116M 12K 116M 1% /dev/shm
/dev/sda1 ext4 485M 32M 428M 7% /boot

cmd.run 远程在客户端上执行 shell命令,然后返回输出
cmd.script 在客户端运行指定的脚步
salt'192.168.1.113_client' cmd.script salt://deluser.sh

salt '192.168.1.113_client' network.ip_addrs


[iyunv@saltstack /]# salt-run manage.status
down:
up:
- 192.168.1.113_client
复制服务器上的文件到客户机下
目标 文件位置 客户机目录
[iyunv@saltstack /]# salt-cp "*" /saltstack/epel-release-6-8.noarch.rpm/etc/
{'192.168.1.113_client':{'/etc/epel-release-6-8.noarch.rpm': True}}
[iyunv@saltstack /]# salt "192.168.1.113_client" cmd.run "ls/etc|grep epel" 查看是否成功
192.168.1.113_client:
epel-release-6-8.noarch.rpm



运维网声明 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-307428-1-1.html 上篇帖子: saltstack将minion客户端分组批量处理 下篇帖子: Saltstack之Grains组件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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