自动化运维工具--saltstack部署及使用

目录

一、saltstack简介

1、介绍

2、Salt的核心功能

3、saltstack通信机制

二、saltstack部署

1、部署环境

2、配置yum源

3、安装master与minion

4、连接认证master和minion

三、salt运行

1、执行格式

2、实操演示


一、saltstack简介

1、介绍


saltstack是一个配置管理系统(客户端和服务端),能够维护预定义状态的远程节点。
saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据。
saltstack是运维人员提高工作效率、规范业务配置与操作的利器。


2、Salt的核心功能


①使命令发送到远程系统是并行的而不是串行的
②使用安全加密的协议
③使用最小最快的网络载荷
④提供简单的编程接口
Salt同样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性。


3、saltstack通信机制


SaltStack 采用 C/S模式,minion与master之间通过ZeroMQ消息队列通信,默认监听4505端口。
Salt Master运行的第二个网络服务就是ZeroMQ REP系统,默认监听4506端口。

二、saltstack部署

1、部署环境

主机名IP地址服务
PC1192.168.30.11salt-master
PC2192.168.3.12salt-minion

2、配置yum源

sudo rpm --import https://repo.saltproject.io/py3/redhat/7/x86_64/latest/SALTSTACK-GPG-KEY.pub
curl -fsSL https://repo.saltproject.io/py3/redhat/7/x86_64/latest.repo | sudo tee /etc/yum.repos.d/salt.repo

3、安装master与minion

PC1执行:
yum install -y salt-master	    
#安装master端
systemctl enable  --now  salt-master	
#开机自启并启动master服务
PC2执行:
yum install -y salt-minion
#安装minion端
systemctl enable --now salt-minion.service  
#开机自启并启动minion服务

4、连接认证master和minion

认证原理:

①minion在第一次启动时,会在/etc/salt/pki/minion/下自动生成一对密钥,然后将公钥发给master

②master收到minion的公钥后,通过salt-key命令接受该公钥。此时master的/etc/salt/pki/master/minions目录将会存放以minion id命名的公钥,然后master就能对minion发送控制指令了

PC1执行:
lsof -i:4506
#查看4506端口端口状态如下,有监听但是无建立连接的。
COMMAND      PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
salt-mast 101552 root   43u  IPv4 162865      0t0  TCP *:4506 (LISTEN)
lsof -i:4505
#查看4505端口端口状态如下,有监听但是无建立连接的。
COMMAND      PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
salt-mast 101546 root   35u  IPv4 154229      0t0  TCP *:4505 (LISTEN)
PC2执行:
rpm -qc salt-minion
#查找minion配置文件位置
vim /etc/salt/minion
#打开配置文件修改第16行内容,去掉注释加上自己的master地址然后保存退出
.
.
master: 192.168.30.11
.
.
systemctl restart salt-minion.service
#重启minion服务使得配置生效
PC1执行:
lsof -i:4506
#查看4506端口状态如下,一个服务监听端口,一个master与pc2建立连接的端口。
COMMAND      PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
salt-mast 101552 root   43u  IPv4 162865      0t0  TCP *:4506 (LISTEN)
salt-mast 101552 root   51u  IPv4 219147      0t0  TCP pc1:4506->192.168.30.12:57896 (ESTABLISHED)
lsof -i:4505
#查看4505端口端口状态如下,minion还在等待master端执行命令允许minion连接。
COMMAND      PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
salt-mast 101546 root   35u  IPv4 154229      0t0  TCP *:4505 (LISTEN)

PC1执行:
使用salt-key命令加参数,配置master允许minion连接-L                 列出所有公钥信息-a minion地址      接受指定minion等待认证的key-A                 接受所有minion等待认证的key-r minion地址      拒绝指定minion等待认证的key-R                 拒绝所有minion等待认证的key-f minion地址      显示指定key的指纹信息-F                 显示所有key的指纹信息-d minion地址      删除指定minion的key-D                 删除所有minion的key-y                 自动回答yes
#查看有哪些主机等待连接
salt-key -A
#允许所有主机连接,具体看下图1操作
lsof -i :4505
#查看客户端是否与master建立连接了,下图2

三、salt运行

1、执行格式

