集中化管理平台Saltstack安装配置
salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似,有一个强大的远程执行命令引擎,也有一个强大的配置管理系统,通常叫做Salt State System。
基本原理:
SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信
minion上线后先与master端联系,把自己的pub key发过去,这时master端通过salt-key -L命令就会看到minion的key,接受该minion-key后,也就是master与minion已经互信
master可以发送任何指令让minion执行了,salt有很多可执行模块,比如说cmd模块,在安装minion的时候已经自带了,它们通常位于你的python库中
这些模块是python写成的文件,里面会有好多函数,如cmd.run,当我们执行salt '*' cmd.run 'uptime'
的时候,master下发任务匹配到的minion上去,minion执行模块函数,并返回结果。master监听4505和4506端口,4505对应的是ZMQ的PUB system,用来发送消息,4506对应的是REP system是来接受消息的。
具体步骤如下
Salt stack的Master与Minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc
salt命令,将
cmd.run ls
命令从salt.client.LocalClient.cmd_cli
发布到master,获取一个jobid,根据jobid获取命令执行结果。master接收到命令后,将要执行的命令发送给客户端minion。
minion从消息总线上接收到要处理的命令,交给
minion._handle_aes
处理minion._handle_aes
发起一个本地线程调用cmdmod执行ls命令。线程执行完ls后,调用minion._return_pub
方法,将执行结果通过消息总线返回给mastermaster接收到客户端返回的结果,调用
master._handle_aes
方法,将结果写的文件中salt.client.LocalClient.cmd_cli
通过轮询获取Job执行结果,将结果输出到终端。
1、安装
#yum install salt-master -y 或 yum install salt-minion -y
#chkconfig salt-master on
#service salt-master start
2、防火墙配置
#iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT
.......................................................................................4506..............
被控端无须配置防火墙规则
3、修改主控端配置,然后并重启服务
#vim /etc/salt/master
interface: 192.168.1.20 #绑定Master通信IP
auto_accpet: True #自动认证,避免手动运行salt-key来确认证书信任
file_roots: #指定salt文件根目录位置
base:
- /srv/salt
4、修改被控端配置,并重启服务
#vim /etc/salt/minion
master: 192.168.1.20 #指定master主机IP地址
id: mycentos #修改被控端主机识别id,建议使用操作系统主机名来配置
5、校验安装结果
#salt 'mycentos' test.ping
mycentos:
True
-----------------------------------------------------------------------
当/etc/salt/master没有配置auto_accept:True时,需要通过salt-key命令来进行证书认证操作,具体操作如下:
- salt-key -L 显示已经或未认证的被控端id,Accepted Keys为已认证清单,Unaccpetd Keys为未认证清单;
- salt-key -D 删除所有认证主机id证书
- salt-key -d id 删除单个id证书
- salt-key -A 接受所有id证书请求
- salt-key -a id 接受单个id证书请求
salt-run #管理minion
- salt-run manage.up #显示当前活着的minion
- salt-run manage.down #显示未存活的minion
- salt-run manage.status #显示当前up和down 的minion
- salt-run manage.downremovekeys-True #显示未存活的minion,并将其移除
须知:
SLS文件默认使用序列化数据格式-YAML,这个格式风格你要注意的是:不要使用Tab键缩进,通常开头缩进2个空格,字符后缩进1个空格,如冒号、逗号、横杠。
如果执行命令时,忘记语法,可以使用sys.doc模块查询salt模块相关使用方法。
# salt '*' sys.doc disk
如想看执行过程,可加-l debug,如下:
# salt '*' cmd.run 'ls' -l debug
-----------------------------------------------------------------------------------
此外,salt-bootstrap是SaltStack的一个单独项目,该项目主要用于解决多平台一键部署SaltStack环境。核心工程就是维护一个庞大的bash脚本
Master端安装:
#curl -L https://bootstrap.saltstack.com -o install_salt.sh
#sh install_salt.sh -M -N #只安装最新版Master
Minion端安装:
#echo "IPADDRESS salt" >> /etc/hosts #IPADDRESS为Master服务器地址
#curl -L https://bootstrap.saltstack.com -o install_salt.sh
#sh install_salt.sh -i Minion #只安装最新版Minion并指定Minion id
关于salt-bootstrap脚本的参数可以运行 sh install_salt.sh -h 查看
集中化管理平台Saltstack安装配置的更多相关文章
- Saltstack 集中化管理平台安装
Saltstack的简介 SaltStack(http://www.saltstack.com/)是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的pupp ...
- SaltStack 是一个服务器基础架构集中化管理平台
SaltStack详细部署 一.基础介绍============================================================================== ...
- 自动化运维工具SaltStack安装配置
SaltStack是一种全新的基础设置管理方式,部署轻松,在几分钟内可运作起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯.通过部署SaltStack环境,我们可以在成千上万台服务 ...
- Disconf 分布式配置管理平台(安装配置)
Disconf 分布式配置管理平台(安装配置) 依赖环境 Nginx:处理静态资源请求.动态请求转发到Tomcat Tomcat:处理Nginx的请求 Redis:用户session管理 MySQL: ...
- 如何在Windows平台下安装配置Memcached
Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一 ...
- saltstack安装配置(syndic)
syndic是saltstack用来做集群部署的,一般结构如图: syndic是一个特殊的minion,syndic类继承于minion类,syndic可以看作一个代理,只做数据传递. CentOS上 ...
- caffe学习(1):多平台下安装配置caffe
如何在 centos 7.3 上安装 caffe 深度学习工具 有好多朋友在安装 caffe 时遇到不少问题.(看文章的朋友希望关心一下我的创业项目趣智思成) 今天测试并整理一下安装过程.我是在阿 ...
- 安装Rancher容器化管理平台
卸载已有的避免冲突 yum remove docker docker-common docker-selinux docker-engine 安装需要的软件包,yum-util 提供yum-co ...
- 集中化管理平台 — Ansible 详解
# Ansible 简介 Ansible 类似于Saltstack,是一种集成IT系统的配置管理.应用部署.执行特定任务的开源平台.Ansible基于Python语言实现,由Paramiko和PyYA ...
随机推荐
- spring boot中,jar包、war包的区别
jar包.war包 比较(表格) 项目 jar包 war包 在开发调试完成之后,可以将应用打成JAR包的形式,可以直接使用Maven插件的package命令,最终会形成一个可运行的 JAR包.我们使用 ...
- 解决webpack不是内部命令
在指定路径下安装webpack npm install webpack --save-dev 但是报”不是内部命令错误" 解决方法:安装全局webpack npm install web ...
- java 关于Java中静态代码块以及构造函数的执行先后顺序
先转个链接 http://blog.csdn.net/wangbaokangfei/article/details/7757320 另外补充一下.静态方法,只执行一次就自动在内存中存在,再次实例化此 ...
- 【FusionCharts学习-3】显示中国地图
概述 使用FusionCharts显示中国地图 资源获取 地图下载地址:http://www.fusioncharts.com/download/maps/definition/ 将下载的地图拷贝 ...
- 阿里云内网和公网NTP服务器和其他互联网基础服务时间同步服务器
阿里云为云服务器ECS提供了内网NTP服务器,对于阿里云以外的设备,阿里云同时提供了 公网NTP服务器,供互联网上的设备使用. 内网和公网NTP服务器 以下为阿里云提供的内网和公网NTP服务器列表. ...
- tornado.gen 模块解析
转自:http://strawhatfy.github.io/2015/07/22/Tornado.gen/ 引言 注:正文中引用的 Tornado 代码除特别说明外,都默认引用自 Tornado 4 ...
- 关闭浏览器时的友情提醒jQuery写法
$(window).bind('beforeunload', function () { return '您确定退出该页面吗?'; }); 支持以下浏览器(对号表示支持,叉号表示不支持.):
- MongoDB对Javascript的支持
在项目中MongoDB的Map-Reduce功能做了许多统计任务,在重构代码的时候修改了_id对象里面的属性字段名称,当用db.collection.update({$rename:{"_i ...
- Maven 配置tomcat插件
使用tomcat插件来访问maven 1 先下载tomcat插件(在pom中配置) <!-- 配置Tomcat插件 --> <plugin> <groupId>or ...
- 第14章 UDP编程(3)_利用UDP实现广播功能
3. 广播的介绍 (1)广播 ①广播实现一对多的通信,如QQ群 ②它通过向广播地址发送数据报文实现的 (2)SO_BROADCAST选项 ①SO_BROADCAST选项控制着UDP套接字是否能发送广播 ...