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. 按的第一个greasemonkey插件:评论时可以粘贴啦~~

    原来的样子:如果按ctrl+V会跳出错误

  2. codevs 1131 统计单词数

    #include<iostream> #include<string> using namespace std; int main() { string s, s0; getl ...

  3. 【python】列表&&元组&&字典

    列表:用“[]”包裹,可对值增删改. 列表遍历: 方法一: alist=["a","b","c","d","e ...

  4. RPC终结点映射

    “没有更多的终结点可用”错误消息表示 RPC 终结点映射程序无法对基于 RPC 运行的服务使用大于 1024 的端口.注意:RPC 终结点映射程序在端口 135 上运行. http://support ...

  5. vim配置之目录结构

    我喜欢作配置分离,这样比较好管理,这里直接贴一下tree的目录结构 xxx@debian:~/vimConfig$ tree . ├── install │   ├── install.sh │   ...

  6. php对象的实现

    1.对象的数据结构非常简单 typedef struct _zend_object zend_object; struct _zend_object { zend_refcounted_h gc; / ...

  7. FPGA将加速今日新型态数据中心的主流应用

    在这个强调智能与联网的时代,可编程逻辑栅阵列 (FPGA)已经成为一个重要且不可或缺的元件.以全球500亿个联网设备,一年所产生的数据量将不计其数.从数据中心.5G通讯.虚拟网络功能,到嵌入式系统,F ...

  8. 【Spring学习笔记-MVC-9】SpringMVC数据格式化之日期转换@DateTimeFormat

    作者:ssslinppp       1. 摘要 本文主要讲解Spring mvc数据格式化的具体步骤: 并讲解前台日期格式如何转换为java对象: 在之前的文章<[Spring学习笔记-MVC ...

  9. R语言学习——欧拉计划(3)Largest prime factor 求最大质因数

    The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 60085 ...

  10. 利用.pbk来实现ADSL开机自动拨号

    当你新建拨号连接或者VPN连接之后在你的电脑里会创建一个.pbk的文件 这个.pbk的文件可以说是一个集合,将你电脑的所有连接都保存在一起. 同时你还可以将此连接复制起来传给其他人. 系统默认的.pb ...