saltstac的简介和安装与配置
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进行推送,如下图:
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
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端口
:以及salt的base路径:
查看进程
ps ax
如果想查看salt相关进程的一些信息,可以安装一个软件包:
yum install -y python-setproctitle.x86_64
systemctl restart salt-master
ps ax
client端则安装salt-minion
:
yum install salt-minion -y
修改minion的配置文件,添加master端信息:
vim /etc/salt/minion
systemctl restart salt-minion
systemctl enable --now salt-minion
3.查看端口连接查看master端此时4505端口及4506端口的占有情况
yum install -y lsof
lsof -i :4505
lsof -i :4506
此时的4505端口并没有与minion端建立通信,但4506端口已经进行了连接
这是因为master的4505端口需要认证,不能让所有minion都能连接,这样没有安全性。
此时minion端主机未通过认证,4505端口与其不能通信。
master端查看添加允许访问的主机:
salt-key -L #查看允许连接的主机
salt-key -A #允许所有minion端连接
salt-key -a server4 #添加指定主机
此时master端和minion端会交换公钥
master主机的公钥在/etc/salt/pki/master下
minion主机的公钥在/etc/salt/pki/minion下
公钥的md5值相同:
4.可能遇到的问题
当master端已经添加了minion主机后,如果minion主机修改了主机名,可能master端查看到的主机名依旧是原来的。
这是因为minion端的/etc/salt/minion_id记录着原本连接时的主机名,这是一个缓存文件。
所以把这个文件删除了就可以了。下次连接时这个文件会再次生成,记录新的主机名。
推荐阅读
-
saltstac的简介和安装与配置
-
Grafana 的简介和安装
-
Mongodb在Linux下的安装和启动和配置(转载) 博客分类: MongDB MongDB
-
MAC 下 Git的安装与基本配置 博客分类: Git安装 git mac 安装配置
-
MAC 下 Git的安装与基本配置 博客分类: Git安装 git mac 安装配置
-
Memcache升级版:CouchBase的安装配置与使用说明 博客分类: memcachecouchBase memcachecouchBasephp
-
Ubuntu系统中Docker的安装和配置(Docker入门笔记1)
-
人工智能实践:Tensorflow笔记00:anaconda,tensorflow,pycharm等一系列的安装与配置。
-
Java+Spring+MySql环境中安装和配置MyBatis的教程
-
Java+Spring+MySql环境中安装和配置MyBatis的教程