前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Saltstack 基础安装配置

Saltstack 基础安装配置

作者头像
老七Linux
发布2018-05-31 10:22:19
5550
发布2018-05-31 10:22:19
举报
一、初识自动化运维

在我接触自动化运维之前,就已经感受到了自动化的魅力,相信大家都有所了解。早起我们所用到的比较多的自动化工具就是 expectshell脚本,随着集群业务的日益扩张如上两种已经不可以满足我们目前的现状。

1.1 自动化优势:
  • 传统运维效率低,大多工作人为完成。
  • 传统运维工作繁琐,容易出错。
  • 传统运维每日重复做相同的事情。
  • 传统运维没有标准化流程。
  • 传统运维的脚本繁多,不能方便管理。
  • 自动化运维就是要解决上面所有问题。
二、常见自动化运维工具

Puppetwww.puppetlabs.com

基于rubby开发,c/s架构,支持多平台,可管理配置文件、用户、cron任务、软件包、系统服务等。 分为社区版(免费)和企业版(收费),企业版支持图形化配置。

Saltstack(官网 https://saltstack.com, 文档 docs.saltstack.com

基于python开发,c/s架构,支持多平台,比puppet轻量,在远程执行命令时非常快捷(消息队列),配置和使用比puppet容易,能实现puppet几乎所有的功能。

Ansiblewww.ansible.com

更加简洁的自动化运维工具,不需要在客户端上安装agent,基于python开发。可以实现批量操作系统配置、批量程序的部署、批量运行命令。

三、安装&&配置Saltstack
saltstack介绍

Saltstack 比 Puppet 出来晚几年,是基于Python 开发的,也是基于 C/S 架构,服务端 master 和客户端 minions ;Saltstack 和 Puppet 很像,可以说 Saltstatck 整合了 Puppet 和 Chef 的功能,更加强大,更适合大规模批量管理服务器,并且它比 Puppet 更容易配置。 三大功能: 远程命令执行,配置管理(服务,文件,cron,用户,组),云管理。 支持系统:大多数都支持,windows 上不支持安装 master。

https://docs.saltstack.com/en/latest/topics/index.html

  • 可以使用salt-ssh远程执行,类似ansible,
  • 也支持c/s模式,下面我们将讲述该种模式的使用,需要准备两台机器

IP 地址

作用

192.168.59.131

Server

192.168.59.138

Client

  • 设置hostname以及hosts,zhdy01,zhdy02
代码语言:javascript
复制
vim /etc/hosts
//增加如下:

192.168.59.131 zhdy01
192.168.59.138 zhdy02


当然你也许会有疑问,如果我们管理的是成千上万台机器,如何操作?
首先我们需要配置DNS把ip绑定在DNS上面,写个shell脚本分发到各个客户端即可!
  • 两台机器全部安装saltstack yum源
代码语言:javascript
复制
yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
131上执行
代码语言:javascript
复制
yum install -y salt-master salt-minion
138上执行
代码语言:javascript
复制
yum install -y salt-minion
3.2 配置启动选项

分别在两台测试记上编辑:

代码语言:javascript
复制
vim /etc/salt/minion
//zhdy01修改为:
master: zhdy01

//zhdy02修改为:
master: zhdy01

注意如上的zhdy02 client上面一定要配置master的 salt!!!

启动服务:

代码语言:javascript
复制
//zhdy01上启动:
# systemctl start salt-master; systemctl start salt-minion

//zhdy02上启动:
# systemctl start salt-minion

# ps aux | grep salt

服务端监听4505和4506两个端口,4505为消息发布的端口,4506为和客户端通信的端口。

四、配置认证

master端和minion端通信需要建立一个安全通道,传输过程需要加密,所以得配置认证,也是通过密钥对来加密解密的。

代码语言:javascript
复制
[[email protected] ~]# ls /etc/salt/pki/master/
master.pem  master.pub  minions  minions_autosign  minions_denied  minions_pre  minions_rejected

[[email protected] ~]# ls /etc/salt/pki/minion/
minion.pem  minion.pub

//其中minion.pem是私钥,minion.pub是公钥

说明:

代码语言:javascript
复制
-a 后面跟主机名,认证指定主机
-A 认证所有主机
-r 跟主机名,拒绝指定主机
-R 拒绝所有主机
-d 跟主机名,删除指定主机认证
-D 删除全部主机认证
-y 省略掉交互,相当于直接按了y

4.1 认证一台client

代码语言:javascript
复制
[[email protected] ~]# salt-key -a zhdy02
The following keys are going to be accepted:
Unaccepted Keys:
zhdy02
Proceed? [n/Y] y
Key for minion zhdy02 accepted.

查看当前key状态:

代码语言:javascript
复制
[[email protected] ~]# salt-key 
Accepted Keys:
zhdy02
Denied Keys:
Unaccepted Keys:
Rejected Keys:
代码语言:javascript
复制
[root@zhdy01 minions]# ls /etc/salt/pki/master/minions
zhdy01  zhdy02

当然如果你认为不通过允许就可以直接加入:

代码语言:javascript
复制
vi /etc/salt/master

修改auto_accept 自动接收minion的key:

auto_accept: Ture

把本机也允许一下:

代码语言:javascript
复制
[[email protected] minions]# salt-key -A

[[email protected] minions]# salt-key
Accepted Keys:
zhdy01
zhdy02
Denied Keys:
Unaccepted Keys:
Rejected Keys:
模拟场景:

删除所有的认证client

代码语言:javascript
复制
[[email protected] minions]# salt-key -D
The following keys are going to be deleted:
Accepted Keys:
zhdy01
zhdy02
Denied Keys:
zhdy02
Proceed? [N/y] Y
Key for minion zhdy02 deleted.
Key for minion zhdy01 deleted.
Key for minion zhdy02 deleted.

[[email protected] minions]# salt-key
Accepted Keys:
Denied Keys:
Unaccepted Keys:
Rejected Keys:

然后再次去添加:(出错了。。)

代码语言:javascript
复制
[[email protected] minions]# salt-key -A
The key glob '*' does not match any unaccepted keys.
解决方案:

全部的server和client上面重启salt-minion服务

代码语言:javascript
复制
[root@zhdy01 minions]# systemctl restart salt-minion

再次check:

代码语言:javascript
复制
[[email protected] minions]# salt-key
Accepted Keys:
zhdy01
zhdy02
Denied Keys:
Unaccepted Keys:
Rejected Keys:

手动删除一个client

代码语言:javascript
复制
[[email protected] minions]# salt-key -d zhdy02 -y
The following keys are going to be deleted:
Accepted Keys:
zhdy02
Key for minion zhdy02 deleted.
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016/11/02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、初识自动化运维
    • 1.1 自动化优势:
    • 二、常见自动化运维工具
    • 三、安装&&配置Saltstack
      • saltstack介绍
        • 131上执行
          • 138上执行
            • 3.2 配置启动选项
            • 四、配置认证
              • 模拟场景:
                • 解决方案:
                相关产品与服务
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档