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

news2024/10/10 19:27:13

目录

一、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.coloradmin.cn/o/789995.html

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

相关文章

[护网杯 2018]easy_tornado1

进入环境后有三个路径链接 访问/flag提示会说flag在/fllllllllllag里 值得注意的是访问后网页url发生的变化&#xff0c;这里居然有两个参数 替换掉filename的值后页面url再次发生变化&#xff0c;网页只有一个msg传参的数据 访问welcome.txt&#xff0c;只是回显了一个render…

一个灵活、现代的Android应用架构

一个灵活、现代的Android应用架构 学习Android架构的原则&#xff1a;学习原则&#xff0c;不要盲目遵循规则。 本文旨在通过示例演示实际应用&#xff1a;通过示范Android架构来进行教学。最重要的是&#xff0c;这意味着展示出如何做出各种架构决策。在某些情况下&#xff0…

qt登录框

#include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {//窗口的设置this->setFixedSize(500, 400); //设置固定大小this->setWindowOpacity(0.95); //设置透明度this->setWindowTitle("鹏哥快聊"); // this->setWin…

【node-1】node validation exception. bootstrap checks failed

记录ElasticSearch 内存分配不足报错 背景做出的改变说在最后&#xff1a;最后访问es&#xff1a; 背景 从报错信息中看到&#xff0c;文件&#xff0c;虚拟内存的最大值太低&#xff0c;我们需要调整设置虚拟内存大小&#xff0c;以满足ElasticSearch 运行需求。 做出的改变 …

WPF icon的设置

想给控件设置个圆形图片&#xff0c;代码如下&#xff1a; ​<Setter Property"Icon"><Setter.Value><Image Source"/WpfApp1;component/Resource/1.ico" Width"16" Height"16"/></Setter.Value></Setter&…

面向对象编程:从创建类到封装与构造方法的探索

1. 代码如何创建类&#xff1f; 在面向对象编程中&#xff0c;类是对一类事物的抽象&#xff0c;包含了静态的属性&#xff08;成员变量&#xff09;和动态的行为&#xff08;成员方法&#xff09;。在Java中&#xff0c;创建类的格式如下&#xff1a; 修饰词 class 类名 {//…

react实现页面动态表单设计器(自定义推拽表单)

react实现页面动态表单设计器&#xff08;自定义推拽表单&#xff09; 实现效果安装插件使用组件介绍基本设置&#xff0c;可设置控件标签&#xff0c;是否必填&#xff0c;校验规则校验规则有如下几种多选&#xff0c;下拉&#xff0c;单选可动态设置每个选择的label以及值 实…

ROS Neotic(Ubuntu 20.04)如何正确安装OpenCV

自定义OpenCV版本 一、ROS的安装二、OpenCV编译安装三、cv_bridge编译安装四、温馨提示 一、ROS的安装 鱼香ROS提供了一个全面且方便的脚本&#xff0c;可以直接运行来安装系统对应版本的ROS&#xff0c;同时也可以使用该命令来安装许多有趣的东西 wget http://fishros.com/i…

Android 实现阅读用户协议的文字控件效果

开发中&#xff0c;经常要用到一些阅读隐私协议的场景&#xff0c;原生的textview控件很难做到在一个控件里有两个点击事件&#xff0c;那现在就来安利一个强大的组件——SpannableStringBuilder。 先看看效果&#xff1a; 直接上代码&#xff0c;布局文件&#xff1a; <Li…

线性DP--BOX

还没学&#xff0c;等学完再仔细写。 #include<bits/stdc.h> using namespace std; typedef long long ll; ll a[1000010]; ll vis[1000010]; ll f[1000010][3]; int main() {ll n,m;cin>>n;for(int i1;i<n;i){cin>>a[i];}for(int i1;i<n;i){cin>&g…

top工具使用

