自动化运维—saltstack

一、自动化运维介绍

传统运维:传统运维效率低,大多工作需要人工完成,工作繁琐,容易出错,每日重复做相同的事情,没有标准化流程,脚本过多,不方便管理。

自动化运维:解决上面所有问题。

常见自动化运维工具:

  • Puppet:基于rubby开发,c/s架构,支持多平台,可管理配置文件、用户、cron任务、软件包、系统服务等。分为社区版和企业版,企业版支持图形化配置。
  • Saltstack:基于Python开发,c/s架构,支持多平台,比Puppet轻量,在远程执行命令时非常快捷,配置和使用比puppet容易,能实现puppet几乎所有的功能。
  • Ansible:更加简洁的自动化运维工具,不需要在客户端上安装客户端软件,基于Python开发的。可以实现批量操作系统配置、批量程序的部署、批量执行命令。

二、saltstack安装与启动

saltstack介绍文档: https://docs.saltstack.com/en/latest/topics/index.html

saltstack操作方式

  • 使用salt-ssh远程执行,类似ansible,
  • 支持c/s模式

现在按照c/s模式使用,需要准备两台机器其中一台做服务端,另一台做客户端

  • 服务端的ip 192.168.126.128
  • 客户端的ip 192.168.126.129

先修改两台机器上的hostname,之后再进行编辑/etc/hosts文件

9dbbf13b4dea8573f6ef560af6565eb34c1.jpg1c9241d6c9b6718d29e27347dc77bb7ec2c.jpg

两台机器上的的/etc/hosts文件都要按照上面的图所示进行修改

在两台机器上安装repo仓库,然后安装 salt-master 和salt-minion包

[root@lin-01 ~]# yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm

[root@lin-01 ~]# yum install -y salt-master salt-minion

0466272d00da7ec7c79e9bdc8730b2ee998.jpg

变价配置文件/etc/salt/minion修改如下

85d59de14dc7ca7006b5c6777312c69eba3.jpg

d84aaa6e2c920ba1407e01560039bad13e1.jpgee9a178af5c80f3eb248df7ddc6e8fc6c3a.jpg

  • 监听端口4505 作用是 发布消息;也就是zeromq.x86_64 0:4.1.4-7.el7,这个包的端口。
  • 监听端口4506 作用是salt-master和salt-minion通信

在129的机器上进行按照上面配置,其中129上面只要安装salt-minion这个包就好了(客户端不需要安装salt-master)

89db5e297459e15d78c2ba6fcd3991fd20e.jpg

三、saltstack配置认证

master端和minion端通信:

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

认证的过程:

  • minion在第一次启动时会在/etc/salt/pki/minion/下生成minion.pem和minion.pub,其中.pub为公钥,它会把公钥传输给master。
  • master第一次启动时也会在/etc/salt/pki/master下生成密钥对,当master接收到minion传过来的公钥后,(通过salt-key工具接受这个公钥)就会在/etc/salt/pki/master/minions/目录里存放刚刚接受的公钥,同时客户端也会接受master传过去的公钥,把它放在/etc/salt/pki/minion目录下,并命名为minion_master.pub
  • 通信过程需要借助salt-key工具来实现。
  • salt-key命令用法
参数作用
-a后面跟主机名,认证指定主机
-A认证所有主机
-r跟主机名,拒绝指定主机
-R拒绝所有主机
-d跟主机名,删除指定主机认证
-D删除全部主机认证
-y省略掉交互,相当于直接按了y

在129下salt-minion服务启动下,/etc/salt/pki/minion/生成私钥和公钥 

69c8698d5e1d612e74568ffd22410ea1038.jpg

在128下面etc/salt/pki/master下生成密钥对

786a4aead88c6321d298a06cfc9e95c3311.jpg

  • 现在用salt-key工具认证lin-02机器;salt-key -a hostname
  • 认证所有主机:salt-key -A
  • 删除全部主机认证: salt-key -D
  • 重新认证主机,可以salt-key -A,但是必须在两台机器上重启: systemctl restart salt-minion
  • 删除某个认证用户:salt-key -d lin-02 -y
  • 要继续认lin-02主机,需在lin-02上重启 systemctl restart salt-minion 服务。
  • 要重新认证,先把lin-02删除,载lin-02机器上重启服务,再用-a认证

四、saltstack远程执行命令

salt '*' test.ping:测试所有认证主机是否存活

17d4a1dac4ff02b9287aaa6800b1427a502.jpg

 注意:这里的*必须是在master上已经被接受过认证的客户端,可以通过salt-key查到,通常是我们已经设定的id值。也可以指定一个认证用户,比如 salt 'lin-02' test.ping


 

  • salt '*' cmd.run "命令" : 在所有认证用户上执行命令
  • 支持正则

 

 

转载于:https://my.oschina.net/u/4000361/blog/3018532

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值