SaltStack 介绍和安装
SaltStack 介绍和安装
SaltStack 介绍
SaltStack是一种利用Python语言开发的,用于批量管理主机的一套工具,主要实现三种功能:
- 远程执行:通过saltstack工具,可以同时在多台被管理的主机上,执行操作,并行执行命令,安装加密协议
- 配置管理:通过YMAL语言脚本,编写主机配置文件,实现自动化安装和运维
- 云管理:通过saltcloud创建和管理私有云
salt可以用于定义的模式,来维护和管理远程节点,比如说在特定的主机节点上安装和运行特定的服务。也可以用于在指定或所有主机节点上执行命令或请求数据。slat提供了一个简单的管理接口,用于管理大量的信息和远程节点。
salt易于安装和维护,不论项目的大小,都可以使用,可以是本地的,也可以是跨数据中心的,是一种简单的C/S架构。根据特殊的需要,可以定制不同的salt功能。开源软件,基于apache 2.0.
salt采用的消息队列是ZeroMQ,在master和minion之间的认证中,使用的是公钥方式,在消息传递过程中,采用的是AES加密方式,认证和加密都集成到salt中。通过msgpack,使得master和minion之间的消息传递开销很小。
salt是用python编写的,可以说是一个简单得的python API工具,通过salt采集的信息数据,可以用于任何的程序中。方便、灵活、可扩展。
SaltStack的运行模式有以下四种:
- 本地模式:local,直接本地对主机进行管理,和没有salt是一样的操作
- Master + Minion模式:最常用的方式,一个master可以同时控制多个minion,实现对minion的管理
- 代理模式:syndic,master和minion之间不直接通信,通过中间代理的方式,由代理来控制minion
- salt-ssh模式:在minion上不安装agent,直接通过ssh的方式进行控制
SaltStack 安装
使用最常见的Master + Minion的部署模式,使用两台主机,一台安装master和minion,另一台只安装minion,具体的安装过程如下:
安装仓库文件
为解决安装包依赖的问题,建议使用官方的repo仓库文件进行安装,先安装官方的仓库文件。
yum install https://repo.saltstack.com/yum/redhat/salt-repo-2019.2.el7.noarch.rpm
在master主机上安装master和minion
yum install salt-master salt-minion
启动master,配置minion
主要配置的是master监听的地址,保持不变即可,在minion上,要指明master,默认都是通过域名去解析master的,在这里可以通过IP地址。建议是做全局的域名解析。master和minion的配置文件存放在/etc/salt目录下。
默认情况下,master是在所有地址上监听4505和4506端口,可以在interface上绑定指定的IP地址,也就是master的服务地址。修改完master的配置文件之后,需要重启master。
[root@localhost ~]# sed -i 's/#interface: 0.0.0.0/interface: 192.168.64.131/' /etc/salt/master [root@localhost ~]# grep 'interface' /etc/salt/master # The address of the interface to bind to: interface: 192.168.64.131
minion的配置,只需要在配置文件中,指向master即可。或者直接修改/etc/hosts文件,将master域名指向192.168.64.131
[root@localhost ~]# echo '192.168.64.131 salt' >> /etc/hosts [root@localhost ~]# ping salt PING salt (192.168.64.131) 56(84) bytes of data.
修改minion的id,在这里最好是FQDN或者是唯一IP地址。在启动minion之后,会在/etc/salt下生成一个minion_id的文件,里面就是minion_id,在这里都是IP地址。
启动master和minion
[root@localhost ~]# systemctl start salt-minion [root@localhost ~]# systemctl start salt-master
master 和minion的认证
在启动了minion 之后,会自动的在minion的目录下,生成minion的认证公钥和私钥文件。具体路径为/etc/salt/pki/minion。
[root@localhost minion]# tree . ├── minion.pem └── minion.pub0 directories, 2 files
还有一个目录,是pki/master,在master未ACCEPT 相关minion 之前,该minion的该目录下为空。这个时候可以在master上通过命令查看master和minion 的认证关系。
[root@localhost salt]# salt-key Accepted Keys: Denied Keys: Unaccepted Keys: 192.168.64.131 192.168.64.132 Rejected Keys:
其中accepted为绿色,unaccepted为红色。
可以通过命令来选择accept 指定minion,在这里选择accept 192.168.64.132
[root@localhost salt]# salt-key -a 192.168.64.132 The following keys are going to be accepted: Unaccepted Keys: 192.168.64.132 Proceed? [n/Y] y Key for minion 192.168.64.132 accepted. [root@localhost salt]# salt-key Accepted Keys: 192.168.64.132 Denied Keys: Unaccepted Keys: 192.168.64.131 Rejected Keys: [root@localhost salt]#
当master选择accept了minion之后,在minion的pki/minion目录下,就会生成master的信息。
[root@localhost pki]# tree . ├── master └── minion├── minion_master.pub├── minion.pem└── minion.pub2 directories, 3 files
而在master的目录下,就会生成minion的信息。具体目录在/etc/salt/pki/minions
[root@localhost salt]# ls pki/master/ -l total 8 -r-------- 1 root root 1678 Apr 13 14:52 master.pem -rw-r--r-- 1 root root 450 Apr 13 14:52 master.pub drwxr-xr-x 2 root root 28 Apr 13 15:09 minions drwxr-xr-x 2 root root 6 Apr 13 14:52 minions_autosign drwxr-xr-x 2 root root 6 Apr 13 14:52 minions_denied drwxr-xr-x 2 root root 28 Apr 13 15:09 minions_pre drwxr-xr-x 2 root root 6 Apr 13 14:52 minions_rejected [root@localhost salt]# ls pki/master/minions -l total 4 -rw-r--r-- 1 root root 450 Apr 13 15:00 192.168.64.132 [root@localhost pki]# tree . ├── master │ ├── master.pem │ ├── master.pub │ ├── minions │ │ └── 192.168.64.132 │ ├── minions_autosign │ ├── minions_denied │ ├── minions_pre │ │ └── 192.168.64.131 │ └── minions_rejected └── minion├── minion.pem└── minion.pub7 directories, 6 files
通过命令salt-key -A,可以一次性将所有的minion的请求,全部accept。
这个认证过程很简单,就是master将自己的公钥,传递到minion上,以后master就可以直接控制minion了,这个过程和ssh免密码登录的原理是一样的。
远程控制
salt最基本的功能就是远程控制,可以直接在master上,控制minion去做一项操作。比如查看minion的版本。
[root@localhost salt]# salt '*' test.version 192.168.64.131:2019.2.0 192.168.64.132:2019.2.0
- 其中salt是命令,'*'表示匹配所有的minion,如果只想匹配指定的minion,则输入该minion的id即可,可以使用*作为通配符。
- test.version是作为指令的,其中test是指模块,version是指方法,这个和python的有关,在python中引用别的模块中的方法,也是这么调用的
如果是让远端执行某个脚本或命令,需要使用cmd.run,其中cmd就是模块名,run就是方法名
[root@master salt]# salt '*' cmd.run 'cat /etc/hosts' 192.168.64.131:127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.64.131 master192.168.64.131 salt 192.168.64.132:127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.64.131 master192.168.64.131 salt
远程控制,是salt的一个核心功能,在master主机上,可以通过cli接口,来控制salt。在远程控制的命令中,需要一些字段,来表示让minion执行的信息,比如目标minion需要定义、调用的方法,和一些其他参数。
定义目标minion
- 目标minion是salt的第一个参数,通过主机名/minion-id来定义。
- 也可以通过正则表达式的形式,定义目标minion,salt -E '^.*'
- 还可以通过指定minion,让minion来执行命令,salt -L '***',其实可以省略。
定义调用的方法,该参数是用来定义在目标minion上执行的方法,方法也可以使用参数
转载于:https://www.cnblogs.com/bobo137950263/p/10702954.html
SaltStack 介绍和安装相关推荐
- SaltStack介绍及安装
1.SaltStack介绍 SaltStack作用于仆从和主拓扑.SaltStack与特定的命令结合使用可以在一个或多个下属执行.实现这一点,此时Salt Master可以发出命令,如salt '*' ...
- Saltstack 介绍、安装、配置(一)
Slatstack 介绍 官网:https://saltstack.com/ 官方源:http://repo.saltstack.com/ (介绍各操作系统安装方法) centos 6源 yum i ...
- Ansible架构介绍与安装
Ansible介绍与安装 一.介绍 Ansible 什么是 Ansible? Ansible是一款自动化运维工具,其主要功能是帮助运维实现IT工作的自动化.降低人为操作失误.提高业务自动化率.提升运维 ...
- python介绍与安装(一)
python介绍与安装(一) 1.python语言介绍 1.1 介绍 编程语言的分类主要有一下几个维度,编译型和解释性:静态语言和动态语言:强类型语言和弱类型语言. Python 是一个高层次的结合了 ...
- Python 、 PyCharm 、 Anaconda 介绍及安装
Python . PyCharm . Anaconda介绍及安装 1. Python介绍及安装 1.1 Python介绍 1.2 python安装 1.3 pip工具 2 PyCharm介绍及安装 2 ...
- saltstack源码安装nrpe
最近弄saltstack弄上瘾了,今天又弄了saltstack源码安装nrpe,安装nrpe之前需要安装nagios-plugins,首先是top.sls文件: [root@cacti salt]# ...
- Scrapy-Splash的介绍、安装以及实例
scrapy-splash的介绍 在前面的博客中,我们已经见识到了Scrapy的强大之处.但是,Scrapy也有其不足之处,即Scrapy没有JS engine, 因此它无法爬取JavaScrip ...
- Springlake-01 介绍功能安装
Springlake-01 介绍&功能&安装 1. 简介与功能 1)Springlake 是一个企业内容平台SECP 2)是一个可配置的系统,80%内容可以配置 3)允许建立和配置垂直 ...
- Kafka系列一之架构介绍和安装
Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...
- SharpWebMail介绍和安装(转)
SharpWebMail介绍和安装 什么是:SharpWebMail SharpWebMail是一款C#开发的基于WEB应用程序的多语言的WEB邮件服务.它允许我们使用SMTP或IMAP服务来完成发送 ...
最新文章
- 语言 蜗牛爬树问题_一年级语文《小蜗牛》课文解析及测试题,感觉最难的是口语交际题...
- 信息化基础建设系列文章汇总 .NET 平台业务项目实践
- 本地共享映射文件夹进行删除操作_从集群建立到航测建模CC(Smart3D)实用操作教程...
- 正则表达式的环视实际应用案例
- Redis问的太深入,面试官说:“你先回去等通知吧“!
- 网络编程基础【林老师版】:简单的 套接字通信(一)
- 印花导带容易出现的问题及其解决方法
- HT for Web中3D流动效果的实现与应用
- 20 世纪 10 大算法
- redis主从架构宕机问题解决方法
- Inpaint破解版 - 图片去水印神器
- 金蝶K3物料主数据计划策略字段设置
- matlab实现傅立叶变换6,实验六傅里叶变换及其反变换
- 10只狗怎么来判断1000瓶药水中哪个有毒
- Zabbix+MatrixDB大规模监控与分析解决方案详解(含PPT)
- TestFlight简易流程
- 3D游戏:三、空间与运动
- 汉旺镇震后第九日:强忍刺鼻恶臭向废墟下搜寻
- LANDESK8.8版本操作说明书
- Js核心技术——待补充