Salt初识和安装

Salt

Salt是一个配置管理系统,能够根据定义的状态,配置远程节点,比如保证远程节点上指定的安装包安装,运行指定的服务。Salt也是一个分布式远程执行系统,用于在远程节点上执行命令和请求数据,不论是单个或者是任意的选择标准。

Salt是为了提供一个基于远程执行脚本,提供更好、更快和更加可扩展的解决方案二开发的,通过一个简单的可管理的借口,能够覆盖大量的信息,能快速的覆盖到大量的服务器上。

简单

在大规模部署环境和小规模环境中,提供了很多功能,salt搭建和维护都很简单,不用考虑项目大小。Salt的架构,可以应对与任意数量的服务器,从本地网络或者跨数据中心,salt的架构是一个简单的CS架构,将所需要的功能,编译经一个单独的守护进程集合中,使用默认的配置文件,就可以使用,不需要修改,salt也可以根据特殊的需求进行相关配置。

并行执行

Salt的核心功能是:

  1. 并行的在远程节点上执行命令,而不是串行
  2. 使用安全、加密的协议
  3. 使用更小的网络负载
  4. 提供一个简单的管理接口

Salt在远程执行命令上提供了更加精细化的控制,不仅可以通过主机名来访问目标主机,也可以通过系统属性来访问目标主机。

Salt使用了大量的技术,网络层使用了ZeroMQ网络库,所以salt守护进程提供了一个透明的可用的AMQ终端,对于master守护进程,salt使用公钥认证,对于传输数据,使用更快的AES加密算法,认证和加密,都已经集成在salt中。Salt使用了msgpack,保证更快和更轻量级的网络传输。

基于python的客户端接口

为了简单的扩展,salt的执行规则,可以使用python模块来编写,通过salt执行器收集的数据,会被返回给master 服务器,或者返回给任意的程序,salt可以被简单的python API调用,或者是通过命令行调用,所以salt可以是一个单独使用的命令,或者集成在一个大应用中使用。

快速、灵活、可扩展

使用salt的结果,就是一个系统能快速的在目标主机组上执行命令,salt能快速简单的部署,然后提供一个远程执行架构,可以管理任意数量的服务器。Salt基础架构将远程执行的优势结合在一起,扩大了功能,使得salt能够适应任何的网络。

开源

Salt是在Apache 2.0下开发的,可以应用于任何的开源或闭源的环境中。

Salt的安装

如果是第一次安装,需要在一个单独的管理服务器上,安装salt master,然后在每一个想管理的系统上,安装一个salt agent(minion)。不用担心现在的架构,如果需要增加组件和修改配置,不需要重新安装。

通用安装过程如下:

  1. 使用salt bootstrap脚本,安装salt master,一定要使用-M选项来安装;
  2. 保证所有agent机器,都能反问master
  3. 在这些机器上安装agent
  4. 在使用salt连接的时候,接受认证

这些操作完成后,可以执行一个简单的命令,然后会收到所有的返回值,命令格式如下:salt ‘*‘ test.ping

修改本地DNS

修改/etc/resolve.conf文件,设置dns,为192.168.64.2,网关也为该地址,然后修改/etc/nsswitch.conf文件,hosts后面增加dns,使得能够dns解析。

route add -net 0.0.0.0 gw 192.168.64.2

下载国内站点163的repo,然后复制到/etc/yum.repo.d/目录下,执行yun clean all和yum upgrade命令。

必须要使用epel.repo安装仓库,下载地址为https://mirrors.tuna.tsinghua.edu.cn/epel/6/x86_64/,安装仓库的命令为:

rpm -Uvh ~/epel-release-6-8.noarch.rpm

主要是要这个仓库

[epel]

name=Extra Packages for Enterprise Linux 6 - $basearch

#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

failovermethod=priority

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

安装完成后,需要yum clean all 和yum upgrade all

开始安装salt,在master上要安装的组件如下:

yum install salt-master salt-minion salt-ssh salt-syndic salt-cloud

安装完成后,可以直接使用salt help命令了。

在需要被远程执行命令的主机上,安装salt-minion即可。

初始化配置

Salt的配置非常简单,在大多数的安装过程中,master默认的配置可以直接适用,只需要在minion也就是agent上,配置文件中指定master的位置即可。

配置文件存放在/etc/salt目录下,其中master文件是master的配置文件,minion文件是minion的配置文件。

默认情况下,master在所有的借口地址上,监听4505和4506两个端口,在配置文件中体现为0.0.0.0,如果需要修改默认的监听地址和端口,需要修改master文件,其中地址为,interface:*.*.*.*,如果修改了配置文件,需要重启salt master服务才能生效。

正常情况下,minion上的配置也是可以直接使用的,因为salt minion会去查找以salt开头的主机,如果解析正确,则不需要做任何配置。如果解析不到,则需要在配置文件中指定,具体为master:*.*.*.*。如果修改了,也是需要重启服务的。

重启服务可以使用/etc/init.d/salt-master和salt-minion命令。

Key认证

在初始key交换之前,salt提供了一个命令,用于在master和minion上激活key。激活key认证能够避免连接到错误的master上,并防止在初始连接时,潜在的MiTM攻击。

在master主机上,使用命令,打印master的finger print指纹:salt-key -F master.

然后在local keys上拷贝master.pub,在minion的master_finger上设置该值。保存minion的配置,然后重启minion服务。

