博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自动化运维之SaltStack,批量安装httpd实战
阅读量:6501 次
发布时间:2019-06-24

本文共 4423 字,大约阅读时间需要 14 分钟。

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   master192.168.10.161   web1192.168.10.129   web2init 6       //重启
web1:vim /etc/hostname web1       //修改主机名vim /etc/hosts192.168.10.157   master192.168.10.161   web1192.168.10.129   web2init 6       //重启
web2:vim /etc/hostname web2       //修改主机名vim /etc/hosts192.168.10.157   master192.168.10.161   web1192.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 ^#

自动化运维之SaltStack,批量安装httpd实战

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

自动化运维之SaltStack,批量安装httpd实战

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

自动化运维之SaltStack,批量安装httpd实战

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

自动化运维之SaltStack,批量安装httpd实战

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

自动化运维之SaltStack,批量安装httpd实战

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

自动化运维之SaltStack,批量安装httpd实战

接上图
自动化运维之SaltStack,批量安装httpd实战
通过执行结果看到了三个ID,它们相当于三个任务,第一个安装httpd,第二个安装httpd-devel,第三个启动。并且显示三个都成功了,失败为零。

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

web1:

自动化运维之SaltStack,批量安装httpd实战
web2:
自动化运维之SaltStack,批量安装httpd实战

实验完成

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

你可能感兴趣的文章
ORACLE物化视图(物理视图)
查看>>
android 读取json数据(遍历JSONObject和JSONArray)(转)
查看>>
UIScrollView中的手势
查看>>
沙朗javascript总结一下(一)---基础知识
查看>>
js深入研究之函数内的函数
查看>>
LeetCode:4_Median of Two Sorted Arrays | 求两个排序数组的中位数 | Hard
查看>>
python之commands模块
查看>>
android应用开发--------------看RadioGroup源代码,写相似单选选项卡的集成控件(如底部导航,tab等等)...
查看>>
LeetCode - Binary Tree Level Order Traversal
查看>>
FTP协议完全详解
查看>>
【C语言天天练(十五)】字符串输入函数fgets、gets和scanf
查看>>
【环境配置】配置sdk
查看>>
accept()
查看>>
USB 2.0 Hub IP Core
查看>>
USB 2.0 OTG IP Core
查看>>
解读浮动闭合最佳方案:clearfix
查看>>
Charles使用
查看>>
dynamic关键字的使用
查看>>
iOS 音乐播放器之锁屏效果+歌词解析
查看>>
android O 蓝牙设备默认名称更改
查看>>