首页 > 其他分享 >运维工具SaltStack之一安装部署

运维工具SaltStack之一安装部署

时间:2023-06-11 17:02:36浏览次数:40  
标签:运维 部署 指定 默认 minion Master master SaltStack salt


一、概述

salt是一个异构平台基础设置管理工具,使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似,有一个强大的远程执行命令引擎,也有一个强大的配置管理系统,通常叫做Salt State System。

 

二、基本原理

采用C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信。minion上线后先与master端联系,把自己的pub key发过去,接受该minion-key后,也就是master与minion已经互信master可以发送任何指令让minion执行了。同时SaltStack也支持SSH的方式无需安装Agent,通过SSH实现管理。    

实现步骤:

1.Salt stack的Master与Minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc

2.salt命令,将cmd.run ls命令从salt.client.LocalClient.cmd_cli发布到master,获取一个Jodid,根据jobid获取命令执行结果。

3.master接收到命令后,将要执行的命令发送给客户端minion。

4.minion从消息总线上接收到要处理的命令,交给minion._handle_aes处理

5.minion._handle_aes发起一个本地线程调用cmdmod执行ls命令。线程执行完ls后,调用minion._return_pub方法,将执行结果通过消息总线返回给master

6.master接收到客户端返回的结果,调用master._handle_aes方法,将结果写的文件中

7.salt.client.LocalClient.cmd_cli通过轮询获取Job执行结果,将结果输出到终端。

 

参考链接:

官方站点:http://www.saltstack.com/

官方文档:http://docs.saltstack.com/

中文站点:http://www.saltstack.cn/

中文手册:http://docs.saltstack.cn/

 

三、安装部署

环境准备:

操作系统:centos 7.2

配置EPEL源:# rpm -Uvh http://mirrors.zju.edu.cn/epel/7/x86_64/e/epel-release-7-9.noarch.rpm

Master端:192.168.2.5 

Minion端:192.168.2.71

        Master端安装# yum install salt-master -y

Minion端安装# yum install salt-minion -y 

注:安装完之后,Master配置文件在/etc/salt/master,minion配置文件在/etc/salt/minion,默认初始安装配置文件都是被注释,可自定义。

SaltStack常用的目录结构:

/var/cache/salt/master/minions/  #存放minions的缓存数据

/srv/salt             #存放salt的sls文件,默认没有,需新建

/srv/pillar            #存放pillar配置文件,默认没有,需新建

/etc/salt             #存放salt的自身配置文件

/var/log/salt           #存放salt的日志目录

 

四、配置Minion端与Master通信,并简单测试。

1.打开Master端的自动签发证书,默认是关闭的,如果不打开minion启动时会报如下错误:


3月 08 14:47:46 node02 salt-minion[2736]: [WARNING ] ** Restarting minion **
3月 08 14:54:56 node02 salt-minion[2736]: [ERROR   ] Attempt to authenticate with the salt master failed
3月 08 14:59:07 node02 salt-minion[2736]: [ERROR   ] The Salt Master has cached the public key  for  thi...cate
 



 

修改Master端配置文件如下:/etc/salt/master

修改:#auto_accept: False

为:auto_accept: True

# systemctl restart salt-master.service  #重启Master端

2.修改Minion端配置文件如下:/etc/salt/minion

修改:#master: salt

master: 192.168.2.5  #指向主Master端

修改:#id: salt

id: minion01  #本端Minion id号

# systemctl restart salt-minion.service  #重启Minion端

 

这时Master查看salt-key,minion01客户端自动添加到签发列表中


[root@node03 ~] # salt-key     #查看所有端key
Accepted Keys:
minion01
 



 

注:salt-key常用命令

-a          #添加指定id

        -A          #添加全部    

        -R          #拒绝全部

        -d          #删除指定id

        -D          #删除全部

 

    测试:


     [root@node03 ~] # salt 'minion01' cmd.run 'uname -r'  #命令含义已经用法后续介绍
minion01:
     3.10.0-327.el7.x86_64



 

###################Master端和Minion端常用配置参数说明#####################

Master端常用的配置参数说明:

interface:指定bind的地址,默认为0.0.0.0

publish_port:指定发布端口,默认为4505

ret_port:指定结果返回端口,与minion配置文件中的master_port对应,默认为4506

uesr:指定master进程的运行用户,如果调整,则需要调整部分目录的权限,默认权限为root

timeout:指定timeout时间,如果minion规模庞大或络状况不好,建议增该值,默认5s

keep_jobs:默认情况下,minion会执行结果会返回master,master会缓存到本地的cachedir目录,该参数指定缓存多长时间,以供查看之前的执行结果,会占用磁盘空间,默认为24h

job_cache:master是否缓存执行结构,如果规模庞大(超过5000台),建议使用其他方式来存储jobs,关闭本选项,默认为True

file_recv:是否允许minion传送文件到master上,默认是Flase

file_roots:指定file server目录,默认为:

file_roots:    

   base:    

       - /srv/salt

pillar_roots:指定pillar目录,默认为:

pillar_roots:     

   base:     

       - /srv/pillar

log_level:执行日志级别,支持的日志级别由'garbage', 'trace', 'debug', info', 'warning', 'error', ‘critical ’ ,默认为’warning’

 

Minion端常用的配置参数说明:

