SaltStack

SaltStack
官方文档
1.简介

作用:批量处理状态管理(配置管理)事件驱动(通过事件触发操作)管理私有云/公有云
yum仓库:http://repo.saltstack.com	安装1.master和minionrpm --import https://repo.saltproject.io/py3/redhat/7/x86_64/3004/SALTSTACK-GPG-KEY.pubcurl -fsSL https://repo.saltproject.io/py3/redhat/7/x86_64/3004.repo | sudo tee /etc/yum.repos.d/salt.repo2.masteryum -y install salt-master salt-api salt-mastersystemctl start salt-master3.minionyum -y install salt-minionvim /etc/salt/minionmaster:- 192.168.0.12id: 192.168.0.13systemctl start salt-minion4.master 认证:salt-keysalt-key -Asalt-key配置文件:yaml 语言格式/etc/salt/minion:master: IP 		指定	master	示例:master:- salt-master.haier.net- salt.haier.netid: name	agent端的名字,默认为域名,一般为IP地址,启动后会记录在minion_id在这儿给/etc/salt/master:file_roots:设置编写的状态管理配置文件存放路径,可设置多个环境master与minion的认证:minion在第一次启动时会在/etc/salt/pki/minion/中生成一个公钥和私钥,并把公钥minion.pub发送到master的/etc/salt/pki/master/minions_pre/中并以minion的id命名master允许后会把公钥发送到minion的/etc/salt/pki/minion/中,并把自己目录下/etc/salt/pki/master/minions_pre/相关密钥移动到/etc/salt/pki/master/minions/中salt-key :查看密钥-a id   	允许id  支持通配符-A  		允许所有-d id	 	删除-D 			删除所有示例:

在这里插入图片描述

