SaltStack原理

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

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

当客户端启动后,会主动连接Master端注册,然后一直保持该TCP连接,而Master通过这条TCP连接对客户端进行控制。如果连接断开,Master对客户端将不能进行控制。但是,当客户端检查到连接断开后,会定期向Master端请求注册连接。

SaltStack常用模块

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

SaltStack批量部署并配置Apache

部署环境

角色 主机名 IP地址
master master 192.168.10.157
minion web1 192.168.10.161
minion web2 192.168.10.129

开始部署

SaltStack安装
1、修改所有主机的主机名和hosts文件后重启
master:vim /etc/hostname master       //修改主机名vim /etc/hosts192.168.10.157   master
192.168.10.161   web1
192.168.10.129   web2init 6       //重启
web1:vim /etc/hostname web1       //修改主机名vim /etc/hosts192.168.10.157   master
192.168.10.161   web1
192.168.10.129   web2init 6       //重启
web2:vim /etc/hostname web2       //修改主机名vim /etc/hosts192.168.10.157   master
192.168.10.161   web1
192.168.10.129   web2init 6       //重启
2、三台主机上安装epel源
yum install epel-release -y
3、master上安装salt-master
yum install salt-master -y
4、编辑master主机上的salt配置文件
vim /etc/salt/masterinterface: 192.168.10.157         //15行,改为为本机地址     auto_accept: True    //215行,自动认证被控端的认证     file_roots:          //416-418行,去掉注释开启 base:- /srv/salt         //这个目录默认是没有的,需要创建。pillar_roots:      //529-531行, 去掉注释开启base:- /srv/pillar      //这个目录默认是没有的,需要创建。pillar_opts: True    //552行,开启pillar功能nodegroups:          //710行,组的分类group1: 'web1'group2: 'web2'
5、查看修改的内容
cat /etc/salt/master | grep -v ^$ | grep -v ^#

6、创建salt目录及pillar目录
mkdir /srv/salt
mkdir /srv/pillar
7、关闭防火墙和安全功能,开启salt-master服务并查看4505端口和4506端口是否开启
systemctl stop firewalld.service
setenforce 0      //关闭防火墙和安全功能systemctl start salt-master.service  开启服务
netstat -ntap | egrep '4505|4506'

8、在两台被控端web1,web2上安装salt-minion
yum install salt-minion -y
9、编辑salt-minion的配置文件
vim /etc/salt/minionmaster: 192.168.10.157     //16行,指定控制端IP
id: web1     //78行,指定本机主机名,web2则为web2    
10、两台被控端关闭防火墙和安全功能,开启服务
systemctl stop firewalld.service
setenforce 0         //关闭防火墙和安全功能
systemctl start salt-minion.service      //开启服务
11、测试控制端与被控端的通信状态
salt '*' test.ping
web2:True
web1:True

SaltStack批量部署Apache
1、master上创建top.sls文件并写入以下内容
vim /srv/salt/top.slsbase:'*':        //表示在所有的客户端执行apache模块- apache

2、master上创建apache.sls文件并写入以下内容
vim /srv/salt/apache.slsapache-service:pkg.installed:- names:- httpd- httpd-develservice.running:- name: httpd- enable: True

3、重启salt-master服务
systemctl restart salt-master
4、刷新state配置命令,让两台被控端去执行安装apache
salt '*' state.highstateweb2:
----------ID: apache-serviceFunction: pkg.installedName: httpdResult: TrueComment: Package httpd is already installed.Started: 15:22:08.547203Duration: 1363.436 msChanges:
----------ID: apache-serviceFunction: pkg.installedName: httpd-develResult: TrueComment: Package httpd-devel is already installed.Started: 15:22:09.910806Duration: 0.533 msChanges:
----------ID: apache-serviceFunction: service.runningName: httpdResult: TrueComment: Service httpd is already enabled, and is in the desired stateStarted: 15:22:09.911959Duration: 360.802 msChanges:   Summary
------------
Succeeded: 3
Failed:    0
------------
Total states run:     3
web1:
----------ID: apache-serviceFunction: pkg.installedName: httpdResult: TrueComment: Package httpd is already installed.Started: 15:22:08.546047Duration: 1364.252 msChanges:
----------ID: apache-serviceFunction: pkg.installedName: httpd-develResult: TrueComment: Package httpd-devel is already installed.Started: 15:22:09.910497Duration: 0.516 msChanges:
----------ID: apache-serviceFunction: service.runningName: httpdResult: TrueComment: Service httpd is already enabled, and is in the desired stateStarted: 15:22:09.911733Duration: 375.981 msChanges:   Summary
------------
Succeeded: 3
Failed:    0
------------
Total states run:     3


接上图