master:指定master主机,默认为salt

mastar_port:指定认证和执行结果发送到master的哪个端口,与master配置文件中的ret_port对应,默认为4506

id:指定minion的标识,Salt内部使用id作为标识,唯一标识符,默认为主机名

user:指定运行minion的用户,由于安装包,启动服务等操作需要特殊用户,推荐使用root,默认为root

cache_jobs:minion是否缓存执行结果,默认为False

backuo_mode:在文件操作(file.managed或file.recurse)时,如果文件发送更改,指定备份目录,当前有效的值为minion,备份在cachedir/file_backups目录下,以原始文件名称加时间戳来命名,默认为Disabled

providers:指定模块对应的providers,如果RHRL系列中,pkg对应的providers是yumpkg5

renderer:指定配置管理系统中的渲染器,默认值为:yaml_jinja

file_client:指定file client默认去哪里(remotr或local)寻找文件,默认值为remote

loglevel:指定日志级别,默认为warnning

tcp_keepalive:minion是否与master保持keepalive检查,zeromq3一下版本存在keepalive bug,会导致某些情况下链接异常后minion无法重连master,建议有条件的话吧zeromq3以上版本,默认为True

标签:运维,部署,指定,默认,minion,Master,master,SaltStack,salt
From: https://blog.51cto.com/u_6186189/6458282

相关文章

  • 总结常用的几种 api 方式调用saltstack
    saltstack本身是用python写的,用python调用saltstack相对来说比较简单. 我这里采用的是第一种方法,但不同的是用tornado自封装了一层api 1.PythonclientAPIhttp://docs.saltstack.com/en/latest/ref/clients/#salt.wheel.WheelClient.cmd优点:最简单,只要机器安装了saltstack,......
  • 2、istio部署
    官网:istio.io下载isitoctl客户端:cd/usr/local/src#下载curl-Lhttps://istio.io/downloadIstio|sh-#命令软链接ln-s/usr/local/istio-1.17.2/usr/local/istio#exportPATH="$PATH:/usr/local/istio/bin"istio目录是Istio控制面(ControlPlane)的安装目录,其中包......
  • k8s 1.26.5 Ingress-nginx 的高可用部署
    1.安装部署ingress-nginx本次部署使用了高可用的形式,会在每个node节点做亲和性(master不部署),让每一个pod都部署上去,然后加入NGINX去过负载,这样我们之后用NGINX的80端口访问域名就可以了。主机地址端口k8s-node01192.168.80.48nginx启动端口:3080,负载均衡端口:根据ingre......
  • MySQL学习笔记-部署安装
    MySQL是一种常用的关系型数据库管理系统,可以用于存储和管理各种类型的数据。在本文中,我们将介绍如何在Linux操作系统上部署MySQL数据库,包括安装MySQL、创建数据库和用户、设置数据库安全性等。步骤如下:1.安装MySQL在Linux操作系统上安装MySQL通常需要使用包管理器,例如yum或apt-......
  • java 创建聚合项目的2种方式及 部署Nacos
    创建聚合项目的2种方式byIDEA20231.创建module,erp-parent2.创建子module,设置每个module的pom.xml属性pom及父模块;3.配置erp-parent模块里的pom.xml1.创建module,erp-parent2.创建子module--mavenarchet部署nacosype(archetype:quickstart(java工程),webapp(web工程),设置......
  • 在Windows上无docker直接将基于Solon的jar包通过IDEA部署到Linux的docker上
    为何会选择学习solon?springboot对于我开发小企业应用太重,启动太慢,下班太晚!为何都用windows,还想着不安装dockerdesktop洁癖,运行路径能短就短。步骤(以solon官网的helloword为例)1、下载helloworld代码传送阵:点击我2、通过IDEA打开代码,并运行它(我是下载基于maven版本的)。3......
  • gltlab安装部署小计
    镜像源:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el7/数据目录文件迁移参考:https://blog.csdn.net/qq_50247813/article/details/126250101安装epel和gityum-yinstallepel-releasegit安装依赖yum-yinstallcurlopenssh-serveropenssh-clientspostfixcroniew......
  • 使用GithubAction自动构建部署项目
    目录1.1项目准备2.1GithubAction设置3.1运行测试4.1小结GitHubActions是一种持续集成和持续交付(CI/CD)平台,可用于自动执行生成、测试和部署管道。您可以创建工作流程来构建和测试存储库的每个拉取请求,或将合并的拉取请求部署到生产环境。GitHubActions不仅仅是DevOps,还......
  • nas使用docker部署alist​
    一、下载镜像xhofe/alist:latest二、创建容器第一行:文件/文件夹:此处填写在nas上事先创建好的目录位置装载路径:/opt/alist/data类型选读写启动容器,检查日志是否有报错项。如没有报错,容器应该为运行中的状态。三、打开alist页面点击快捷方式查看应用网址打开alist登录页面http://192......
  • 流量传感器-使用部署
    天眼-流量传感器目录天眼-流量传感器1.设备简介2.部署拓扑3.标品3.1S52产品配置4.一体化4.1一体化硬件配置5.功能介绍5.1状态监听5.2网页漏洞利用5.3规则配置5.4自定义威胁情报5.5威胁检测5.6流量记录5.7文件还原5.8抓包检测5.9常规配置5.10网络管理5.11传输设......