自动化运维系列之SaltStack批量部署Apache服务

自动化运维系列之SaltStack批量部署Apache服务

saltstack原理

SalStack由master和minion构成,master是服务端,表示一台服务器;minion是客户端,表示多台服务器。在Master上发送命令给符合条件的minion,Minion就会执行相应的命令。Master和Minion之间是通过ZeroMQ(消息队列)进行通信的。

SaltStack的Master端的监听端口是4505和4506,4505端口是Master和Minion认证通信端口;4506端口是Master用来发送命令或者接收Minion的命令执行返回信息。

当客户端启动后,会主动连接Master端注册,然后一直保持该TCP连接,而Master通过这条TCP连接对客户端进行控制。

saltstack常用模块

(1)、pkg模块

pkg模块的作用是包管理,包括增删更新。

(2)、file模块

file模块的作用的管理文件操作,包括同步文件、设置文件权限和所属用户组、删除文件等操作。

(3)、cmd模块

cmd模块的作用是在Minion上执行命令或者脚本。

(4)、user模块

user模块的作用是管理系统账户操作。

(5)、service模块

service模块的作用是管理系统服务操作。

(6)、cron模块

cron模块的作用是管理cron服务操作。

SaltStack部署安装

  • 部署环境
角色 主机名 IP地址
master master.saltstack.com 172.16.10.138
minion web01.saltstack.com 172.16.10.147
minion web02.saltstack.com 172.16.10.146

安装部署的操作步骤

  • 修改三台服务器的主机名

vim /etc/hostname

三台主机分别为:
master.saltstack.com    //(管理)
web01.saltstack.com     //(被管理)
web02.saltstack.com     //(被管理)
  • 修改主机解析文件

vim /etc/hosts

172.16.10.138 master.saltstack.com
172.16.10.147 web01.saltstack.com
172.16.10.146 web02.saltstack.com

//修改完成后,init 6 重启服务器使配置生效
  • 重启完成后,首先关闭防火墙
systemctl stop firewalld.service   //关闭防火墙
setenforce 0     //关闭增强性安全功能
  • 安装服务
yum install -y epel-release      //配置安装软件源
yum install -y salt-master      //管理端安装
yum install -y epel-release     //配置安装软件源
yum install -y salt-minion      //被管理端安装
  • 管理端配置(修改管理端的配置文件)

vim /etc/salt/master

修改如下:
15行 interface: 172.16.10.138   //监听地址(本地地址)
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:
          base:
          - /srv/pillar         //pillar的主目录,需要创建
  • 查看对主配置文件做的更改

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

  • 创建saltstack文件根目录、pillar的主目录
mkdir /srv/salt          //创建saltstack文件根目录
mkdir /srv/pillar        //创建pillar的主目录
  • 启动master服务器(管理端)
systemctl start salt-master.service      //开启salt-master服务
systemctl enable salt-master.service    //设置开机自启动
netstat -anpt | egrep ‘4505|4506‘       //检查master的端口是否开启

  • 被管理端配置

vim /etc/salt/minion

16行 master: 172.16.10.138      //指定主控端IP
78行 id: web01.saltstack.com     //指定被控端主机名
     id: web02.saltstack.com     //第二台被控端主机名
  • 开启被控端的服务
systemctl start salt-minion.service
  • 主控端测试与被控端的通信状态
salt ‘*‘ test.ping     //*表示所有主机
salt ‘*‘ cmd.run ‘df -h‘   //远程执行命令
salt-key   //查看在 master 上已经被接受过的客户端
salt ‘web01.saltstack.com‘ grains.items (静态数据)
salt ‘web01.saltstack.com‘ pillar.items  (动态数据)

配置管理安装Apache

  • 在主控端创建入口文件

vim /srv/salt/top.sls

base:
  ‘*‘:
    - apache
注意:‘*‘,则表示在所有的客户端执行 apache 模块。
  • 创建apache.sls文件并写入以下内容

vim /srv/salt/apache.sls

apache-service:
  pkg.installed:
    - names:                // 如果只有一个服务,那么就可以写成 –name: httpd 不用再换一行
      - httpd
      - httpd-devel
  service.running:
    - name: httpd
    - enable: True
注意:apache-service 是自定义的 id 名。pkg.installed 为包安装函数,下面是要安装的包的名字。service.running 也是一个函数,来保证指定的服务启动,enable 表示开机启动。
  • 重启控制端服务
systemctl restart salt-master.service
  • 刷新state配置命令,使两台被控端安装apache并配置启动服务
salt ‘*‘ state.highstate 

  • 被控端检查验证acaphe服务是否安装启动

原文地址:http://blog.51cto.com/13659301/2160056

时间: 2024-10-26 04:51:37