salt [options] '<target>' <function> [arguments]
#执行格式
target:指定哪些minion,默认的规则是使用glob匹配minion id        # salt '*' test.ping
targets也可以使用正则表达式        # salt -E 'server[1-3]' test.ping
targets也可以指定列表              # salt -L 'server2,server3' test.ping
funcation:module提供的功能,Salt内置了大量有效的functions
arguments:通过空格来界定参数
# 常用target参数-E       正则匹配-L       列表匹配 -S       CIDR匹配网段-G       grains匹配--grain-pcre     grains加正则匹配-N       组匹配-R       范围匹配-C       综合匹配(指定多个匹配)-I       pillar值匹配
# 常用的options--version             查看saltstack的版本号--versions-report     查看saltstack以及依赖包的版本号-h       查看帮助信息-c CONFIG_DIR         指定配置文件目录(默认为/etc/salt/)-t TIMEOUT            指定超时时间(默认是5s)--async     异步执行-v      verbose模式,详细显示执行过程--username=USERNAME      指定外部认证用户名--password=PASSWORD      指定外部认证密码--log-file=LOG_FILE      指定日志记录文件

2、实操演示

1、连通性测试
salt '*' test.ping
#测试所有minion与master的连通性
salt 'pc2' test.ping
##测试pc2主机minion与master的连通性
2、安装软件
salt 'node1' pkg.install httpd
3、卸载软件
salt 'node1' pkg.remove httpd
4、测试各种模块
salt '*' test.echo 'hello'
salt '*' network.ping baidu.com        
# 使用ping命令测试到某主机的连通性
salt '*' network.connect baidu.com 80  
# #测试minion至某一台服务器的网络是否连通
salt '*' network.get_hostname  
# 获取主机名
salt '*' network.active_tcp    
# 返回所有活动的tcp连接
salt '*' network.ip_addrs      
# 返回一个IPv4的地址列表
alt '*' network.get_fqdn       
# 查看主机的fqdn(完全限定域名)

 

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

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

相关文章

2023国际数模A题-购物评论的数据分析【具体分析+代码 持续更新!!】

问题1:请建立文本分析的数学模型 商品评论,统计评论中单词的出现频率,利用附录一和附录二中的评论绘制单 词云图,并进行数据和信息的可视化分析。 解答: 建立文本分析的数学模型 首先,我们需要对商品评论进行文本处理,包括去除停用词、词干提取、词义还原等操作。然后…

连锁反应开始了!Linux 发行版迎新变化!

任何企业都有合法权利捍卫其模型和产品。撇开大量不真正了解开源许可证如何工作的人不谈&#xff0c;我们的印象是&#xff0c;有很多人觉得仅仅因为这是Linux&#xff0c;他们就有某种权利免费获得它。但事实上&#xff0c;他们没有。这不是自由软件中的“自由”的意思&#x…

浮点型在内存中的存储

目录 1.浮点数是什么&#xff1f; 2. 浮点数存储规则 1.浮点数是什么&#xff1f; 就是数学中的小数。 常见的浮点数&#xff1a; 3.14159 1E10&#xff08;1*10^10&#xff09; 浮点数家族包括&#xff1a; float、double、long double 类型。 浮点数表示的范围&#x…

【微信小程序】要在两个<view>之间绘制一条分割线,使用border属性和样式

要在两个<view>之间绘制一条分割线&#xff0c;可以使用border属性以及适当的样式设置。以下是一个示例代码&#xff1a; <view class"container"><view class"content">内容</view><view class"divider"></v…

前端 | ( 十二)CSS3简介及基本语法(中)| 变换、过渡与动画 | 尚硅谷前端html+css零基础教程2023最新

学习来源&#xff1a;尚硅谷前端htmlcss零基础教程&#xff0c;2023最新前端开发html5css3视频 系列笔记&#xff1a; 【HTML4】&#xff08;一&#xff09;前端简介【HTML4】&#xff08;二&#xff09;各种各样的常用标签【HTML4】&#xff08;三&#xff09;表单及HTML4收尾…

iOS and Andriod兼容问题汇总,持续添加,期待一起进步

以下是一些具体的元素和方法在iOS和Android之间可能存在的兼容性问题及其解决方案&#xff1a; fixed定位在iOS上的兼容问题&#xff1a;在iOS中&#xff0c;使用fixed定位时会出现滑动卡顿的现象。解决方案&#xff1a;使用transform: translateZ(0)或者-webkit-overflow-scro…

【C++基础(六)】类和对象(中) --构造,析构函数

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C初阶之路⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习C   &#x1f51d;&#x1f51d; 类和对象-中 1. 前言2. 构造函数3. 构造函数的特性4…

分布式系统的应用程序性能监视工具-skywalking

分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。提供分布式链路日志追踪、剖析、服务网格遥测分析、度量聚合和可视化一体化解决方案。 在应用系统进行实时监控,实现对应用性能管理和故障定位的系统化解决方案中常用的…

数据结构问答8

