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

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

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-8-18 12:36:22 | 显示全部楼层 |阅读模式
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 id命名的key ,这时master可对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.30
    master
   

centos7.3
10.0.040
   

minion
    centos7.3
10.0.0.50
    minion
    centos7.3

设置环境

修改主机名

hostnamectl set-hostname dlp.linuxwang.cn
hostnamectl set-hostname node01.linuxwang.cn
hostnamectl set-hostname node02.linuxwang.cn

在所有主机添加本地解析

[iyunv@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信息

    [iyunv@dlp ~]# salt-key -L
       Accepted Keys:
       node01.linuxfan.cn
       node02.linuxfan.cn
       Denied Keys:
       Unaccepted Keys:
       Rejected Keys:
salt-key -A

       [iyunv@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

   [iyunv@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-403128-1-1.html 上篇帖子: saltstack 安装配置 下篇帖子: saltstack命令的使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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