文章目录 top命令简介top命令输出信息系统信息运行进程信息 top命令参数top命令快捷键自定义字段显示 top命令简介 top命令是Linux下常用的性能分析工具&#xff0c;可用于实时查看系统运行状态以及各个进程的资源占用情况。通常在系统出现CPU负载异常或者内存占用过高时&…

计算机视觉(三)未有深度学习之前

文章目录 图像分割基于阈值、基于边缘基于区域、基于图论 人脸检测Haar-like特征级联分类器 行人检测HOGSVMDPM 图像分割 把图像划分成若干互不相交的区域。经典的数字图像分割算法一般是基于灰度值的两个基本特征之一&#xff1a;不连续性和相似性。 基于阈值、基于边缘 基于…

数据可视化(3)

1.饼状图 #饼状图 #pie&#xff08;x,labels,colors,labeldistance,autopct,startangle,radius,center,textprops&#xff09; #x,每一块饼状图的比例 #labels:每一块饼形图外侧显示的文字说明 #labeldistance&#xff1a;标记的绘制位置&#xff0c;相对于半径的比例&#xf…

【模拟IC】国微微电子模拟IC岗笔试复盘

前言 对2023的国微微电子的笔试题进行复盘&#xff0c;答案仅供参考&#xff0c;题型分别有选择题&#xff0c;填空题&#xff0c;简答题以及分析题。一共一百分。麻烦大家点点关注&#xff0c;祝大家拿下大厂sssp,拿下心仪的工作。 一、选择题填空题简答题 套筒式放大器与折…

微服务测试是什么?

微服务测试是一种特殊的测试类型&#xff0c;因为它涉及到多个独立的服务。以下是进行微服务测试的一般性步骤&#xff1a; 【B站最通俗易懂】Python接口自动化测试从入门到精通&#xff0c;超详细的进阶教程&#xff0c;看完这套视频就够了 1. 确定系统架构 了解微服务架构对…

【沐风老师】3dMax模型贴图贴画插件使用方法详解

3dMax模型贴图贴画插件使用方法 3dMax模型贴图贴画插件(3dmax贴花放置器),是在3dMax对象上放置贴花时使用的一种工具,可以帮助你加快工作速度。现代化的用户界面,能够保留贴花的纵横比、捕捉角度、通过角点或中心轴调整贴花大小的能力、贴花网格的实时投影、创建和编辑“*…

nginx的快速入手(基本命令)

nginx的快速入手&#xff08;基本命令&#xff09; 1.下载 下载地址&#xff1a;nginx: download 以win的为例。单机下载windows的。 下载完成之后直接解压 2.使用 查看版本 nginx -v 验证配置文件正确吗 就是检查自己修改的配置文件有没有语法上的错误 nginx -t 启动 sta…

多线程(JavaEE初阶系列4)

目录 前言&#xff1a; 1.单例模式 1.1饿汉模式 1.2懒汉模式 1.3结合线程安全下的单例模式 1.4单例模式总结 2.阻塞式队列 2.1什么是阻塞队列 2.2生产者消费者模型 2.2.1 上下游模块之间进行“解耦合” 2.2.2削峰填谷 2.3阻塞队列的实现 结束语&#xff1a; 前言&a…

Java开发 - 深入理解Redis Cluster的工作原理

前言 前面我们讲过Redis Cluster的搭建方式&#xff0c;也是本着应用优先的原则&#xff0c;所以对其基础概念和原理几乎没有涉及&#xff0c;但当学会了Redis集群的搭建方式之后&#xff0c;对于其原来我们还是要知道一些的&#xff0c;所以这篇博客&#xff0c;我们将一起来…

数据结构【查找】

第八章 查找 提前了解&#xff1a; 1、关键字&#xff1a; 若关键字能唯一标识一个数据元素&#xff0c;则关键字称为主关键字&#xff1b;若能标识若干个数据元素的关键字称为次关键字&#xff1b; 2、查找&#xff08;检索&#xff09;&#xff1a;顾名思义&#xff0c;给定…