查找 1. 一些基本概念 关键字:能唯一标识该元素 查找:给定值k,在含n个元素的表中找出关键字==k的元素。找到返回其位置信息,否则返回-1。 动、静态查找表:查找同时对表进行修改(插入、删除等),相应的表为动态,否则为静态。 内、外查找:整个查找过程在内存中进行…

爬虫小白-如何辨别是否有cookie反爬案例

目录 一、Cookie介绍二、cookie生成来源区分查找三、如何判断是否有cookie反爬四、来自服务器生成的cookie反爬解决方法五、来自js生成的cookie反爬解决方法 一、Cookie介绍 先推荐该篇文章简单了解Cookie、Session、Token、JWT1、cookie的类型&#xff1a;会话cookie和持久co…

OpenCV——报错解决:error: ‘VideoCapture’ was not declared in this scope

代码&#xff1a; #include <opencv2/opencv.hpp>cv::Mat frame; std::string video_path "XXX"; VideoCapture capture(video_path); capture >> frame;原因&#xff1a; 未使用cv的命名空间 解决办法&#xff1a; 在cv::Mat frame;语句前面加入&a…

[驱动开发]字符设备驱动应用——点灯

点亮开发板stm32mp157的三盏灯 //头文件 #ifndef __LED_H__ #define __LED_H__//封装GPIO寄存器 typedef struct { volatile unsigned int MODER; // 0x00volatile unsigned int OTYPER; // 0x04volatile unsign…

Langchain 的 Conversation buffer window memory

Langchain 的 Conversation buffer window memory ConversationBufferWindowMemory 保存一段时间内对话交互的列表。它仅使用最后 K 个交互。这对于保持最近交互的滑动窗口非常有用&#xff0c;因此缓冲区不会变得太大。 我们首先来探讨一下这种存储器的基本功能。 示例代码&…

C语言——指针和数组练习题解析

指针和数组习题 前言&#xff1a;一、一维数组二、字符数组三、二维数组四、指针题目 前言&#xff1a; 学习了指针的初阶和进阶后&#xff0c;已经对指针有了一定了解。下面就需要做题目&#xff0c;去巩固所学的知识。 对数组名的理解&#xff1a; 数组名是数组首元素的地址…

Linux Day01

目录 一、Linux终端介绍 二、Linux目录介绍 1.目录结构 2.常见目录说明 3.绝对路径与相对路径 4.家目录 一、Linux终端介绍 二、Linux目录介绍 Linux目录&#xff1a;是从根目录"/"开始的 是一棵倒着的树 1.目录结构 2.常见目录说明 目前记住 bin 存放常用命…

跨境独立站如何应对恶意网络爬虫?

目录 跨境出海独立站纷纷成立 爬虫威胁跨境电商生存 如何有效识别爬虫&#xff1f; 技术反爬方案 防爬虫才能保发展 中国出海跨境电商业务&#xff0c;主要选择大平台开设店铺&#xff0c;例如&#xff0c;亚马逊、eBay、Walmart、AliExpress、Zalando等。随着业务的扩大&…

mysql or 阿里云RDS 随记

文章目录 函数SQL优化表分区索引水位线执行计划&#xff0c;explain 函数 SQL优化 表分区 索引 水位线 执行计划&#xff0c;explain EXPLAIN 是 MySQL 中的一个关键字&#xff0c;用于解释查询执行计划&#xff0c;帮助你理解查询是如何执行的以及使用了哪些索引。执行 …

使用springboot进行后端开发100问

properties和yaml文件怎么互转 安装插件 properties文件和yaml文件区别 properties 文件通过“.”和“”赋值&#xff0c;值前不加空格&#xff0c;yaml通过“:”赋值&#xff0c;值前面加一个空格&#xff1b;yaml文件缩进用空格&#xff1b; properties只支持键值对&#x…

Linux内核的USB 框架

Linux内核的USB框架是管理USB设备的核心组件之一&#xff0c;它负责处理与USB设备相关的请求和操作&#xff0c;并提供了一些通用的函数和数据结构&#xff0c;以简化设备驱动程序的开发。 在Linux内核的USB框架中&#xff0c;最重要的两个结构体是usb_driver和usb_device。us…

Ubuntu下打开QtCreator环境变量LD_LIBRARY_PATH与终端不一致

问题描述&#xff1a; 在unbuntu下使用QtCreator编译、运行程序时&#xff0c;总是出现XXX.so: cannot open shared object file: No such file or directory这类问题&#xff0c;但是在终端中编译或者运行程序则不会出现这些问题。在网上查了好久才明白QtCreator在打开时&…