自动化运维系列之SaltStack批量部署Apache服务的相关文章

自动化运维(一):Cobbler批量部署操作系统

作者:独笔孤行@TaoCloud 前言 Cobbler是自动化运维的必备工具,可通过网络启动(PXE)方式实现操作系统快速批量安装.Cobbler快速安装操作系统基于kickstart实现,但Cobbler功能更完善,管理更加简便.高效.Cobbler通过将安装系统所涉及的服务(tftp.dhcp.kickstart)集中管理,提供全自动化批量快速安装系统的网络环境,以实现大规模机房设备的统一管理. 一.简介 Cobbler支持CLI与WEB两种管理方式.要求所有被安装系统的服务器与Cobble

自动化运维系列之Ansible的简介与安装【持续更新···】

自动化运维系列之Ansible的简介与安装 自动化运维工具简介 由于互联网的快速发展导致产品更新换代的速度逐渐加快,这就导致运维人员的日常工作会大大增加,如果还是按照传统方式进行维护工作会使工作效率低下.此时,就需要部署自动化运维了,自动化运维会尽可能安全.高效的完成运维人员的日常工作. 自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的Agent程序来完成管理功能,如:Puppet.Func.Zabbix等:另一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,

自动化运维系列之Ansible命令应用基础(模块的应用)【持续更新中···】

自动化运维系列之Ansible命令应用基础(模块的应用) 模块简介 Ansible可以使用命令行方式进行自动化管理,基本语法如下: ansible <host-pattern> [-m module_name] [-a args] <host-pattern> 对哪些主机生效 [-m module_name] 需要使用的模块 [-a args] 模块特有的参数,这里在使用时需加单引号哦! Ansible的命令行管理工具都是由一系列模块.参数所支持的,可以在命令行后加上-h或--he

自动化运维之Samba4.2.0部署遇到问题:Ignoring invalid value &#39;share&#39; for parameter &#39;security&#39;

1, download file wget https://download.samba.org/pub/samba/stable/samba-4.2.0.tar.gz 2,解压文件 tar -xzvf samba-4.2.0.tar.gz 3,编译安装Samba cd samba-4.2.0 ./configure --prefix=/usr/local/samba/ make;make install 4,编译过程及状态 * installing bin/default/source4/ut

自动化运维系列之Ansible的YAML、基础元素介绍

自动化运维系列之Ansible的YAML.基础元素介绍 YAML简介 YAML是一种用来表达资料序列的格式.YAML是YAML Ain't Markup Lanaguage的缩写,即YAML不是XML. 特点 1.具有很好的可读性,易于实现: 2.表达能力强,扩展性好: 3.和脚本语言的交互性好: 4.有一个一致的信息模型: 5.可以基于流来处理. YAML语法 YAML的语法和其他语言类似,也可以表达散列表.标量等数据结构. YAML结构通过空格来展示:序列里的项用"-"来代表:Ma

自动化运维神器之saltstack (五)salt-ssh的应用场景

satlstack号称自动化运维的利器,那么saltstack能不能实现自身的批量部署呢?如果你也有这样的疑问,那么就更要看这篇文章了.答案当然是肯定的啦!saltstack可以利用salt-ssh来实现自身的批量部署.首先看待salt-ssh,很容易想到它是一个依赖 ssh 来进行远程命令执行的工具,这样做的好处是你不必在客户端安装minion程序,就可以实现远程命令的执行,而且salt-ssh支持salt的绝大部分功能. 既然不安装minion端,那么master怎样识别到客户端并与客户端进

自动化运维工具--Ansible(安装部署、模块简介与操作)

一.Ansible概述 互联网的快速发展导致产品更新换代速度加快,按照传统维护操作使得工作效率低下,自动化运维以尽可能安全高效的完成工作为目的,实现代替传统工作方式. 自动化运维工具划分为两类: 一是需要使用代理工具的,也就是基于agent程序来实现管理功能,例如puppet.func.zabbix等 二是不需要代理配置工具的,可以直接基于SSH服务来完成管理功能,如ansible,fabric等. 自动化运维工具比较: 工具 开发语言 结构 配置文件格式 运行任务 Ansible Python

自动化运维之Ansible的安装部署与命令模块

Ansible简介 Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架. 主要包括: (1)连接插件connection plugins:负责和被监控端实现通信: (2)host inventory:指定操

自动化运维工具之saltstack

今天试着在centos7上安装了saltstack自动化运维工具,以下是安装步骤: 首先,我们安装bash-completion包,它可以补全centos7的命令. yum install -y bash-completion 关于服务的启动问题: 首先,设置服务开机自动启动: systemctl enable salt-master 查看是否设置好开机启动: systemctl is-enabled salt-master 启动服务: systemctl restart salt-master