欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

saltstac的简介和安装与配置

程序员文章站 2024-03-18 09:11:40
...

saltstack的简介和安装与配置

一.saltstac的简介

1.saltstack的简介

  • saltstack是一个配置管理系统,能够维护预定义状态(也就是预期的状态) 的远程节点。
    进行的操作会匹配预定义的状态,如安装软件会对依赖性进行解决达到最终安装的状态,而卸载时只会卸载指定的软件包,对其依赖性不进行操作。
  • saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据。
    这也是saltstack与ansible的不同。saltstack有agent。
  • saltstack是运维人员提高工作效率、规范业务配置与操作的利器。

Salt的核心功能

  • 使命令发送到远程系统是并行的而不是串行的
  • 使用安全加密的协议
  • 使用最小最快的网络载荷(消息队列)
  • 提供简单的编程接口(便于二次研发)

Salt同样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性。

2.saltstack的通信机制

SaltStack 采用 C/S模式,minion与master之间通过ZeroMQ(0MQ、ZMQ)消息队列通信,默认监听4505端口。

server端通过4505端口对client进行推送,如下图:
saltstac的简介和安装与配置
Salt Master运行的第二个网络服务就是ZeroMQ REP系统,默认监听4506端口。

master端通过4506端口接收minion端接收响应的消息

二.saltstack安装与配置

saltstack官网:https://www.saltstack.com/
实验环境:

server2 172.25.70.2 salt-master
server3 172.25.70.3 salt-minion
server4 172.25.70.4 salt-minion
上述主机关闭火墙及selinux 可以联网

1.下载repo文件
saltstack官网教程:https://repo.saltstack.com/#rhel

也可通过阿里镜像的教程(可能不是最新版本的):https://developer.aliyun.com/mirror/saltstack?spm=a2c6h.13651102.0.0.3e221b11ehPZLK

三台主机都下载repo文件

yum install -y  https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm

saltstac的简介和安装与配置2.分别安装salt-master和salt-minion

server端安装salt-master:

yum install -y salt-master 
systemctl enable --now salt-master 

查看server端的主配置文件

vim  /etc/salt/master

里面规定了推送消息的4505端口及接收响应消息的4506端口
saltstac的简介和安装与配置以及salt的base路径:
saltstac的简介和安装与配置查看进程

ps ax

saltstac的简介和安装与配置
如果想查看salt相关进程的一些信息,可以安装一个软件包:

yum install -y python-setproctitle.x86_64
systemctl restart salt-master 
ps ax

saltstac的简介和安装与配置
client端则安装salt-minion:

yum install salt-minion -y

修改minion的配置文件,添加master端信息:

vim /etc/salt/minion 
systemctl restart salt-minion
systemctl enable --now salt-minion

saltstac的简介和安装与配置3.查看端口连接
查看master端此时4505端口及4506端口的占有情况

yum install -y lsof
lsof -i :4505
lsof -i :4506

saltstac的简介和安装与配置此时的4505端口并没有与minion端建立通信,但4506端口已经进行了连接
这是因为master的4505端口需要认证,不能让所有minion都能连接,这样没有安全性。
此时minion端主机未通过认证,4505端口与其不能通信。

master端查看添加允许访问的主机:

salt-key -L #查看允许连接的主机
salt-key -A #允许所有minion端连接
salt-key -a server4 #添加指定主机

saltstac的简介和安装与配置saltstac的简介和安装与配置
此时master端和minion端会交换公钥

master主机的公钥在/etc/salt/pki/master下
saltstac的简介和安装与配置
saltstac的简介和安装与配置
minion主机的公钥在/etc/salt/pki/minion下
saltstac的简介和安装与配置
公钥的md5值相同:saltstac的简介和安装与配置
4.可能遇到的问题
当master端已经添加了minion主机后,如果minion主机修改了主机名,可能master端查看到的主机名依旧是原来的。

这是因为minion端的/etc/salt/minion_id记录着原本连接时的主机名,这是一个缓存文件。
所以把这个文件删除了就可以了。下次连接时这个文件会再次生成,记录新的主机名。
saltstac的简介和安装与配置