首页 > 代码库 > (一)slatstack简介与安装

(一)slatstack简介与安装

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

(一)slatstack简介与安装