SaltStack自动化批量部署Apache

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

内容简介: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

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

查看所有标签

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

A Philosophy of Software Design

A Philosophy of Software Design

John Ousterhout / Yaknyam Press / 2018-4-6 / GBP 14.21

This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first ......一起来看看 《A Philosophy of Software Design》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换