通过执行结果看到了三个ID,它们相当于三个任务,第一个安装httpd,第二个安装httpd-devel,第三个启动。并且显示三个都成功了,失败为零。

5、两台被控端上查看是否已安装Apache并开启

web1:

web2:

实验完成

转载于:https://blog.51cto.com/13641879/2155348

自动化运维之SaltStack,批量安装httpd实战相关推荐

  1. saltstack自动化运维一键部署rpm安装httpd和源码安装nginx

    配置环境:rhel6.5 server1:172.25.254.1 master server2:172.25.254.2 minion server3:172.25.254.3 minion 一.安 ...

  2. 自动化运维工具ansible(安装与模块介绍)

    自动化运维工具ansible(安装与模块介绍) 一.ansible运维工具概述 (一).ansible的特点 (二).ansible的原理 (三)ansible的优点 二.安装ansible 三.an ...

  3. 自动化运维工具ansible的安装管理以及模块介绍

    自动化运维工具ansible的安装管理以及模块介绍 目录 自动化运维工具ansible的安装管理以及模块介绍 一.ansible概述 1.几种常用运维工具比较 2.Ansible简介 3.Ansibl ...

  4. 自动化运维工具SaltStack详细部署

    2019独角兽企业重金招聘Python工程师标准>>> 自动化运维工具SaltStack详细部署 2014-12-28 17:30:34 标签:saltstack 原创作品,允许转载 ...

  5. 自动化运维之SaltStack实践

    自动化运维之SaltStack实践 1.1.环境 linux-node1(master服务端) 192.168.0.15 linux-node2(minion客户端) 192.168.0.16 1.2 ...

  6. 【Python自动化运维】Python环境安装及基础语法

    [Python自动化运维]Python环境安装及基础语法 1. Python环境安装 2. Python基础语法 1. Python环境安装   pyenv官方安装手册:https://github. ...

  7. 轻量级自动化运维工具Fabric的安装与实践

    一.背景环境 在运维工作中,经常会遇到重复性的劳动,这个时候为了效率就必须要使用自动化运维工具. 这里我给大家介绍轻量级自动化运维工具Fabric,Fabric是基于Python语言开发的,是开发同事 ...

  8. 自动化运维工具——SaltStack(上)

    SaltStack 一.SaltStack简介 二.SaltStack部署 三.远程执行模块 四.apache自动安装配置 五.nginx 自动化安装 六.grains模块使用 1.grains默认模 ...

  9. 自动化运维工具Saltstack(一)

    1.saltstack简介: 什么是saltstack? saltstack是基于python开发的一套C/S架构配置管理工具 使用SSL证书签方的方式进行认证管理 号称世界上最快的消息队列ZeroM ...

最新文章

  1. 妙用postman系列——postman建组、分享
  2. 理财周报,致歉还远远不够
  3. python 解压js压缩的图片_Python解压各种压缩文件总结
  4. 基于STM32F103ZET6 HC_SR04超声波测距模块
  5. 雇水军刷分有效吗?虚假评论的影响研究分析
  6. html下拉菜单jq怎么设置,jquery+css实现下拉列表功能
  7. 九度1377缓变序列
  8. svm算法 java实现_SVM算法实现(一)
  9. load和loads的区别
  10. 英语-汉语600句-会见:Making an Appointment/约会
  11. P. Hamilton / Quantitative Investigation of QRS Detection Rules Using the MIT/BIH Arrhythmia Databa
  12. 蓝桥杯2015年第六届C/C++B组国赛第一题-积分之迷
  13. Overloud Gem Modula for Mac - 三合一经典调制插件
  14. 53.Linux/Unix 系统编程手册(下) -- POSIX 信号量
  15. vim替换字符串带斜杠_vim替换命令
  16. esp8266使用安信可IDE编译、烧录
  17. SpringBoot(53) 整合canal实现数据同步
  18. XP框架开启debug模式_win10 2004系统如何开启夜间护眼模式的问题
  19. java查询城市区号_城市查区号示例代码
  20. 为师生负重前行:记校园防疫中的故事

热门文章

  1. 基础数据结构【二】————动态数组,单向链表及链表的反转
  2. 极品:蓝丽网 - Vml图像画板.2003 web上的PhotoShop
  3. SQLserver安全设置攻略
  4. 在ASP.NET中自动给URL地址加上超链接
  5. 一个分析“文件夹”选择框实现方法的过程
  6. WMI技术介绍和应用——查询磁盘分区和逻辑磁盘信息
  7. 在Windows和Linux上编译gRPC源码操作步骤(C++)
  8. 【FFmpeg】降低转码延迟方法、打印信息详解、refcounted_frames详解
  9. 账号管理工具_短视频矩阵管理工具,多个账号同步管理
  10. linux mipi驱动分析_嵌入式技术在血液分析仪中的应用方案