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是来接受消息的。

具体步骤如下

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

  2. salt命令,将cmd.run ls命令从salt.client.LocalClient.cmd_cli发布到master,获取一个jobid,根据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执行结果,将结果输出到终端。

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安装配置的更多相关文章

  1. Saltstack 集中化管理平台安装

    Saltstack的简介 SaltStack(http://www.saltstack.com/)是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的pupp ...

  2. SaltStack 是一个服务器基础架构集中化管理平台

    SaltStack详细部署   一.基础介绍============================================================================== ...

  3. 自动化运维工具SaltStack安装配置

    SaltStack是一种全新的基础设置管理方式,部署轻松,在几分钟内可运作起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯.通过部署SaltStack环境,我们可以在成千上万台服务 ...

  4. Disconf 分布式配置管理平台(安装配置)

    Disconf 分布式配置管理平台(安装配置) 依赖环境 Nginx:处理静态资源请求.动态请求转发到Tomcat Tomcat:处理Nginx的请求 Redis:用户session管理 MySQL: ...

  5. 如何在Windows平台下安装配置Memcached

    Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一 ...

  6. saltstack安装配置(syndic)

    syndic是saltstack用来做集群部署的,一般结构如图: syndic是一个特殊的minion,syndic类继承于minion类,syndic可以看作一个代理,只做数据传递. CentOS上 ...

  7. caffe学习(1):多平台下安装配置caffe

    如何在 centos 7.3 上安装 caffe 深度学习工具   有好多朋友在安装 caffe 时遇到不少问题.(看文章的朋友希望关心一下我的创业项目趣智思成) 今天测试并整理一下安装过程.我是在阿 ...

  8. 安装Rancher容器化管理平台

    卸载已有的避免冲突 yum remove docker  docker-common docker-selinux docker-engine   安装需要的软件包,yum-util 提供yum-co ...

  9. 集中化管理平台 — Ansible 详解

    # Ansible 简介 Ansible 类似于Saltstack,是一种集成IT系统的配置管理.应用部署.执行特定任务的开源平台.Ansible基于Python语言实现,由Paramiko和PyYA ...

随机推荐

  1. Oracle根据表的大小排序SQL语句

    --按照数据行数排序select table_name,blocks,num_rows from dba_tables where owner not like '%SYS%' and table_n ...

  2. C#重新启动时,关闭较早的进程

    WPF程序重新启动,如果有客户端进程存在,则关闭较早的进程 private static System.Threading.Mutex mutex; public App() { this.Start ...

  3. 【android】adb常用命令

    ADB常用命令: [adb help]获取帮助 [adb get-serialno]获取设备串号 [adb -s <serialNumber> <command>]给特定设备发 ...

  4. java工具类-FreeMarker

    package com.huawei.it.citools.utils; import java.io.File;import java.io.IOException;import java.io.S ...

  5. Android 对话框(Dialog)大全

    转自: http://www.cnblogs.com/salam/archive/2010/11/15/1877512.html Activities提供了一种方便管理的创建.保存.回复的对话框机制, ...

  6. wkhtmltopdf+itext实现html生成pdf文件的打印下载(适用于linux及windows)

    目中遇到个根据html转Java的功能,在java中我们itext可以快速的实现pdf打印下载的功能,在itext中我们一般有以下三中方式实现 配置pdf模板,通过Adobe Acrobat 来设置域 ...

  7. 1116 Come on! Let's C (20 分)

    1116 Come on! Let's C (20 分) "Let's C" is a popular and fun programming contest hosted by ...

  8. js如何判断小数点后有几位

    <script> var n=3.143423423;alert(n.toString().split(".")[1].length); </script> ...

  9. Windows Storage Stack

  10. 使用SolrNet访问Solr-5.5.0

    由于今年年初刚发布的Solr-5.5.0,网上所能找到的资料少之又少,所以只能靠自己一点点摸索. 从某Hub上下载了SolrNet源码,按照教程提交文档或者查询均失败,无奈只得跟断点一点点差怎么回事. ...