Saltstack(1)--基础介绍及安装部署

1.Saltstack的简介

  • saltstack是一个配置管理系统,能够维护预定义状态的远程节点
  • saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据
  • saltstack是运维人员提高工作效率、规范业务配置与操作的利器
  • 引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性

2.Saltstack的核心功能

  • 使命令发送到远程系统是并行的而不是串行的
  • 使用安全加密的协议
  • 使用最小最快的网络载荷
  • 提供简单的编程接口

3.Saltstack的通信机制

1>发布订阅机制:SaltStack 采用 C/S模式,minion与master之间通过ZeroMQ消息队列通信,默认监听4505端口

  • 主要做master发布
  • C/S模式是持续连接的
  • server端一旦需要新的数据进行部署时直接进行发布
  • 所有的客户端并行,所有的数据直接并行到客户端上,速度较快

Saltstack(1)--基础介绍及安装部署_第1张图片
2>请求响应机制:Salt Master运行的第二个网络服务就是ZeroMQ REP系统,默认监听4506端口

  • 4506端口是客户端向server端发送report信息所使用的

Saltstack(1)--基础介绍及安装部署_第2张图片

4.安装部署

1>配置master主机server1

  • 官网:https://www.saltstack.com/
  • 阿里云:https://developer.aliyun.com/mirror
  • yum install https://mirrors.aliyun.com/saltstack/yum/redhat/salt-repo-latest-2.el7.noarch.rpm #在阿里云上下载
  • cd /etc/yum.repos.d/
  • cat salt-latest.repo
  • yum list salt-master #查看版本是否大于3000.2,小于3000.2的版本有漏洞
  • yum repolist
  • yum install salt-master -y
  • systemctl enable --now salt-master #启动salt-master并设置开机自启动
  • netstat -antlp #查看端口,发现开启了4505和4506端口
  • /etc/salt/master #主配置文件

Saltstack(1)--基础介绍及安装部署_第3张图片Saltstack(1)--基础介绍及安装部署_第4张图片Saltstack(1)--基础介绍及安装部署_第5张图片Saltstack(1)--基础介绍及安装部署_第6张图片Saltstack(1)--基础介绍及安装部署_第7张图片在这里插入图片描述

  • ps ax #查看所有进程

  • yum install python-setproctitle.x86_64 -y #安装此包可以查看salt-master进程更多的信息

  • systemctl restart salt-master #重启

  • ps ax
    Saltstack(1)--基础介绍及安装部署_第8张图片
    Saltstack(1)--基础介绍及安装部署_第9张图片
    Saltstack(1)--基础介绍及安装部署_第10张图片
    2>配置minion主机server2和server3

  • yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm #在官网上下载

  • yum install salt-minion -y

  • vim /etc/salt/minion #更改配置文件,输入master端的ip地址, 注意缩进必须要顶格

  • 编辑内容为:master: 172.25.76.1

  • systemctl enable --now salt-minion #启动salt-minion并设置开机自启动

  • netstat -antlp #查看端口,发现只与4506端口连接

  • 需要先连接4505端口,接收master发送的数据,而连接4505端口则需要添加认证
    Saltstack(1)--基础介绍及安装部署_第11张图片Saltstack(1)--基础介绍及安装部署_第12张图片Saltstack(1)--基础介绍及安装部署_第13张图片在这里插入图片描述
    Saltstack(1)--基础介绍及安装部署_第14张图片
    Saltstack(1)--基础介绍及安装部署_第15张图片Saltstack(1)--基础介绍及安装部署_第16张图片在这里插入图片描述Saltstack(1)--基础介绍及安装部署_第17张图片
    3>配置master主机连接4505端口

  • yum install lsof -y #安装查看端口的命令

  • lsof -i :4505

  • lsof -i :4506

  • salt-key -L #列出所有的key,发现server2正在等待被签名,彼此间要交互公钥来做加密解密

  • salt-key -A #允许所有的

  • salt-key -a server3 #指定server3主机

  • salt-key -L #发现已经允许server2连接

  • lsof -i :4505 #此时4505端口server1和server2已经持续连接

  • salt '*' test.ping #不加‘’表示匹配当前目录下的所有内容,加‘’表示所有的Accepted Keys,test是模块,ping是方法

  • salt -E 'server[1-3]' cmd.run hostname #使用正则表达式来测试

  • salt -E 'server[1-3]' cmd.run df

  • salt -E 'server[1-3]' cmd.run 'df -h' #有多个参数需要用‘’或“”引起
    Saltstack(1)--基础介绍及安装部署_第18张图片在这里插入图片描述
    Saltstack(1)--基础介绍及安装部署_第19张图片Saltstack(1)--基础介绍及安装部署_第20张图片Saltstack(1)--基础介绍及安装部署_第21张图片Saltstack(1)--基础介绍及安装部署_第22张图片
    4>查看公钥的交换

  • 在server1上

  • yum install tree #安装tree

  • cd /etc/salt/pki #切换到自签名的存储目录pki下

  • tree . #查看结构

  • cd master/

  • md5sum master.pub #查看master的公钥

  • cd minions/ #当server2连接上之后,会在minions目录下创建与之同名的文件,此文件就是server2minion端发给master的公钥

  • md5sum server2 #查看server2minion端发给master的公钥

  • 在server2上

  • yum install tree #安装tree

  • cd /etc/salt/pki #切换到自签名的存储目录pki下

  • tree . #查看结构

  • cd minion/

  • md5sum minion_master.pub #查看master端的公钥

  • md5sum minion.pub #查看minion端的公钥
    在这里插入图片描述
    Saltstack(1)--基础介绍及安装部署_第23张图片Saltstack(1)--基础介绍及安装部署_第24张图片
    Saltstack(1)--基础介绍及安装部署_第25张图片
    Saltstack(1)--基础介绍及安装部署_第26张图片

5>问题

  • 1. 若更改主机名称后,会发现在master端连接的始终是更改之前连接的主机名称
  • 是因为在/etc/salt/minion_id 文件中记录了当前连接的主机名称,相当于一个缓存文件
  • 每次当minion端连接master时,会在minion_id中获取主机名称
  • 解决方法: 删掉minion_id中的内容,并重新启动minion
  • 2. 若在salt-key -L时,没有出现minion端的主机名称,可能是因为防火墙的问题
  • 解决方法: 关掉防火墙

你可能感兴趣的:(Saltstack)