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

news/2024/7/7 21:55:54

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地址
mastermaster192.168.10.157
minionweb1192.168.10.161
minionweb2192.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 ^#

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

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'

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

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,批量安装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-develservice.running:- name: httpd- enable: True

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

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

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

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

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

实验完成

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


http://lihuaxi.xjx100.cn/news/236487.html

相关文章

实时显示系统时间

CTime time;CString m_time;void CtimeDlg::OnBnClickedButton1(){// TODO: 在此添加控件通知处理程序代码 SetTimer(1,1000,NULL);}void CtimeDlg::OnTimer(UINT_PTR nIDEvent){// TODO: 在此添加消息处理程序代码和/或调用默认值 timeCTime::GetCurrentTime(); …

python创建图片对应的csv格式_Python:如何从csv文件创建图形节点和边?

你可以用另一个COLATIC和COLATIC来建立一个COLATIC/COLATIC。然后将图“投影”到datetime节点上—如果两个datetime都链接到ColA/ColC节点,则在它们之间创建一个链接。在下面的代码展示了一种创建无向图的方法。我不明白你的例子里的指示是什么意思。在import csvim…

图解5G NR帧结构

子载波间隔 与LTE(子载波间隔和符号长度)相比, NR支持多种子载波间隔(在LTE中,只有15 Khz这种子载波间隔)。 在3GPP38.211中,有关于NR子载波间隔类型的总结。 具体的子载波间隔类型如下图所示&a…

mysql中leave和_MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法

本文主要向大家介绍了MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。DELIMITER $$USE qrsoft_dyj_db$$DROP PROCEDURE IF EXISTS proc_withdraw_approve$$CREATE PR…

ASP.NET 下载文件方式

protected void Button1_Click(object sender, EventArgs e){/*微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。代码如下:*/Response.ContentType "a…

XML DTD 语言学习笔记

-XML DTD 全称:Document Type Definition简介:用于定义文档的合法性。它定义了文档应该有哪些元素及其属性,还有其他一些约束性规则。 注意:DTD语言定义的文档类型是SGML家族的标记性语言。包括SGML,XML,HTML)&#xf…

pma mysql_Table ‘phpmyadmin.pma_table_uiprefs’ doesn’t exist mysql

Error: #1146 – Table ‘phpmyadmin.pma_table_uiprefs’ doesn’t exist mysqlJust upgrade my ubuntu 14 to 15. all looks good then i go to my localhost phpmyadmin and tried to open database then found a strange error like mysql said: #1146 – Table ‘phpmyadm…

Linux上重启服务的正确命令

在开发环境下,我们经常需要部署代码,重启服务,所以会把命令写在脚本中,方便使用。 我们可能这么写 #!/bin/bashps -ef | grep backend-api-1.0 | grep -v "\-\-color" |awk {print $2} |xargs kill -9 sleep 1 nohup ja…