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

[经验分享] saltstack自动化运维平台的介绍、部署、基本使用

[复制链接]

尚未签到

发表于 2018-7-31 09:15:53 | 显示全部楼层 |阅读模式
  saltstack:服务器基础架构集中化管理平台,有配置管理、远程执行、监控等功能,基于Python语言开发,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建,
  优点(1.部署简单便捷;2支持的系统多样;3配置简单,功能强,扩展性好;4基于主从,用证书建立连接,安全性高;5支持API及自定义模块)

  认证minion在启动时,会在/etc/salt/pki/minion自动生成minion.pem(private key)和minion.pub(public key) ,然后将minion.pub发给master服务端,master收到key后通过salt-key命令accept minion public key ,这样在master的/etc/salt//pki/master/minions下将会有minion>  连接master服务端 服务默认监听端口4505 4506
  4505为saltstack的消息发布系统
  4506为saltstack客户端与服务端通信接口
  通过lsof查看4505 会发现minion持续保持ESTABLISHED(已建立)状态
  SaltStack
  Salt类似Ansible,因为它也是基于CLI的工具,采用了推送方法实现客户端通信。它可以通过Git或通过程序包管理系统安装到主服务器和客户端上。客户端会向主服务器提出请求,请求在主服务器上得到接受后,就可以控制该客户端了。
  Salt可以通过普通的SSH与客户端进行通信,但如果使用名为minion的客户端代理软件,可以大大增强可扩展性。此外,Salt含有一个异步文件服务器,可以为客户端加快文件服务速度,这完全是Salt注重高扩展性的一个体现。
  与Ansible一样,你可以直接通过CLI,向客户端发出命令,比如启动服务或安装程序包;你也可以使用名为state的YAML配置文件,处理比较复杂的任务。还有“pillar”,这些是放在集中地方的数据集,YAML配置文件可以在运行期间访问它们。
  你可以直接通过CLI,向客户端请求配置信息,比如内核版本或网络接口方面的详细信息。只要使用名为“grain”的库存元素,就可以描述客户端;这样一来,管理员可以轻松向某一种类型的服务器发出命令,不需要依赖已配置群组。比如说,只要使用一个CLI命令,你就可以向运行某个内核版本的每个客户端发送命令。
  与Puppet、Chef和Ansible一样,Salt也提供了大量的模块,以处理特定的软件、操作系统和云服务。自定义模块可以用Python或PyDSL来编写。除了Unix管理外,Salt的确提供Windows管理功能,但它还是更擅长管理Unix和Linux系统。
  Salt的Web用户界面Halite非常新,功能不如其他系统的Web用户界面来得全面。它提供了事件日志和客户端状态的视图,能够在客户端上运行命令,但除此之外乏善可陈。
  Salt的最大优点在于可扩展性和弹性。你可以有多个级别的主服务器。上游主服务器可以控制下游主服务器及其客户端。另一个优点在于对等系统,让客户端可以向主服务器提出问题,然后主服务器从其他服务器得到答案,提供全面信息。如果需要在实时数据库中查询数据,以便完成客户端的配置,这个优点就很方便。
  部署环境
  实验环境:
IP地址角色环境10.0.0.30master  centos7.3
10.0.040  minion
centos7.310.0.0.50minioncentos7.3  设置环境
  修改主机名
  hostnamectl set-hostname dlp.linuxwang.cn
  hostnamectl set-hostname node01.linuxwang.cn
  hostnamectl set-hostname node02.linuxwang.cn
  在所有主机添加本地解析
  [root@dlp ~]# cat /etc/hosts
  127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
  ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  10.0.0.30    dlp.linuxwang.cn
  10.0.0.40    node01.linuxwang.cn
  10.0.0.50    node02.linuxwang.cn
  SaltStack的通信模式总共分为2种模式:ZeroMQ、REAT,鉴于REAT目前还不是太稳定,我们选择ZeroMQ模式,本次安装采用源码安装的方式
  在master配置(10.0.0.30)
  yum -y install epel-release
  yum -y install salt-master
  for i in enable restart status; do systemctl $i salt-master;done
  netstat -utpln |grep -e 4505 -e 4506
  tcp        0      0 0.0.0.0:4505            0.0.0.0:*               LISTEN      17452/python
  tcp        0      0 0.0.0.0:4506            0.0.0.0:*               LISTEN      17470/python
  在minion配置(10.0.0.40-50)
  yum -y install epel-release
  yum -y install salt-minion
  ping dlp
  vi /etc/salt/minion
  master: dlp.linuxwang.cn  ##修改16行,指定master
  :wq
  for i in enable restart status;do systemctl $i salt-minion;done
  授权
  salt-key -L 查看当前的salt key信息
  [root@dlp ~]# salt-key -L
  Accepted Keys:
  node01.linuxfan.cn
  node02.linuxfan.cn
  Denied Keys:
  Unaccepted Keys:
  Rejected Keys:
  salt-key -A
  [root@dlp ~]# salt-key -A
  The following keys are going to be accepted:
  Unaccepted Keys:
  node01.linuxwang.cn
  node02.linuxwang.cn
  Proceed? [n/Y] Y
  Key for minion node01.linuxwang.cn accepted.
  Key for minion node02.linuxwang.cn accepted.
  授权成功可进行远程操作
  测试被控主机的连通性
  # salt '*' test.ping
  [root@dlp ~]# salt "*" test.ping
  node01.linuxwang.cn:
  True
  node02.linuxwang.cn:
  这时开始涉及我们的saltstack模块的使用, 由一个一个的模块对我们的远程的主机进行操作。
  模块介绍
Archive模块:实现系统层面的压缩包调用,支持 gunzip、gzip、rar、tar、unzip等  

  
cmd模块  :实现远程命令行调用执行(默认具备root权限)
  

  
cp模块    :实现远程文件、目录的复制,以及下载URL文件等操作
  

  
cron模块  :实现被控主机的crontab计划任务操作
  

  

  
dnsutil模块:实现被控主机通过DNS相关操作
  
file模块:被控主机文件常见操作,包括文件读写、权限、查找、校验等
  
iptables模块:被控主机Iptables支持
  
network模块:返回被控主机网络信息
  
pkg包管理:被控主机程序包管理,如 yum 、apt-get等
  
service服务模块:被控主机程序包管理服务

运维网声明 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-543914-1-1.html 上篇帖子: 利用Saltstack的States初始化系统 下篇帖子: saltstack自动化管理平台搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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