分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

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

发布时间:2023-09-06 02:10责任编辑:白小东关键词:暂无标签
自动化运维系列之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地址
mastermaster.saltstack.com172.16.10.138
minionweb01.saltstack.com172.16.10.147
minionweb02.saltstack.com172.16.10.146

安装部署的操作步骤

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

vim /etc/hostname

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

vim /etc/hosts

172.16.10.138 master.saltstack.com172.16.10.147 web01.saltstack.com172.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 ?????//指定主控端IP78行 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服务是否安装启动

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

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved