阅读量:3
CentOS LAMP脚本自动化运维实践
一、自动化运维的核心内容
CentOS LAMP(Linux+Apache+MySQL+PHP)环境自动化运维涵盖环境部署、日常运维、监控告警、持续集成四大环节,通过脚本与工具实现“无人值守”的高效管理,降低人为错误风险,提升系统稳定性与运维效率。
二、常见自动化运维方法与工具
1. Shell脚本:基础自动化执行
Shell脚本是LAMP自动化运维的“基石”,用于完成重复性命令执行(如安装软件、配置服务)。例如,一键部署LAMP环境的脚本通常包含以下模块:
- 环境准备:关闭防火墙(
systemctl stop firewalld)、禁用SELinux(setenforce 0)、清理旧版本软件(rpm -qa | grep mariadb); - 组件安装:通过
yum安装Apache(httpd)、MySQL(mysql-community-server)、PHP(php74-php)等组件; - 配置优化:修改Apache虚拟主机配置(
/etc/httpd/conf.d/vhost.conf)、MySQL root密码(mysql_secure_installation)、PHP时区(php.ini中的date.timezone); - 服务管理:启动服务(
systemctl start httpd mysqld php74-php-fpm)并设置开机自启(systemctl enable)。
2. 配置管理工具:声明式配置
配置管理工具(如Ansible)通过YAML Playbook定义服务器“期望状态”,实现批量部署与配置一致性。例如,Ansible Playbook可完成:
- 包安装:
yum模块安装Apache、MySQL、PHP; - 服务管理:
service模块启动服务并设置开机自启; - 配置文件分发:
copy模块将自定义Apache虚拟主机配置复制到目标服务器; - 依赖处理:
yum_repository模块添加Remi仓库以安装指定版本PHP。
3. 持续集成/持续部署(CI/CD):自动化代码流转
结合Jenkins与Git实现代码“自动构建-测试-部署”:
- 代码拉取:Jenkins监听Git仓库变更,自动拉取最新代码;
- 依赖安装:执行
composer install安装PHP依赖; - 自动化测试:运行PHPUnit测试用例;
- 部署上线:通过Ansible将代码同步到生产服务器,重启Apache服务。
4. 监控与告警:实时掌握系统状态
使用Zabbix或Nagios监控LAMP组件状态:
- 系统指标:CPU使用率、内存占用、磁盘空间;
- 服务状态:Apache(
httpd)、MySQL(mysqld)、PHP-FPM(php74-php-fpm)是否运行; - 告警机制:通过邮件、短信发送异常告警(如MySQL进程停止、磁盘空间不足80%)。
三、典型自动化运维脚本示例
1. 一键部署LAMP环境(Shell脚本)
#!/bin/bash
# 1. 环境准备
yum update -y && \
yum install -y epel-release && \
rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm && \
yum-config-manager --enable remi-php74
# 2. 安装组件
yum install -y httpd mysql-community-server php74-php php74-php-cli php74-php-fpm php74-php-mysqlnd php74-php-mbstring
# 3. 配置服务
systemctl start httpd mysqld php74-php-fpm && \
systemctl enable httpd mysqld php74-php-fpm
# 4. 安全配置
mysql -uroot -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourRootPassword';" && \
echo "" > /var/www/html/info.php
echo "LAMP环境部署完成!访问 http://服务器IP/info.php 查看PHP信息。"
2. Ansible Playbook(配置管理)
---
- hosts: lamp_servers
become: yes
tasks:
- name: 安装Apache
yum:
name: httpd
state: present
- name: 启动Apache
service:
name: httpd
state: started
enabled: yes
- name: 添加Remi仓库
yum_repository:
name: remi-php74
description: Remi's PHP 7.4 RPM repository
baseurl: https://rpms.remirepo.net/enterprise/remi-php74/
enabled: yes
gpgcheck: yes
- name: 安装PHP 7.4
yum:
name: php74-php,php74-php-mysqlnd,php74-php-mbstring
state: present
3. 监控脚本(Shell)
#!/bin/bash
# 监控Apache状态
if systemctl is-active --quiet httpd; then
echo "Apache运行正常"
else
echo "Apache服务停止!" | mail -s "LAMP监控告警" admin@example.com
fi
# 监控MySQL状态
if systemctl is-active --quiet mysqld; then
echo "MySQL运行正常"
else
echo "MySQL服务停止!" | mail -s "LAMP监控告警" admin@example.com
fi
4. 定时备份脚本(Shell)
#!/bin/bash
# 备份MySQL数据库
BACKUP_DIR="/backup/mysql"
DATE=$(date +%F)
mysqldump -uroot -p'YourRootPassword' --all-databases > $BACKUP_DIR/all-databases-$DATE.sql
# 删除7天前备份
find $BACKUP_DIR -type f -name "*.sql" -mtime +7 -delete
echo "数据库备份完成:$BACKUP_DIR/all-databases-$DATE.sql"
四、自动化运维的最佳实践
- 安全加固:避免脚本中硬编码敏感信息(如数据库密码),使用
ansible-vault加密变量;限制MySQL远程访问(GRANT语句指定IP);启用HTTPS(mod_ssl模块)。 - 错误处理:在脚本中添加
set -e(出错立即退出)、trap(捕获信号);使用||判断命令执行结果(如command || { echo "失败"; exit 1; })。 - 日志记录:将脚本输出重定向到日志文件(
./script.sh 2>&1 | tee /var/log/lamp_script.log),便于排查问题。 - 版本控制:将脚本存入Git仓库(如GitHub、GitLab),跟踪变更历史,方便回滚。
以上就是关于“centos lamp脚本自动化运维”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm