SaltStack自动化运维部署

news2024/11/12 11:15:57

一.什么是SaltStack

SaltStack是一个服务器基础设施管理工具,它具有配置管理,远程执行,监控等功能,SaltStack由Python语言编写,是非常简单易用和轻量级的管理工具。

二.为什么使用SaltStack

为同时管理多台机器,与传统的Xshell不同的是它不需要与每台主机手动建立链接,而是在客户端安装客户端应用程序Minion,由客户端应用程序主动连接服务端Master。

 三.SaltStack原理

        SaltStack由Master和Minion构成,Master是服务端,表示一台服务器,Minion是客户服务器端,表示多台服务器

        在 Master 上发送命令给符合条件的 Minion,Minion 就会执行相应的命令。Master 和 Minion 之间是通过 ZeroMQ(消息队列)进行通信。

        Saltstack 的 Master 端监听 45054506 端口,4505为 Saltstack 的消息发布端口,4506为 Saltstack 客户端与服务端通信的端口。Saltstack 客户端程序并不监听端口,当客户端启动后,会主动连接 Master 端注册,然后一直保持该 TCP 连接,而 Master 通过这条 TCP 连接对客户端进行控制。如果连接断开,aster 对客户端将不能进行控制。但是,当客户端检查到连接断开后,会定期的向Master 端请求注册连接。

四.SaltStack部署 

1.设置系统基础环境

(1)修改host文件

192.168.10.101 master
192.168.10.102 minion01
192.168.10.103 minion02

 (2)关闭防火墙和内核安全机制

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled

(2)按要求设置主机名称

hostnamectl set-hostname  名称

 2.安装Master

将所需rpm包拷贝到服务器

rpm -ivh salt-3006.4-0.x86_64.rpm


rpm -ivh salt-master-3006.4-0.x86_64.rpm 

 备注:
        以下软件包为扩展 saltstack 的可选组件。
        salt-ssh:主要作用是不需要安装 minion,只要 ssh 协议开放,即可远程执行命令,可用作拿到一批新机器,批量配置时使用,也可以直接通过 salt-ssh 不安装 minion 进行管理。
        salt-syndic:通过 Syndic,可以建立多层级的Salt拓扑,Syndic 下的Minions 即可通过 syndic所在的 Master 进行管理,也可以通过 MasterOfMaster 及更高层级的 Master 进行管理,架构变得异常灵活,
        salt-cloud:salt cloud 目前已经提供了对腾讯云平台的管理支持,一些常见的云平台管理功能、管理操作已经都可以做到通过 salt cloud 集成到自有的技术平台上做统一的资源管理了。
        salt-api:salt-api 是我们通过 restful-api 调用 salt-master 的接口,且调用的时候必须通过认证才能调用,认证的用户为系统用户

3. 配置Master

(1)修改Master的配置文件

[root@master ~]# vim /etc/salt/master

interface: 192.168.10.101
auto_accept: True

file_roots:
  base:
    - /srv/salt

nodegroups:
  group1: 'web01'
  group2: 'web02'

pillar_opts: True
pillar_roots:
  base:
    - /srv/pillar

备注:

file_roots:
  base:
    - /srv/salt

开启SaltStack文件根目录位置,注意这个目录默认没有创建,需要手动创建

pillar_opts: True

开启pillar功能,同步文件功能
pillar_roots:
  base:
    - /srv/pillar

pillar的主目录,需要自己创建

nodegroups:
  group1: 'web01'
  group2: 'web02'

设置主机组,group1:“web01”组中有多个成员就用逗号隔开——》group: 'web01,web02'

(2)创建相关目录

 mkdir /srv/salt
 mkdir /srv/pillar

 (3)开启Master并设置为开机自启

systemctl start salt-master
systemctl enable salt-master

(4)查看相关端口(4505,4506),确保Master正常开启 

[root@master ~]# netstat -anpt | grep salt
tcp        0      0 192.168.10.101:4505     0.0.0.0:*               LISTEN      1760/salt-master Pu 
tcp        0      0 192.168.10.101:4506     0.0.0.0:*               LISTEN      1766/salt-master Re 

4.安装Minion 

将所需rpm包拷贝到服务器

rpm -ivh salt-3006.4-0.x86_64.rpm


rpm -ivh salt-master-3006.4-0.x86_64.rpm 

5.配置Minion

(1)修改Minion的配置文件

vim /etc/salt/minion

master: 192.168.10.101
id: web01                #添加到相关组

注意:
        如果修改了 minion 端的 id, minion 会重新注册,向 master 发送新的 key,老的注册信息就失效了,但此时 master 仍然会连接老的 minion,于是就会报错,
        解决方法:可以删除掉老的 minion 注册信息,Master目录/etc/salt/pki/master/minions,默认会使用minion 端的 ip 地址作为 key 名称。将以前注册的 ID 删掉,即可。

(2) 启动Minion并设置为开机自启

systemctl start salt-minion
systemctl enable salt-minion

