当前位置: 首页 > news >正文

saltstack安装部署

入职新公司后,需要管理近千台服务器,公司使用saltstack进行管理,出于工作需求,结合自身实施经验,整理了一下最近的一些经验。

学习参考资源链接

Salt官网、学习salt配置、命令、模块讲解

http://docs.saltstack.cn/topics/configuration/index.html

salt现官网仓库源,原https://repo.salt.com已不可用,salt被broadcom收购

https://packages.broadcom.com/

Salt-3007.5安装部署

本节内容适合Linux系统saltstack安装部署;

了解saltstack

saltstack是基于python开发的一套C/S架构配置管理工具,它的底层使用ZeroMQ消息队列pub/sub方式通信,使用SSL证书签发的方式进行认证管理。ZeroMQ使SaltStack能快速在成千上万台机器上进行各种操作,而且采用RSA Key方式确认身份,传输采用AES加密,使传输的安全性得到保障。

saltstack服务器端叫做Master,客户端叫作Minion,并且有消息队列中的发布与订阅(pub/sub)服务模式,minion与master之间通过ZeroMQ消息队列通信。Master和Minion端都以守护进程的模式运行,一直监听配置文件里面定义的ret_port也就是4506端口(接收minion请求)和publish_port也就是4505端口(ZMQ的发布消息)。当minion运行时会自动连接到配置文件里面定义的Master地址ret_port端口进行连接认证。

下图是简单的saltstack架构

2 安装python

saltstack是基于python开发的C/S架构的配置管理工具,安装前需要先给各个服务器安装python,

安装命令:  yum install -y python3,

安装完成检查当前python版本:  python --version;

centos7.8自带python安装包,如果系统没有python安装包,可以到官网下载,官网地址  https://www.python.org/downloads

下载导入公钥

salt仓库源已经发生迁移,从 https://repo.salt.com 迁移到 JFrog;

点击artifactory,选择saltproject-rpm,下载公钥,考虑到网络限制,建议下载到本地,再上传到待安装服务器;

执行公钥导入命令 gpg --import SaltProject.gpg.pub

安装salt

需要先安装salt,再安装salt-master,否则会提需要安装salt;

yum install -y salt-3007.5-0.x86_64.rpm

下载安装salt-master

从官网下载salt-master安装包,

安装命令  yum install -y  salt-master-3007.5-0.x86_64.rpm

安装完成检查当前salt-master版本,命令 salt-master --version

下载安装salt-syndic

从官网下载salt-syndic安装包

安装命令 yum install –y salt-syndic-3007.5-0.x86_64.rpm

安装完成检查当前salt-syndic版本,命令 salt-syndic  --version

配置salt-master,salt-syndic

master配置参考官网配置salt-master,

链接地址 http://docs.saltstack.cn/ref/configuration/master.html

我在安装的时候把master和syndic安装在同一台机器,master和syndic的master配置文件路径相同: /etc/salt/master

配置如下:

user: root

cachedir: /var/cache/salt/master

keep_jobs: 24

timeout: 60

color: false

max_open_files: 100000

worker_threads: 20

auto_accept: true

file_recv: true

file_roots:

  base:

    - /home/salt

pillar_roots:

  base:

    - /etc/salt/pillar

pillar_opts: true

order_masters: true

syndic_master: 192.168.183.135    #注释 syndic连接的master

syndic_master_port: 4506

启动salt-master,命令:systemctl start salt-master

启动salt-syndic,命令:systemctl start salt-syndic

下载安装minion

从官网下载salt-minion安装包

安装minion也需要先安装salt,再安装minion,命令如下:

yum install -y salt-3007.5-0.x86_64.rpm

yum install -y salt-minion-3007.5-0.x86_64.rpm

安装完成检查当前salt-minion版本,命令:salt-minion –version

配置salt-minion

minion配置参考官网配置salt-minion,链接地址 http://docs.saltstack.cn/ref/configuration/minion.html

这个地方有个坑需要注意:虚拟机默认安装的时候,主机名是localhost,如果在minion服务启动后,再去修改主机名,master端那边收到的证书请求,还是旧主机名的,这个是因为启动minion服务后,会产生/etc/salt/minion_id ,而这个文件里面的内容不会因为主机名的改变、服务的重启、机器的重启而改变,所以如果主机名发送了变化,想让master端那里的证书认证名称也跟着发送变化的话,就要删除/etc/salt/minion_id文件或者清空/etc/salt/minion_id文件里面的内容,然后重启minion服务。

我在master上也部署了一个minion,两个minion配置如下

Master上的minion配置

[root@master salt]# cat minion | grep -e '^[^#]'

master: 192.168.183.135

id: 192.168.183.135  #注释 id填minion服务器IP

minion01上的minion配置

[root@minion01 salt]# cat minion | grep -e '^[^#]'

master: 192.168.183.135

id: 192.168.183.134   #注释 id填minion服务器IP

10 master上同步minion的key