然后通过salt-call –local key.finger来查看minion的key finger,将这个值和master上salt-key –finger 来进行对比,是否一致。

在minion 上查看,很慢。

在master和minion之间的通信,采用了AES加密方式,这保证了从master发送给minion的命令,不会被篡改,master和minion直接的通信,是基于受信任的密钥的认证方式。

在发送命令到minion之前,需要在master上受信任minion的key,在master上通过salt-key -L来显示当前master已知的key信息。

使用命令salt-key -A ,使得master会信任所有的key,也可以使用-a name来信人某一个节点的key。

受信任之后,可以查看当前master信任的key。

做完这一步之后,就可以通过master给minion发送命令了。比如test.ping命令。

出现这个,表示master现在是可以控制minion了。

原文地址:https://www.cnblogs.com/bobo137950263/p/9607595.html

时间: 2024-10-07 22:20:13

Salt初识和安装的相关文章

MYSQL之数据库初识、安装详解、sql语句基本操作

目录 MYSQL之数据库初识及安装详解 1.什么是数据库? 1.什么是数据?(data) 2.什么是数据库?(databases,简称DB) 2.为什要用数据库? 3.什么是数据库管理系统?(DataBase Management System 简称DBMS) 4.数据库管理软件的分类 5.MYSQL数据库 6.数据库服务器.数据管理系统.数据库.表记录之间的关系 MYSQL的安装 下载及启动 配置环境变量及作系统服务 修改密码 破解密码 配置文件 数据库的基本操作 MYSQL之数据库初识及安装

salt推送安装

salt推送Nginx和DNS服务总结: 安装基本配置:salt master  配置如下 /etc/salt/master: interface: 192.168.2.128 auto_accept: True file_roots: base: - /srv/salt minion 配置如下/etc/salt/minion master: 192.168.2.128 user: root id: hw_1 在master上使用salt-key 下发秘钥收索minion salt-key '*

salt源码安装软件和yum安装软件

上面简单列出了源码安装的sls文件书写思路. 涉及到一些固定的思路:如, 1,拷贝 解压安装时候需要依赖tar.gz存在 如果已安装则无需再次安装. 2,启动脚本 加入chk时候需要文件存在,如果已添加,则无需再次添加 3,服务管理 除了有启动脚本,还要watch配置文件. ? 晚上睡前早上起来多撸几遍基本的软件安装就可以自己写了.下面是源码安装nginx.涉及到基础依赖包安装(yum安装),以及pcre安装(源码安装)和nginx(源码安装) 其中有些坑,调整了老半天才搞好,甚是蛋疼,要注意图

salt源码安装

salt是什么? 一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯. salt底层采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等. 离线安装只能源码来搞,机器python环境2.6.6,centos6.3,安装主要的是的依赖太多的包,现整理如下,安装前先安装如下依赖包 名称 下载地址 Jinja2 https://pypi.python.org/pypi/Jinja2  requests http://

MySQL初识与安装

初识数据库 为什么要使用数据库 第一,将文件和程序存在一台机器上是很不合理的. 第二,操作文件是一件很麻烦的事 你可以理解为 数据库 是一个可以在一台机器上独立工作的,并且可以给我们提供高效.便捷的方式对数据进行增删改查的一种工具. 如此就帮助我们解决了上面出现的问题,如果将所有的数据都存储在一个独立的机器上,而对用户提供服务的机器只是存放你写的代码. 数据库的优势 1.程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务. 2.数据一致性 :所有的数据都存储在一起,所有的程

初识安卓-安装中遇到的一点坑

大三了,也想学点开发类的东西了..感觉自己还不会什么..装个安卓弄了一天. 大体上的安装就不说了,网上都有教程.大概分三步走,安装SDK--->安装Eclipse--->安装ADT 0.更新SDK,ADT是要FQ的,FQ软件的话,为了防止和谐就不给出来了,各种百度云里面应该会有的.更新SDK按照需要选择就好,不必要全部都安装. 1.如果安装的eclipse上面这两个图标没有的话 2.创建Andriod项目的时候 android private libraries 不见了,原因是因为androi

初识genymotion安装遇上的VirtualBox问题

想必做过Android开发的都讨厌那慢如蜗牛的 eclipse原生Android模拟器吧! 光是启动这个模拟器都得花上两三分钟,慢慢的用起来手机来调试,但那毕竟不是长久之计,也确实不方便,后来知道了genymotion这个模拟器,Genymotion依赖于VirtualBox(著名的开源虚拟机软件,轻巧.好用!),就是说Genymotion跟VirtualBox要一起使用(Genymotion调用了VirtualBox的接口). 在安装过程中总是遇上这样那样的问题,这不刚好遇上了. 1.先码图看

GeoServer初识与安装

学习过程中发现官网上的东西足够基础了,所以在这只做一下索引和补充. 官方网址:http://live.osgeo.org/zh/overview/geoserver_overview.html 安装: 说明:geoserver 2.X版本以上基本只需要安装jre即可,无需安装jdk 相关知识了解: JRE 和 JDK 的区别:https://www.zhihu.com/question/20317448 1.jre下载和安装 参考:http://blog.csdn.net/tiantang_19

ActiveMQ初识及安装

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线,支持mqtt协议,作为服务器 安装 下载activemq http://activemq.apache.org/activemq-5100-release.html 解压到磁盘 安装jdk 配置javahome,选择系统变量 JAVA_HOME     值:C:\Program Files\Java\jdk1.8.0_25 Path  值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; classp