SaltStack自动化批量部署Apache

栏目: 服务器 · 发布时间: 5年前

内容简介:SaltStack 是一种基于 C/S 架构的服务器基础架构集中化管理平台,管理端称为 Master,客户端称为 Minion;SaltStack 具备配置管理、远程执行、监控等功能;SaltStack 本身是基于 Python 语言开发实现,结合了轻量级的消息队列软件 ZeroMQ 与 Python 第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack 和 PyYAML 等)构建。通过部署 SaltStack 环境,运维人员可以在成千上万台服务器上做到批量执行命令,

SlatStack原理:

SaltStack 是一种基于 C/S 架构的服务器基础架构集中化管理平台,管理端称为 Master,客户端称为 Minion;SaltStack 具备配置管理、远程执行、监控等功能;SaltStack 本身是基于 Python 语言开发实现,结合了轻量级的消息队列软件 ZeroMQ 与 Python 第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack 和 PyYAML 等)构建。

通过部署 SaltStack 环境,运维人员可以在成千上万台服务器上做到批量执行命令,根据不同的业务特性进行配置集中化管理、分发文件、采集系统数据及软件包的安装与管理等。

SlatStack特性:

  • 部署简单、管理方便;
  • 支持大部分的操作系统,如 Unix/Linux/Windows 环境;
  • 架构上使用C/S管理模式,易于扩展;
  • 配置简单、功能覆盖广;
  • 主控端(Master)与被控端(Minion)基于证书认证,确保安全可靠的通信;
  • 支持 API 及自定义 Python 模块,轻松实现功能扩展。

    SlatStack常用模块:

  • pkg模块---包管理,包括增删更新
  • file模块---管理文件操作,包括同步文件、设置权限和所属用户组、删除文件等操作
  • cmd模块---在minion上执行命令和脚本
  • user模块---管理系统账户操作
  • service模块---管理系统服务操作
  • cron模块---管理cron服务操作

    SlatStack三大组件:

    Grains:静态组件,minion启动时收集信息。

    Pillar:动态组件,定义变量、信息,密码。

    State:核心功能,通过制定好的sls文件对被控主机进行管理。

SlatStack工作模式:

1、slatstack通信模式

SaltStack自动化批量部署Apache

  • Minion 是 SaltStack 需要管理的客户端安装组件,会主动去连接 Master 端,并从 Master 端得到资源状态信息,同步资源管理信息。
  • Master 作为控制中心运行在主机服务器上,负责 Salt 命令运行和资源状态的管理。
  • ZeroMQ 是一款开源的消息队列软件,用于在 Minion 端与 Master 端建立系统通信桥梁。
  • Daemon 是运行于每一个成员内的守护进程,承担着发布消息及通信端口监听的功能。

    2、slatstack执行原理

    SaltStack自动化批量部署Apache

  • Minion 是 SaltStack 需要管理的客户端安装组件,会主动去连接 Master 端,并从 Master 端得到资源状态信息,同步资源管理信息。
  • Master 作为控制中心运行在主机服务器上,负责 Salt 命令运行和资源状态的管理。
  • Master 上执行某条指令通过队列下发到各个 Minions 去执行,并返回结果。

SlatStack部署

实验拓扑:

SaltStack自动化批量部署Apache

实验环境:

角色 主机名 操作系统 IP地址
master master.saltstack.com CentOS7 192.168.37.128
minion web01.saltstack.com CentOS7 192.168.37.130
minion web02.saltstack.com CentOS7 192.168.37.131

部署过程:

一、三台服务器的准备工作

1、分别修改主机名

vim /etc/hostsname                  #master主机
master.saltstack.com

vim /etc/hostsname                  #minion主机
web01.saltstack.com

vim /etc/hostsname
web02.saltstack.com

2、修改hosts文件(三台相同)

192.168.37.128 master.saltstack.com 192.168.37.130 web01.saltstack.com 192.168.37.131 web02.saltstack.com

3、安装epel源

yum install -y epel-release

4、重启服务后关闭防火墙及安全功能

init 6 systemctl stop firewalld.service  setenforce 0

二、master控制器上安装salt

1、安装salt包

yum install -y salt-master

2、修改主配置文件

vim /etc/salt/master
//15行
interface: 192.168.37.128      #监听地址

//215行
auto_accept: True                   #避免要运行salt-key来确认证书     

//416行
file_roots:
    base:
    - /srv/salt                              #saltstack文件根目录位置,放置管理文件

//710行
nodegroups:                           #定义管理组
     group1: 'web01.saltstack.com'
     group2: 'web02.saltstack.com'

//552行
pillar_opts: True                    #开启pillar动态数据,同步文件功能

//529行
pillar_roots:                          #pillar主目录
      base:
      - /srv/pillar

3、查看配置文件中修改内容(注意:配置文件中内容原先全部注释掉,只有修改过的才会过滤出来)

cat /etc/salt/master | grep -v ^$ | grep -v ^# 

SaltStack自动化批量部署Apache 4、创建配置文件中目录

mkdir /srv/salt mkdir /srv/pillar

5、开启服salt-master务

systemctl start salt-master.service netstat -ntap | egrep '4505|4506'
SaltStack自动化批量部署Apache

三、minion被控制端上安装salt

1、安装salt包

yum -y install salt-minion

2、修改配置文件

vim /etc/salt/minion

//16行
master: 192.168.37.128          #指定主控端IP

//78行
id: web01.saltstack.com         #被控制端主机名,另一台需改此处

3、开启salt-minion服务

systemctl start salt-minion.service

四、master上演示控制状态

1、测试与被控制端的通信状态

salt '*' test.ping

SaltStack自动化批量部署Apache

2、远程执行命令

salt '*' cmd.run 'df -h'

SaltStack自动化批量部署Apache

3、查看master上接受的客户端

salt-key

SaltStack自动化批量部署Apache 4、查看被控制主机上grains所有值

salt 'web01.saltstack.com' grains.items salt 'web01.saltstack.com' pillar.items

批量部署安装Apache

1、引导脚本

vim /etc/srv/salt/top.sls

base:                         #*--表示所有客户端执行Apache模块
  '*':
    - apache                #调用Apache文件

2、安装apache脚本

vim /srv/salt/apache.sls

apache-service:              #apache-service是自定义id名
  pkg.installed:                  #pkg.installed为安装包函数
    - names:          
      - httpd
      - httpd-devel
  service.running:
    - name: httpd 
    - enable: True

3、重启服务

systemctl restart salt-master.service

4、执行安装命令

salt '*' state.highstate

SaltStack自动化批量部署Apache

5、最后,查看被控制端服务器apache安装是否成功

SaltStack自动化批量部署Apache

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

黑客渗透

黑客渗透

冰的原点 / 齐鲁电子音像出版社 / 2009-4 / 22.00元

菜鸟起飞,从这里开始!本笔记将透露:渗透、术语、脚本、内网、溢出各种攻击相关的手段和名词,总结、技巧、细节、亮点,不断变化的攻击思想。 ASP、PHP、JSP等不同类型的脚本漏洞,ACCESS、MYSQL、MSSQL、ORACLE等不同类型的数据库缺陷,国内、国外已知和末知的渗透工具······一起来看看 《黑客渗透》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具