minion配置完成后,需要在master上同步minion的key,

命令 salt-key –A

同步完成,/etc/salt/pki/master/minions下会有同步过的key,如果没有对应主机的key,minion和master不会建立连接。

启动minion服务,执行命令 service salt-minion start

或者 systemctl start salt-minion

11 测试验证

确认minion和master连接正常,

Master上执行命令 netstat -anp | grep 4506

Minion01上执行命令 netstat -anp | grep 4506

Master上执行命令 salt “*” test.ping

192.168.122.1不存在这台服务器,所以master没有收到返回消息

12 Salt命令练习

Salt –s “192.168.183.134” test.ping

Salt “192.168.183.134” cmd.run ‘yum install –y httpd’

test.ping和cmd.run 都是内置的用法,其实也就是python自带的模块功能,那么如何知道我们现在的salt可以使用哪些方法呢?

# salt '*' -d|grep :\'|more   #就可以以列表的形式查看所有可以使用的内置方法。为啥要加过滤呢,因为方法下面还有对应的举例。

# salt 'agent1.salt' sys.list_functions  #上面的方法还是比较粗糙,如果你已经知道了用法,可以用sys.list_functions将所有我们可以使用的函数列出来,当然就指定一个节点就可以了,指定'*'显示结果也是重复。
我现在已经把所有的可以用的模块的函数都查出来了,如果我只想看某个模块所拥有的函数方法呢?

# salt 'agent1.salt' sys.list_functions test  #如我可以查看test模块有哪些函数方法可以用。


文章转载自:
http://benne.bdypl.cn
http://cctv.bdypl.cn
http://amplifier.bdypl.cn
http://bernardine.bdypl.cn
http://chatterbox.bdypl.cn
http://assemblywoman.bdypl.cn
http://amphicar.bdypl.cn
http://aphrodisiacal.bdypl.cn
http://bluejeans.bdypl.cn
http://caravaneer.bdypl.cn
http://carotene.bdypl.cn
http://attorneyship.bdypl.cn
http://bristle.bdypl.cn
http://alveoli.bdypl.cn
http://abrase.bdypl.cn
http://bewray.bdypl.cn
http://casus.bdypl.cn
http://associated.bdypl.cn
http://chigoe.bdypl.cn
http://bastardy.bdypl.cn
http://bragger.bdypl.cn
http://anthrax.bdypl.cn
http://aspidistra.bdypl.cn
http://apportionment.bdypl.cn
http://chaotic.bdypl.cn
http://ampliate.bdypl.cn
http://anear.bdypl.cn
http://alkekengi.bdypl.cn
http://arica.bdypl.cn
http://armoire.bdypl.cn
http://www.dtcms.com/a/281335.html

相关文章:

  • 对象数组列表转成树形结构--树形结构转成列表(处理菜单)
  • ORA-06413: 连接未打开
  • 设计网站集:经济信息数据 统计数据 + 农业 + 金属 + 药品 + 电子 + 加密货币 + 债券 + 期货 + 其他
  • 构建企业级项目管理全面数字化运营体系︱易趋(蓝云软件)总裁唐智勇
  • 东鹏饮料牵手盈飞无限质量管理系统(QMS)
  • 多方学习与安全多方计算
  • 电动汽车制动系统及其工作原理
  • 梁的振动特征函数分析
  • 算法学习笔记(1):组合数
  • 论文 视黄素与细胞修复
  • 可下载或通过爬虫获取疾病相关数据的网站及平台,涵盖临床数据、基因关联、药品信息等方向,并附注数据特点与获取方式:(不公开)
  • PHP安全漏洞深度解析:文件包含与SSRF攻击的攻防实战
  • keeplived双击热备配置
  • chrome浏览器(chrome138.0.0.0 )无法安装扩展程序,因为它使用了不受支持的清单版本解决方案
  • GAMES101 lec2-数学基础1(线性代数)
  • 03 51单片机之独立按键控制LED状态
  • HCIA第三次综合实验:VLAN
  • 连接new服务器注意事项
  • Java核心类库深度解析与实战:从字符串处理到计算器开发
  • 外网如何连接内网中的mysql数据库服务?跨网直接访问操作,不用公网IP
  • 人机协作系列(四)AI编程的下一个范式革命——看Factory AI如何重构软件工程?
  • 力扣——1071. 字符串的最大公因子
  • 解密AWS VPC路由表:显式关联与隐式关联,谁决定了网络出口?
  • 深入剖析Java并发基石:AQS原理与实战
  • java 并发面试题2
  • 【Java篇】IntelliJ IDEA 安装与基础配置指南
  • Linux操作系统从入门到实战(十)Linux开发工具(下)make/Makefile的推导过程与扩展语法
  • 大模型在1型糖尿病肾病V期预测及治疗方案制定中的应用研究
  • 快速了解 HTTPS
  • MyBatis Plus功能增强全解析:从手写SQL到优雅开发的进阶指南