通信:master:端口:4505:发送4506:接收zeromq:借助此工具进行通信功能:发布与订阅,实现并行通信请求与接收minion主动连接master,所以不需要提供或暴漏端口,随机端口帮助文档:1、查看普通模块和函数使用方法salt 'minion' sys.doc  module_namesalt ‘minion'  sys.doc module_name.function_name或者采用  -d 代替 sys.doc2、查看state模块的使用方法salt  ‘minion’  sys.state_doc   state_module_namesalt  'minion' sys.state_doc    state_module_name.function_name常用模块:
salt
Usage: salt [options] '<target>' <function> [arguments]
options:-V -h-c #指定配置文件位置,默认/etc/salt-t #超时时间默认5s--args-stdin #读取额外的选项或参数,每个条目用换行符/分隔-p #显示进度条--failhard #在返回第一次 bad 时停止执行批量--async  #异步,执行命令时不需要等待返回-v #详细信息 包括jid例:salt '*' cmd.run 'df -T'  -v   可以输出包括jid的信息salt-run jobs.lookup_jid   jid   可以查看相关jid的输出信息-b #BATCH, --batch=BATCH, --batch-size=BATCH 显示minion执行的数量或百分比-d #查看文档-l #设置输出的日志级别--log-file #设置日志路径--out-file #输出到指定文件目标选项-H #列出所有主机列表-E #正则表达式-L #后跟列表 用空格或逗号分隔-G #grain数据系统-P, --grain-pcre  使用正则匹配-N #用预定义组匹配-R #范围匹配-C #复合匹配,可以使用所有匹配模式-I, --pillar #pillar数据系统-J, --pillar-pcre   -S 网段匹配function:   模块.函数test.ping		检测master与minion通信是否正常sys.argspec 返回Salt执行模块中函数的参数说明。doc 查看模块文档list_functions  列出所有指定模块的函数list_modules  列出所有模块查看配置管理。。。 与上相仿sys.list_state_modulessys.list_state_functionssys.state_argspecsys.state_docnetwork.active tcp 返回所有tcp连接arp 返回所有arp记录connect  测试与minion是否连通      例:salt '192.168.150.62' network.connect baidu.com 80default_route	查看默认路由dig	查看域名解析	cmd.run/shell-cmd #手动指定命令例:salt '*' cmd.run cmd='sed -e s/=/:/g'-cwd #执行命令当前目录位置-stdin #可以使用'stdin参数为要运行的命令指定一个标准输入字符串-runas #指定用户-group #指定组-shell #指定运行shell-python_shell #如果为False',则让python处理位置参数。设置为'True'使用shell特性,如管道或重定向。-bg #如果"True,在后台运行命令,不等待或交付它的结果-env #在执行之前设置的环境变量。-timeout 超时时间run_all	#执行传递的命令并返回返回数据的字典run_bg #在后台执行传递的命令并返回它的PID  run_stderr #执行命令并只返回标准错误    exec_code #传入两个字符串,第一个命名可执行语言,akapython2, python3, ruby, perl, lua,等等,第二个字符串包含您希望执行的代码。将返回标准输出。例:salt '*' cmd.exec_code ruby 'puts "cheese"' args='["arg1", "arg2"]' env='{"FOO": "bar"}'retcode #执行shell命令并返回命令的返回代码。script #从远程位置下载脚本并在本地执行该脚本。该脚本可以位于salt主文件服务器或HTTP/FTP服务器上。(支持多种语言)   -source #要下载脚本的位置-args #传递给脚本的命令行参数的字符串。例:salt '*' cmd.script salt://scripts/runme.shsalt '*' cmd.script salt://scripts/runme.sh 'arg1 arg2 "arg 3"'salt '*' cmd.script salt://scripts/windows_task.ps1 args=' -Input c:\tmp\infile.txt' shell='powershell'salt '*' cmd.script salt://scripts/runme.sh stdin='one\ntwo\nthree\nfour\nfive\n'		  service.available 查看服务是否运行例:salt '*' service.available sshdget_all	获取所有正在运行的服务reload/start/stop/status/restartcron.list_tab   查看指定用户的计划任务例:salt '*' cron.list_tab rootrm_job 删除指定用户的计划任务例:salt '*' cron.rm_job root /usr/local/weeklyset_job 设置指定用户的计划任务例: salt '*' cron.set_job root '*' '*' '*' '*' 1 /usr/local/weeklypkg.install   #安装软件包remove	#删除指定软件包upgrade	#更新软件包version	#查询软件包版本cp. (或salt-cp)get_file:#下载文件到客户端例:salt ‘*’ cp.get_file salt://vimrc /etc/vimrcsalt ‘*’ cp.get_file “salt://`grains`.`os`/vimrc” /etc/vimrc template=jinja   salt ‘*’ cp.get_file salt://vimrc /etc/vimrc gzip=5 #使用模板  #压缩:其中,1代表作小压缩,9代表最大压缩。salt ‘*’ cp.get_file salt://vimrc /etc/vim/vimrc makedirs=True 如果目录不在,则创建目录get_dir	#从master下载整个目录get_url #从一个URL地址下载文件,URL可以是msater上的路径(salt://),也可以是http网址。file.access	#测试salt进程是否有对指定文件的对应访问权限touch #如果文件不存在创建文件,相当于touch file,如果文件存在就更新访问时间或者修改时间append #追加文字到文件的末尾-args 具体追加内容可以放到这个键值对上例: salt '*' file.append /etc/motd args="['cheese=spam','spam=cheese']"chgrp #修改文件的属组。chown #修改文件的属主和属组。copy #从源目录拷贝文件到目标目录-recurse 拷贝目录-remove_existing 提前移除目标目录中的所有文件,然后再从源路径拷贝文件到目标find grepmkdir sedmove #移动一个文件或目录。remove #删除文件。注意:该模块一次只能接受一个参数。stats #返回包含指定文件状态的词典。status.cpuinfonetstatsuptimevmstatsstate.apply #应用在TOP中配置的所有状态

2.salt-ssh

需要先安装salt-ssh模块:yum -y install salt-ssh
记录IP地址的名册:/etc/salt/roster
远程执行:
第一次使用需要加-i 标识默认为yes
-r标识直接使用shell命令
salt-ssh '*' test.ping  -i
salt-ssh '*'  -r "uptime"
.

3.状态/配置管理文件:

配置路径 /etc/salt/master:file_roots:设置编写的状态管理配置文件存放路径,可设置多个环境默认路径为 /srv/salt/base例:vim  /srv/salt/base/web/name.sls

在这里插入图片描述

远程执行:salt 'name'  state.sls web.apache #调用state远程执行模块的sls方法 读取默认路径下web目录下的apache.sls 文件注:默认环境为base,如果要换到其他环境需要在后面加上这个方法的参数 saltenv=环境名字 定义每台服务器分别的状态:一般默认都是base环境
vim  /srv/salt/base/top.sls示例:表示 所有机器都执行web/apache.sls这个状态文件vim /srv/salt/base/top.slsbase: '*': - web.apache远程执行:(命令行中的*表示通知所有 top.sls中的*表示实际需要操作的机器有哪些)salt '*' state.highstatetest=True  末尾加上此参数表示干跑一趟,并不实际执行

4.salt的数据系统

Grains(明文):负责采集salt-minion启动时的一些基本信息 ,明文,在minion设置grains.items 查询所有信息grains.get  参数     查询单个信息例: salt '*' grains.get saltversion用grains 来匹配minion:salt -G 'os:CentOS' cmd.run 'ip a'	   通过grains匹配到所有centos系统上执行命令在top.sls 	中匹配base'os:CentOS': -match: grain-web.apache模板匹配:

在这里插入图片描述

  自定义grains:需要重启salt-minion生效 或执行 salt '*' saltutil.sync_grains 生效vim /etc/salt/grainstest-grains: linux-nod2Pillar(可加密),在master上设置vim /etc/salt/masterminion_pillar_cache: False  设置内置采集是否开启pillar_roots:	设置路径例:(不需要重启)vim /srv/pillar/base/apache.sls

在这里插入图片描述

  设置谁能执行(必须有)vim/srv/pillar/base/top.sls base'*': -apache执行 :salt '*' pillar.itemspillar在状态文件里怎样引用

在这里插入图片描述

grains 与 pillar的对比

在这里插入图片描述

5.返回:salt支持salt-minion数据信息直接写入mysql等数据存储中,需在minion上安装对应插件和配置文件中指定存储位置和授权

需要末尾追加--return 例:salt '*' cmd.run 'df -hT'   --return mysql  如要把所有缓存数据都写了mysql中:(这种不需要末尾加--return mysql)
minion的cache默认保存1天

在这里插入图片描述

6.配置管理几种写法

注意:配置管理文件中,每个id下的相同的模块只能用一次
示例:
多个id:

在这里插入图片描述

单个id

在这里插入图片描述

管理多个文件时,也可以不用声明name,可以把id作为name

在这里插入图片描述

微服务架构:

  JSF:京东Spring Cloud: 开源

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

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

相关文章

【前端学习——react坑】useState使用

问题 使用useState 时&#xff0c;例如 const [selectedId, setSelectedId] useState([false,true,false]);这样直接利用&#xff0c;无法引发使用selectedId状态的组件的变化&#xff0c;但是selectedId是修改了的 let tempselectedId;temp[toggledId]selectedId[toggledId…

A2B V2.0协议学习笔记(非正式版本)

一、说明 A2B全称是 Automotive Audio Bus 汽车音频总线,主要是解决传统音频总线线多、线重、成本贵等问题。 A2B V2.0总线相对V1.0主要变化点: 速率提升,高达98.304Mbps,全双工模式 编码方式,由之前的曼彻斯特编码变为QPSK(正交相移键控)编码,每个符合2bit数据,因此…

【busybox记录】【shell指令】mkdir

目录 内容来源&#xff1a; 【GUN】【mkdir】指令介绍 【busybox】【mkdir】指令介绍 【linux】【mkdir】指令介绍 使用示例&#xff1a; 创建文件夹 - 默认 创建文件夹 - 创建的同时指定文件权限 创建文件夹 - 指定多级文件路径&#xff0c;如果路径不存在&#xff0c…

HAL库使用FreeRTOS实时操作系统时配置时基源(TimeBase Source)

需要另外的定时器&#xff0c;用systic的时候生成项目会有警告 https://blog.51cto.com/u_16213579/10967728

k8s部署calico遇到的问题

kubernetes安装calico calico官网 环境&#xff1a;centos7.9&#xff0c;calico 3.23&#xff0c;kuberadm 1.26 问题1&#xff1a;执行kubectl create -f calico.yml后报错如下 error: resource mapping not found for name: “tigera-operator” namespace: “” from “…

20212313 2023-2024-2 《移动平台开发与实践》第5次作业

20212313 2023-2024-2 《移动平台开发与实践》第5次作业 1.实验内容 设计并开发一个地图应用系统。 该实验需提前申请百度API Key&#xff0c;调用接口实现百度地图的定位功能、地图添加覆盖物和显示文本信息。 2.实验过程 2.1 获取SHA1 &#xff08;1&#xff09;打开控制台…

【全开源】景区手绘地图导览系统源码(ThinkPHP+FastAdmin)

一款基于ThinkPHPFastAdmin开发多地图手绘地图导览系统(仅支持H5)&#xff0c;景区升4A5A必备系统&#xff0c;高级版支持全景。 ​打造个性化游览新体验 一、引言&#xff1a;景区导览系统的革新 在旅游业蓬勃发展的今天&#xff0c;景区导览系统成为了提升游客体验的关键。…

