saltstack是由thomas Hatch于2011年创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统。

salt强大吗

系统管理员日常会进行大量的重复性操作,例如安装软件,修改配置文件,创建用户,批量执行命令等等。如果主机数量庞大,单靠人工维护实在让人难以忍受。saltstack高效运维

  早期运维人员会根据自己的生产环境来写特定脚本完成大量重复性工作,这些脚本复杂且难以维护。系统管理员面临的问题主要是1、系统配置管理,2、远程执行命令,因此诞生了很多开源软件,系统维护方面有fabric、puppet、chef、ansible、saltstack等,这些软件擅长维护系统状态或方便的对大量主机进行批量的命令执行。

  salt灵活性强大,可以进行大规模部署,也能进行小规模的系统部署。salt的设计架构适用于任意数量的服务器,从少量本地网络系统到跨越数个数据中心,拓扑架构都是c/s模型,配置简单。

  不管是几台、几百台、几千台服务器,都可以使用salt在一个中心节点上进行管控,灵活定位任意服务器子集来运行命令。 

  Salt是python编写的,支持用户通过python自定义功能模块,也提供了大量的python API接口,用户可以根据需要进行简单快速的扩展。

saltstack的运行方式

  • Local  本地运行,交付管理
  • Master/Minion   <<<   常用方式   
  • Salt SSH   不需要客户端

salt部署基本架构

在安装salt之前,先理解salt架构中各个角色,主要区分是salt-master和salt-minion,顾名思义master是中心控制系统,minion是被管理的客户端。

salt架构中的一种就是master > minion。

saltstack高效运维

在远程执行系统中,salt用python通过函数调用完成任务。

运行salt依赖包

python
zeromq
pyzmp
pycrypto
msgpack-python
yaml
jinja2

解决依赖包最简单的办法就是用安装包管理器,yum工具

服务器环境准备

服务器环境 centos7(master) centos7(master)

ip地址

192.168.178.131 192.168.178.132

身份

master slave

软件包

salt-master salt-minion

修改虚拟机ip地址为静态地址,并且确保可上网

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="7d4f9ede-810f-4976-a01b-250b845c99cc"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.11.131
NETMASK=255.255.255.0
GATEWAY=192.168.11.1
DNS1=119.29.29.29
master网卡配置

相关文章: