自动化配置管理工具 SaltStack-01

一、SaltStack简介

SaltStack (以下简称为 Salt)是基于 Python 开发的 一套 C/S 架构配置管理工具,其底层 使用的是 ZeroMQ 消息队列 PUB/SUB 方式通信,并且使用 SSL 证书签发的方式来进行认 证管理 。

Saltstack 比 Puppet 出来晚几年,是基于Python 开发的,也是基于 C/S 架构,服务端 master 和客户端 minions ;Saltstack 和 Puppet 很像,可以说 Saltstatck 整合了 Puppet 和 Chef 的功能,更加强大,更适合大规模批量管理服务器,并且它比 Puppet 更容易配置。

三大功能: 远程命令执行,配置管理(服务,文件,cron,用户,组),云管理。

支持系统:大多数都支持,windows 上不支持安装 master。

Salt的具体步骤如下

  • 第一步:salt stack的master与minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc。
  • 第二步:salt命令,以ls查看为例,将cmd.run ls命令从salt.client.LocalClient.cmd_cli发布到master,获取一个Jobid,根据jobid获取命令执行结果。
  • 第三步:master接收到命令后,将要执行的命令发送给客户端minion。
  • 第四步:minion从消息总线上接收到要处理的命令,交给minion._handle_aes处理。
  • 第五步:minion._handle_aes发起一个本地线程调用cmdmod执行ls命令。线程执行完ls后,调用minion._return_pub方法,将执行结果通过消息总线返回给master。
  • 第六步:master接收到客户端返回的结果,调用master._handle_aes方法,将结果写的文件中。
  • 第七步:salt.client.LocalClient.cmd_cli通过轮询获取Job执行结果,将结果输出到终端

Salt的优势

  • 基于 C/S 架构设计,部署简单方便。
  • 主控端(Master)和被控端(Minion)基于证书认证,安全可靠.
  • 配置简单、功能强大,可扩展性强 。
  • 支持 API 及自定义模块,可以通过 Python 轻松扩展 。
  • 速度优于其他自动化配置管理工具 。
  • 支持现如今所有流行的云平台及 Docker 和 openstack。

二、Salt的安装

Salt 的依赖组件大家可 以参考如下网址: http://docs.saltstack.com/en/latest/topics/installation/index.html

Salt 目前的通信模式总共分为两种模式 : ZeroMQ 和 REAT。 鉴于 REAT 目前还不是太 稳定,我们在这里选择 ZeroMQ 模式 。

1、环境介绍

所有主机均已关闭selinux与防火墙

机器主机名 角色 IP 系统
server Master 172.17.7.101 CentOS7.5 x86_64
node1 Minion 172.17.7.102 CentOS7.5 x86_64
node2 Minion 172.17.7.103 CentOS7.5 x86_64

2、Master安装(server)

#更改主机名
[root@linuxli ~]# hostnamectl set-hostname server

#配置IP地址
[root@server ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:da:bd:33 brd ff:ff:ff:ff:ff:ff
    inet 172.17.7.101/16 brd 172.17.255.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::8670:9455:18a2:d70a/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

#安装epal源(包含salt的各种安装包)
[root@server ~]# yum -y install epel-release

#安装salt-master
[root@server ~]# yum -y install salt-master

#启动master
[root@server ~]# systemctl enable salt-master.service
Created symlink from /etc/systemd/system/multi-user.target.wants/salt-master.service to /usr/lib/systemd/system/salt-master.service.

[root@server ~]# systemctl start salt-master.service

#查看版本
[root@server ~]# salt --version
salt 2015.5.10 (Lithium)

#查看salt依赖包的版本
[root@server ~]# salt --versions-repo
           Salt: 2015.5.10
         Python: 2.7.5 (default, Apr 11 2018, 07:36:10)
         Jinja2: 2.8.1
       M2Crypto: 0.21.1
 msgpack-python: 0.5.6
   msgpack-pure: Not Installed
       pycrypto: 2.6.1
        libnacl: Not Installed
         PyYAML: 3.10
          ioflo: Not Installed
          PyZMQ: 14.7.0
           RAET: Not Installed
            ZMQ: 4.1.4
           Mako: Not Installed
        Tornado: Not Installed
        timelib: Not Installed
       dateutil: Not Installed

#查看安装目录
[root@server ~]# tree /etc/salt/

/etc/salt/
├── master
└── pki
    └── master
        ├── master.pem
        ├── master.pub
        ├── minions
        ├── minions_autosign
        ├── minions_denied
        ├── minions_pre
        └── minions_rejected


3、Minion安装(node1+node2)

#更改主机名
[root@linuxli ~]# hostnamectl set-hostname node1

#配置IP
[root@node1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值