高效运维 30个运维环境一键部署脚本 !

2025-09-17 09:06:40 RAIZ

 

随着业务规模的不断扩大,运维环境的复杂性和多样性也随之增加。传统的运维方式已经难以满足当前的需求,高效、自动化、一键部署成为运维的新趋势。本文将详细介绍30个运维环境一键部署脚本,旨在帮助运维人员提高工作效率,实现运维自动化。

一、引言

随着云计算、容器化技术的普及,运维环境变得越来越复杂。传统的手动部署方式不仅耗时耗力,还容易出错。一键部署脚本通过自动化工具链,将繁琐的部署流程简化为几个简单的命令,极大地提高了运维效率。本文将详细讲解30个常用的运维环境一键部署脚本,并附上具体的脚本内容。

二、服务器初始化脚本

  1. 1. 安装常用软件包

#!/bin/bash
# 安装常用软件包
yum update -y
yum install -y vim wget curl git net-tools sysstat ntpdate lrzsz
  1. 2. 设置时区

#!/bin/bash
# 设置时区为中国标准时间
timedatectl set-timezone Asia/Shanghai
  1. 3. 禁用SELinux

#!/bin/bash
# 禁用SELinux
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
  1. 4. 优化SSH配置

#!/bin/bash
# 优化SSH配置,禁用密码登录,启用密钥认证
sed -i 's/^#PermitRootLogin .*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^PasswordAuthentication .*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd

三、应用部署脚本

  1. 5. Nginx一键安装

#!/bin/bash
# 安装Nginx
yum install -y epel-release
yum install -y nginx
systemctl start nginx
systemctl enable nginx
  1. 6. MySQL一键安装

#!/bin/bash
# 安装MySQL
yum install -y mysql-server
systemctl start mysqld
systemctl enable mysqld
# 获取临时root密码
grep 'temporary password' /var/log/mysqld.log
  1. 7. Redis一键安装

#!/bin/bash
# 安装Redis
yum install -y redis
systemctl start redis
systemctl enable redis
  1. 8. Docker一键安装

#!/bin/bash
# 安装Docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker
  1. 9. Kubernetes一键安装

由于Kubernetes的安装较为复杂,这里提供一个简化的脚本示例,仅供参考。实际生产环境中建议使用kubeadm等工具进行安装。

#!/bin/bash
# 简化版Kubernetes安装脚本(仅供示例)
# 请根据实际情况调整安装步骤和配置
# ...(此处省略详细步骤,可参考官方文档)

四、监控与日志配置脚本

  1. 10. Zabbix Agent一键安装

#!/bin/bash
# 安装Zabbix Agent
yum install -y zabbix-agent
sed -i "s/^# Server=.*/Server=zabbix-server-ip/" /etc/zabbix/zabbix_agentd.conf
systemctl start zabbix-agent
systemctl enable zabbix-agent
  1. 11. Prometheus Node Exporter一键安装

#!/bin/bash
# 安装Prometheus Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v<version>/node_exporter-<version>.linux-amd64.tar.gz
tar xvfz node_exporter-<version>.linux-amd64.tar.gz
cd node_exporter-<version>.linux-amd64
./node_exporter &
  1. 12. ELK Stack一键部署

由于ELK Stack(Elasticsearch、Logstash、Kibana)的安装和配置较为复杂,这里提供一个简化的脚本示例。实际生产环境中建议使用官方提供的安装脚本或Docker Compose进行部署。

#!/bin/bash
# 简化版ELK Stack安装脚本(仅供示例)
# 请根据实际情况调整安装步骤和配置
# ...(此处省略详细步骤,可参考官方文档)

五、容器化部署脚本

  1. 13. Docker Compose一键部署

#!/bin/bash
# 安装Docker Compose
curl -L "https://github.com/docker/compose/releases/download/v<version>/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
  1. 14. Kubernetes Helm一键安装

#!/bin/bash
# 安装Helm
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
  1. 15. Kubernetes Ingress Controller一键部署

#!/bin/bash
# 使用Helm部署Nginx Ingress Controller
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install nginx-ingress ingress-nginx/ingress-nginx

六、备份与恢复脚本

  1. 16. MySQL备份脚本

#!/bin/bash
# MySQL备份脚本
BACKUP_DIR=/backup/mysql
DATE=$(date +%F-%H-%M-%S)
mysqldump -u root -p<password> --all-databases > ${BACKUP_DIR}/all-databases-${DATE}.sql
  1. 17. MySQL恢复脚本

#!/bin/bash
# MySQL恢复脚本
BACKUP_FILE=$1
mysql -u root -p<password> < ${BACKUP_FILE}

七、安全与防护脚本

  1. 18. 防火墙配置脚本

#!/bin/bash
# 配置防火墙规则
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
  1. 19. SSH暴力破解防护脚本

#!/bin/bash
# 配置SSH暴力破解防护
yum install -y fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sed -i 's/^#\[sshd\]$/\[sshd\]/' /etc/fail2ban/jail.local
echo 'enabled = true' >> /etc/fail2ban/jail.local
systemctl start fail2ban
systemctl enable fail2ban

八、其他实用脚本

  1. 20. 自动更新系统脚本

#!/bin/bash
# 设置自动更新系统(慎用)
crontab -e
# 添加以下行,每天凌晨2点执行系统更新
0 2 * * * /usr/bin/yum -y update && /usr/bin/reboot
  1. 21. 清理系统临时文件脚本

#!/bin/bash
# 清理系统临时文件
rm -rf /tmp/* /var/tmp/*
  1. 22. 同步系统时间脚本

#!/bin/bash
# 同步系统时间到NTP服务器
ntpdate pool.ntp.org
hwclock --systohc

九、综合脚本示例

以下是一个综合脚本示例,将上述部分脚本整合在一起,用于快速初始化一个基本的运维环境。

#!/bin/bash
# 综合运维环境初始化脚本

# 1. 安装常用软件包
yum update -y
yum install -y vim wget curl git net-tools sysstat ntpdate lrzsz

# 2. 设置时区
timedatectl set-timezone Asia/Shanghai

# 3. 禁用SELinux
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0

# 4. 优化SSH配置
sed -i 's/^#PermitRootLogin .*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^PasswordAuthentication .*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd

# 5. 安装Nginx
yum install -y epel-release
yum install -y nginx
systemctl start nginx
systemctl enable nginx

# ...(此处省略其他步骤,可参考上述脚本)

一键部署脚本是运维自动化过程中的重要工具之一。能够帮助运维人员快速、准确地部署和管理运维环境,提高运维效率和准确性。

我要咨询