备注:

        当 Minion 启动后,会自动生成公钥和私钥,并将公钥发送到Master端。Minion不监听端口,全靠和Master保持长连接,可通过netstat -anpt | grep salt命令查看是否连接成功,到此SaltStack安装完成。

(3)查看端口验证

[root@minion01 ~]# netstat -anpt | grep salt
tcp        0      0 192.168.10.102:42312    192.168.10.101:4506     ESTABLISHED 2153/salt-minion Mu 
tcp        0      0 192.168.10.102:48640    192.168.10.101:4505     ESTABLISHED 2153/salt-minion Mu

(4)Master查看连接

[root@master minions]# netstat -anpt | grep salt
tcp        0      0 192.168.10.101:4505     0.0.0.0:*               LISTEN      1760/salt-master Pu 
tcp        0      0 192.168.10.101:4506     0.0.0.0:*               LISTEN      1766/salt-master Re 
tcp        0      0 192.168.10.101:4506     192.168.10.103:60084    ESTABLISHED 1766/salt-master Re 
tcp        0      0 192.168.10.101:4505     192.168.10.102:48640    ESTABLISHED 1760/salt-master Pu 
tcp        0      0 192.168.10.101:4505     192.168.10.103:60734    ESTABLISHED 1760/salt-master Pu 
tcp        0      0 192.168.10.101:4506     192.168.10.102:42312    ESTABLISHED 1766/salt-master Re 

6.Master端查看Minion密钥

        在 minion 启动后,会连接master,并且会请求 master 为其签发证书,待证书签发完成后,代表master 可以信任该 minion,并且 minion 和 master 端的通信是经过加密的。我们可以通过 salt-key命令管理 minion 秘钥。

(1)Master端查看介绍的Minion端

[root@master minions]# salt-key -L
Accepted Keys:
web01
web02
Denied Keys:
Unaccepted Keys:
Rejected Keys:

(2)获取Minion端指纹码

[root@master minions]# salt-key -f web01
Accepted Keys:
web01:  05:28:c4:39:b1:55:24:2b:42:18:6a:70:d9:9f:51:fa:a3:c3:66:df:0c:bd:0c:47:d9:26:f7:c9:7c:9a:05:4e

(3)前往Minion端验证指纹码

[root@minion01 ~]# salt-call --local key.finger
local:
    05:28:c4:39:b1:55:24:2b:42:18:6a:70:d9:9f:51:fa:a3:c3:66:df:0c:bd:0c:47:d9:26:f7:c9:7c:9a:05:4e

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2147364.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BUUCTF-MISC-easycap

题目文件下载下来解压之后获得了一个流量包 用Wireshark打开 点击分析--追踪流--TCP--Stream 直接就获得了flag FLAG:385b87afc8671dee07550290d16a8071

乐队排练看谱软件有哪些 乐队排练编曲软件哪个好

提起乐队,人们想到的大多是乐队的主唱,乐队主唱是听众最能够直观感受到一支乐队演奏水平的部分。但是严格意义上来说,乐队的组成部分并不只有主唱,在整个乐队中除了主唱,恐怕吉他手或贝斯手就是最重要的组成部分了。乐…

如何看待IBM中国的裁员?

前言 IBM 作为一家全球知名的科技公司,在不同的历史时期都进行了不同程度的结构调整,包括在中国市场的裁员行动。这类事件通常反映了公司在面对全球经济环境变化和技术发展趋势时所作出的战略调整。 从宏观整体分析 1. 全球经济环境的影响 全球经济环境…

前海桂湾的海边免费停车场

​前海很多打工人晚上加班前海边散步的地方。相信很多前海打工人都曾经路过这个免费的停车场。坐标出于滨海大道的断头路区域。 看卫星地图可以发现,是个断头路,但是面积还是很大,停个几十辆车没问题。我就停过一次,周末带娃来这里…

ROS 设置dhcp option 6 多个地址格式

ROS routeOS 手工设置 dhcp 服务 option 6 多个dns 地址格式。字符串方式

erlang学习:Linux常用命令1