Python学习---基于HTTP的服务端基础框架搭建案例

整体功能&#xff1a; 1 创建框架构建相关的文件夹 2 创建app,模块文件 3 在 app模块文件中创建application函数(用于处理请求) 4 将request_handler()中的处理逻辑交由app模块的application函数完成 5 app模块的 application函数返回响应报文 6 在application 文件夹中创建一个…

基于GO 写的一款 GUI 工具,M3u8视频下载播放器-飞鸟视频助手

M3u8视频下载播放器-飞鸟视频助手 M3u8视频飞鸟视频助手使用m3u8下载m3u8 本地播放 软件下载地址m3u8嗅探 M3u8视频 M3u8视频格式是为网络视频播放设计&#xff0c;视频网站多数采用 m3u8格式。如腾讯&#xff0c;爱奇艺等网站。 m3u8和 mp4的区别&#xff1a; 一个 mp4是一个…

NSSCTF-Web题目4

[SWPUCTF 2021 新生赛]hardrce 1、题目 2、知识点 rce&#xff1a;远程代码执行、url取反编码 3、解题思路 打开题目 出现一段代码&#xff0c;审计源代码 题目需要我们通过get方式输入变量wllm的值 但是变量的值被过滤了&#xff0c;不能输入字母和\t、\n等值 所以我们需…

JavaWeb基础(一)-IO操作

Java I/O工作机制&#xff1a; 注&#xff1a;简要笔记&#xff0c;示例代码可能较少&#xff0c;甚至没有。 1、Java 的 I/O 类库的基本架构。 ​ Java 的 I/O 操作类在包 java.io 下&#xff0c;大概有将近80个类&#xff0c;这些类大概可以分为如下四组。 基于字节操作的…

new CCDIKSolver( OOI.kira, iks ); // 创建逆运动学求解器

demo案例 new CCDIKSolver(OOI.kira, iks); 在使用某个特定的库或框架来创建一个逆运动学&#xff08;Inverse Kinematics, IK&#xff09;求解器实例。逆运动学在机器人学、动画和计算机图形学等领域中非常重要&#xff0c;它用于根据期望的末端执行器&#xff08;如机器人的…

SpringMVC 数据映射VC

从 view 层发送请求到Controller&#xff0c;在Controller中获取参数&#xff1a; 在不输入值时会报400&#xff0c;参数错误 在不输入值时num默认为null 没有找到对应标签名称叫nums的&#xff0c;输入任何值时都报400 设置required默认值为false&#xff0c;即使表单没有nums…

山东大学软件学院数据库实验1-9(全部)

目录 前言 实验代码 实验一 1-1 1-2 1-3 1-4 1-5 1-6 实验二 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 实验三 3-1 3-2 3-3 3-4 3-5 3-6 3-7 3-8 3-9 3-10 实验四 4-1 4-2 4-3 4-4 4-5 4-6 4-7 4-8 4-9 4-10 实验五 5-1…

C# 数组/集合排序

一&#xff1a;基础类型集合排序 /// <summary> /// 排序 /// </summary> /// <param name"isReverse">顺序是否取反</param> public static void Sort<T>(this IList<T> array, bool isReverse false)where T : IComparable …

【SPSS】基于因子分析法对水果茶调查问卷进行分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

【4.vi编辑器使用(下)】

一、vi编辑器的光标移动 二、vi编辑器查找命令 1、命令&#xff1a;:/string 查找字符串 n&#xff1a;继续查找 N&#xff1a;反向继续查找 /^the 查找以the开头的行 /end 查找以 查找以 查找以结尾的行 三、vi编辑器替换命令 1、语法: : s[范围,范围]str1/str2[g] g表示全…

ABAP 在增强中COMMIT

前言 呃&#xff0c;又是很磨人的需求&#xff0c;正常情况下是不允许在增强中COMMIT的&#xff0c;会影响源程序本身的逻辑&#xff0c;但是这个需求就得这么干… 就是在交货单增强里面要再调用一次交货单BAPI&#xff0c;通过SO的交货单自动创建STO的交货单&#xff0c;如果…

【算法】决策单调性优化DP

文章目录 决策单调性四边形不等式决策单调性 形式1法1 分治法2 二分队列例题 P3515Solution 形式2例题 P3195Solution 形式3例题 CF833BSolution 形式4例题Solution 后话 决策单调性 四边形不等式 定义: 对于二元函数 w ( x , y ) w(x,y) w(x,y)&#xff0c;若 ∀ a , b , …

【Linux】简单模拟C语言文件标准库FILE

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…