首页 > 其他分享 >自动化运维工具——Saltstack部署及使用

自动化运维工具——Saltstack部署及使用

时间:2024-06-09 16:28:39浏览次数:26  
标签:运维 minion 端口 -- master key 自动化 Saltstack salt

目录

一、简介

1.定义

2.核心功能

3.通信机制

二、部署

1.配置yum源

2.安装服务

3.连接认证Master和Minion

三、实际运用

1.命令格式

2.演示操作

2.1连通性测试

2.2安装软件

2.3卸载软件

2.4测试模块


一、简介

1.定义

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

2.核心功能

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

Salt同样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性。

3.通信机制

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

二、部署

主机名IP地址
Salt-Master192.168.241.11
Salt-Minion192.168.241.22

1.配置yum源

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 | tee /etc/yum.repos.d/salt.repo

2.安装服务

#在Salt-Master
yum install -y salt-master
#安装master端
systemctl enable  --now  salt-master
#开机自启并启动master服务
#在Salt-Minion
yum install -y salt-minion
#安装minion端
systemctl enable --now salt-minion.service  
#开机自启并启动minion服务

3.连接认证Master和Minion

  • Minion在第一次启动时,会在/etc/salt/pki/minion/下自动生成一对密钥,然后将公钥发给master
  • Master收到minion的公钥后,通过salt-key命令接受该公钥。此时master的/etc/salt/pki/master/minions目录将会存放以minion id命名的公钥,然后master就能对minion发送控制指令了
#Master
lsof -i:4506
#查看4506端口端口状态如下,有监听但是无建立连接的。

lsof -i:4505
#查看4505端口端口状态如下,有监听但是无建立连接的。

#Minion
rpm -qc salt-minion
#查找minion配置文件位置
vim /etc/salt/minion
#打开配置文件修改第16行内容,去掉注释加上自己的master地址然后保存退出
.
-16- master: 192.168.30.11
.
systemctl restart salt-minion.service
#重启minion服务使得配置生效

#Master
lsof -i:4506
#查看4506端口状态如下,一个服务监听端口,一个master与pc2建立连接的端口。

lsof -i:4505
#查看4505端口端口状态如下,minion还在等待master端执行命令允许minion连接。

#Master执行命令

使用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
#允许所有主机连接
lsof -i :4505
#查看客户端是否与master建立连接了

三、实际运用

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.演示操作

2.1连通性测试

#连通性测试
salt '*' test.ping
#测试所有minion与master的连通性
salt 'node2.localdomain' test.ping
##测试node2主机minion与master的连通性

2.2安装软件

#安装软件
salt 'node2.localdomain' pkg.install httpd

2.3卸载软件

#卸载软件
salt 'node2.localdomain' pkg.remove httpd

2.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的地址列表


salt '*' network.get_fqdn       
# 查看主机的fqdn(完全限定域名)

标签:运维,minion,端口,--,master,key,自动化,Saltstack,salt
From: https://blog.csdn.net/G_D0120/article/details/139562709

相关文章

  • 《手把手教你》系列练习篇之15-python+ selenium自动化测试 -番外篇 - 最后一波啊!!!(详细
    1.简介 本来上一篇就是练习篇的最后一篇文章了,但是有的小伙伴私下反映说是做了那么多练习,没有一个比较综合的demo练练手。因此宏哥在这里又补存了一些常见的知识点进行练习,在文章最后也通过实例给小伙伴们或者童鞋们进行了一个登录模块的自动化测试的实例,其他的你可以照......
  • 《手把手教你》系列练习篇之14-python+ selenium自动化测试 -压台篇(详细教程)
    1.简介 本文是练习篇的最后一篇文章,虽然练习篇的文章到此就要和大家说拜拜了,但是我们的学习之路才刚刚开始。不要停下你的脚步,大步朝前走吧!比你优秀的人还在走着,我们有什么理由停下自己的脚步了,生命不止,学习亦是如此。好了,宏哥的毒鸡汤好喝吧,喝够了就开始学习吧。......
  • 自动化测试实战:如何构建高效且可靠的测试框架
    随着软件行业的快速发展,自动化测试已成为确保软件质量不可或缺的环节。作为一名资深自动化测试工程师,我将分享如何构建一个高效且可靠的自动化测试框架,以提升测试效率,降低人工成本,并确保软件产品的稳定性。一、明确测试目标在开始构建自动化测试框架之前,首先要明确测试的目标......
  • 【运维必备知识】Linux系统平均负载与top、uptime命令详解
    【运维必备知识】Linux系统平均负载与top、uptime命令详解大家好,我是秋意零工作中,服务出现问题如何排查Linux系统侧。首先第一想到应该排查是否是负载过高导致的。今天,这篇就来看看,top、uptime命令中平均负载(loadaverage)相关内容,初学者应该关注都比较少(也包括我。。)top......
  • 基于SpringBoot+Vue的小型企业办公自动化系统设计与实现(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • 分享一个超强的网页自动化工具!写得快,跑得快,开发人员狂喜(带私活)
       「今天分享一个开源项目:可控制浏览器,也可收发数据包,可模拟键盘和鼠标的操作」背景做数据采集的同学应该知道,当我们采集要登录的网站时,不仅要分析数据包、JS源码,构造复杂的请求,还要应付验证码、JS混淆、签名参数等反爬手段,门槛较高,开发效率不高。然后使用浏览器,可以......
  • python自动化脚本:12306-火车票购票
    1.导包:importtimefromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.support.uiimportWebDriverWait2.选择浏览器驱动:这里选择的是Chromedriver=webdriver.Chrom......
  • 自动化搭建专属 AI 绘图服务
    通义万相AIGC技术已经比较成熟,结合阿里云的计算和存储产品可以方便的搭建自己专属的 AI 绘图服务。例如《创意加速器:AI 绘画创作》这个解决方案,利用阿里自研的通义万相AIGC技术在 Web 服务中实现先进的图像生成。AI 绘画服务搭建步骤从架构图中可以看到,要想搭建这样一套......
  • 每日销售报告自动化_在特定时间(每日 10:00 下午)发送邮件
    从主数据表中提取数据后,我需要在每天下午10:00按特定格式发送每日销售报告。使用示例数据测试google表链接。https://docs.google.com/spreadsheets/d/1nOpdDY6A_-Pz8Zj8lutpli1RDDv1V8Cc4dTgi-DEpks/edit#gid=0在上述工作表中,工作表一"......
  • 自动化:用selenium发一篇博文
    Python的安装与环境搭建网址:https://www.python.org/选择“Downloads”下载最新的3.12版本的python,选择一个路径安装(我选择安装在D盘根目录下,新建了一个“python”文件夹),同时记得选择‘AddPython3.12toPATH”。可以通过打开cmd输入python检查,如果返回了python的版本信息,则......