Linux的概念 Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件,故得此称呼),是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯本纳第克特托瓦(Linus…

AI技术好书推荐:《AI系统-原理与架构》

今年1月份在B站发现了一个B站宝藏博主,发布的一系列AI技术类科普视频内容很干,逻辑清晰,很多知识点讲的深入浅出,非常有用,被直接种粉。 后来这一系列的课程内容博主有了出书的计划,机缘巧合有幸参与部分章…

今日所学啊

ArcGIS打不开焦点统计如何解决_arcgis焦点统计打不开-CSDN博客 好吧其实最后焦点统计还是不行&#xff0c;我就去ArcGIS Pro里做焦点统计了哈哈哈哈哈哈哈 visual studio多工程项目管理_visual studio 的模块管理-CSDN博客 1.今天成功#include <QNetworkReply>不画红线…

软件验收测试报告模版分享?专业软件验收测试公司推荐

在现代软件开发中&#xff0c;软件验收测试报告是开发与交付过程中的重要环节&#xff0c;它不仅是对软件产品质量的把关&#xff0c;也是确保客户满意度的关键文档。 在验收测试过程中&#xff0c;测试团队会对软件的各项功能进行全面的测试&#xff0c;识别潜在的问题并进行…

pycv实时目标检测快速实现

使用python_cv实现目标实时检测 python 安装依赖核心代码快速使用实现结果展示enjoy python 安装依赖 opencv_python4.7.0.72 pandas1.5.3 tensorflow2.11.0 tensorflow_hub0.13.0 tensorflow_intel2.11.0 numpy1.23.5核心代码快速使用 # 使用了TensorFlow Hub和OpenCV库来实…

【AI大模型】LLM主流开源大模型介绍

目录 &#x1f354; LLM主流大模型类别 &#x1f354; ChatGLM-6B模型 2.1 训练目标 2.2 模型结构 2.3 模型配置(6B) 2.4 硬件要求 2.5 模型特点 2.6 衍生应用 &#x1f354; LLaMA模型 3.1 训练目标 3.2 模型结构 3.3 模型配置&#xff08;7B&#xff09; 3.4 硬件…

探索RESTful风格的网络请求:构建高效、可维护的API接口【后端 20】

探索RESTful风格的网络请求&#xff1a;构建高效、可维护的API接口 在当今的软件开发领域&#xff0c;RESTful&#xff08;Representational State Transfer&#xff09;风格的网络请求已经成为构建Web服务和API接口的标配。RESTful风格以其简洁、无状态、可缓存以及分层系统等…

YOLOv8的GPU环境搭建方法

首先说明这个环境搭建教程是基于电脑已经安装好CUDA和CUDNN的情况下&#xff0c;去搭建能够正确运行YOLOv8代码的Pytorch的GPU版本。具体安装方法可见&#xff1a;最适合新手入门的CUDA、CUDNN、Pytorch安装教程_cuda安装-CSDN博客 第一步&#xff1a;需要在cmd中创建虚拟环境c…

Mybatis缓存实现

01-一级缓存 演示案例首先创建sql查询语句 在对应接口中声明方法参数是Dept因为sql语句中的参数在Dept pojo类中都有所有声明pojo对象 由于返回的数量不知道是多少条所以用list接收,<>由于返回的是dept类数据所以泛型里传入Dept 一级缓存的介绍如下图 失效情况详细介绍…

【移动端开发】“明日头条APP”

文章目录 1 系统概述1.1研究背景1.2研究意义 2 系统设计2.1 关键技术2.2 系统设计2.2.1 系统功能模块2.2.2 数据库设计 3 系统实现3.1 数据模型3.1.1 NewsURL3.1.2 NewsType3.1.3 NewsInfo 3.2 数据库操作3.2.1 DBOpenHelper3.2.2 DBManager 3.3 适配器类3.3.1 AddItem3.3.2 In…

Python+PyCharm安装(最新)

目录 1.Python和PyCharm简介 2.环境检测 3.Python下载与安装 3.1Python下载 3.2Python安装 3.3python测试 4.PyCharm下载与安装 4.1PyCharm下载 4.2PyCharm安装 4.3PyCharm测试 4.4PyCharm应用 5.注意事项 5.1更新pip 5.2安装库 ​5.3查看已安装的库 6.总结 1.Py…

HAL库中的三种延时函数HAL_Delay、vTaskDelay和vTaskDelayUntil的区别

1、HAL_Delay() 阻塞型延时&#xff0c;实现方式是通过死循环方式实现的&#xff0c;不会释放掉cpu&#xff0c;会造成其他低优先级任务无法执行 2、vTaskDelay() 相对延时函数 void vTaskDelay(TickType_t xTicksToDelay); 相对延时函数:相对延时是指每次延时都是从任务执行…

基于三维地籍的全生命周期“一码管地”

随着国土空间治理现代化的不断推进&#xff0c;如何实现土地资源的高效管理和利用&#xff0c;成为了一个重要课题。今天&#xff0c;我们将探讨一种创新的土地管理模式——基于三维地籍的全生命周期“一码管地”。 一、土地管理面临的挑战 传统的土地管理模式存在信息孤岛、…

《Pure Transformers are Powerful Graph Learners》NIPS2022

摘要 论文展示了标准Transformer模型&#xff0c;无需针对图数据的特定修改&#xff0c;就可以在图学习领域取得有希望的结果&#xff0c;无论是在理论还是实践上。作者提出&#xff0c;通过将图中的所有节点和边视为独立的token&#xff0c;并通过适当的token嵌入增强它们&am…

C++初阶学习第六弹------标准库中的string类

目录 一.标准库中的string类 二.string的常用接口函数 2.1string类对象的构造 2.2 string的容量操作 2.3 string类的访问与遍历 2.4 string类对象的修改 2.5 string类常用的非成员函数 三、总结 一.标准库中的string类 可以简单理解成把string类理解为变长的字符数组&#x…