标签:saltstack
Slatstack简介
1.Saltstack是基于Python开发的一种C/S架构配置管理工具;还是做云计算和数据中心架构编排利器;
2.使用ZeroMQ消息队列,分布式远程执系统用来远程管理单个或者多个节点;
3.使用SSL证书签发的方式进行认证管理;
Saltstack核心功能:
1.使命令发送到远程系统是并行 而不是串行
2.使用ssl安全加密的协议
3.使用最小最快的网络载荷
4.提供简单的编程接口
5.salt 域控制系统来远程执行,是系统成为目标,不仅可以使用主机名还可以使用系统属性;
4种运行方式:
local(本地,一台机器玩耍,不建议)
Master、Minion(通过server/agent的方式进行管理)
Salt SSH (通过SSH方式进行管理)
C/S架构服务模式:
Saltstack架构中,服务器端 Master 客户端叫做 Minion;
消息队列模式:
发布于订阅,pub/sub服务模式;
Msterless架构模式:
1.不需要单独安装Saltstack Master机器,每台机器安装Minion,然后采用本机只对本机负责配置工作机制的服务模式;
说明:实际生产环境中,一般使用Master 和Minion模式进行配置管理;
Master 和minion 都是以守护进程的模式运行,一直监听服务器配置文件定义的ret_port(接受minion请求)和publish_port(发布消息)端口
整个通讯过程我们可以使用debug查看详细的记录
C/S架构模式下:
Saltstack 三大功能
1.远程执行
2.配置管理(状态,不可以回滚,需要谨慎操作)
3.云管理
在这里有必要提一下salt的云管理,salt拥有强大的云管理功能,更支持如阿里云、亚马逊等一系列公有云的管理,so以后在创建阿里云主机的时候,就可以不需要登录相关账号密码,只需要一条命令即可创建。此外salt对openstack支持的也相当不错,同样能够管理openstack创建的虚拟机
类似工具还有:
Puppet(ruby) + func ansible(python)
典型案例:
BAT公司
Saltstack安装
Saltstack有两种消息系统:
1.RAET(测试阶段)
2.ZeroMQ(默认使用)
自动化运维可以实现的功能
(0)需求分析
(1)机房设备上下架
(2)系统初始化
(3)应用环境初始化
(4)应用的部署 调试 配置……………….(saltstack)
(5)代码的发布(jenkins + ant + svn)
(6)服务监控 应用 系统CPU 内存 硬盘……………..
(7)数据备份……………………
虚拟化的优势:弹性,扩展性,充分利用硬件资源。
saltstack特性
(1)、部署简单、方便;
(2)、支持大部分UNIX/Linux及Windows环境;
(3)、主从集中化管理;
(4)、配置简单、功能强大、扩展性强;
(5)、主控端(master)和被控端(minion)基于证书认证,安全可靠;
(6)、支持API及自定义模块,可通过Python轻松扩展。
Master与Minion认证
(1)、minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在/etc/salt/minion里面设置)下自动生成minion.pem(private key)和 minion.pub(public key),然后将 minion.pub发送给master。
(2)、master在接收到minion的public key后,通过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id命名的 public key,然后master就能对minion发送指令了。
Master与Minion的连接
(1)、SaltStack master启动后默认监听4505和4506两个端口。4505(publish_port)为saltstack的消息发布系统,4506(ret_port)为saltstack客户端与服务端通信的端口。如果使用lsof 查看4505端口,会发现所有的minion在4505端口持续保持在ESTABLISHED状态。
[root@master ~]# lsof -i :4505
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
salt-mast 8790 root 12u IPv4 43001 0t0 TCP *:4505 (LISTEN)
salt-mast 8790 root 14u IPv4 49441 0t0 TCP salt-master.com:4505->salt-client.com:45680 (ESTABLISHED)
系统环境:
[root@master ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@master ~]# uname -r
2.6.32-431.el6.x86_64
master:192.168.1.139
client:192.168.1.160
[root@master ~]# tail -2 /etc/hosts
192.168.1.139 slat-master.com
192.168.1.160 slat-client.com
开始安装slat
如果机器内没有epel, 请下载.(2台机器都执行)
rpm -Uvh http://mirrors.neusoft.edu.cn/epel//6/x86_64/epel-release-6-8.noarch.rpm
master安装
yum install salt-master -y #安装master端
/etc/init.d/salt-master start #启动master
chkconfig salt-master on #设置master为开机启动
minion安装与配置
yum install salt-minion -y
vim /etc/salt/minion
将#master: salt修改为master: 192.168.1.139
或者
sed -in ‘s\#master: salt\master: 192.168.1.139\g‘ /etc/salt/minion
id: salt-client.com #将id取消注释,这里是管理端显示的名称,默认显示的是客户端的主机名
/etc/init.d/salt-minion start #启动minion
chkconfig salt-minion on #设置开机启动
master管理
[root@master ~]# salt-key #查看待管理主机
Accepted Keys:
Denied Keys:
Unaccepted Keys:
salt-client.com #等待管理的主机
Rejected Keys:
salt-key -A #接收全部
salt-key -a 指定主机 #可以接收指定主机,支持通配符操作
salt-key -D #删除全部已管理的主机(十分不建议这么做)
salt-key -d 指定主机 #不在管理指定主机
salt-key -L #查看当前所有证书情况
salt-key -A -y # -A 是接受所有等待认证的key
-l ARG, --list=ARG #显示指定状态的key(支持正则表达式)
-L, --list-all #显示所有public keys
-a ACCEPT, --accept=ACCEPT #接受指定等待认证的key(支持正则表达式)
-A, --accept-all #接受所有等待认证得key
-r REJECT, --reject=REJECT #拒绝指定的等待认证的key(支持正则)
-R, --reject-all #拒绝所有等待认证的key
-d DELETE, --delete=DELETE #删除指定key
-D, --delete-all #删除所欲key
-f FINGER, --finger=FINGER #删除指定key
-F, --finger-all #删除所有key
更过salt-key 命令参数 详细查看salt-key -h
[root@master ~]# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
salt-client.com
Proceed? [n/Y] y
Key for minion client accepted.
Key for minion salt-client.com accepted.
[root@master ~]# salt-key
Accepted Keys:
salt-client.com #已经被管理
Denied Keys:
Unaccepted Keys:
Rejected Keys:
本文出自 “比尔linux运维笔记” 博客,请务必保留此出处http://chenshoubiao.blog.51cto.com/6159058/1884482
标签:saltstack
原文地址:http://chenshoubiao.blog.51cto.com/6159058/1884482