当前位置: 首页 > news >正文

Shell脚本部署——8day

Shell脚本部署

课程目标

  1. 掌握shell脚本的思路

  2. 完成shell脚本的编写

课程实验

  1. shell脚本的思路

  2. shell脚本的编写

课堂引入

部署项目中,有很多都是固定的模式与内容,所有的东西都需要人工去操作的话,成本就比较高,也比较麻烦,能不能通过脚本自动取执行呢?

授课进程

一、脚本部署思路
1、概述

shell脚本自动化部署旨在完成一个固定程式化的东西,解放劳动力。

2、思路
  • 防火墙

  • 主机名

  • yum源

  • 安装MySQL

  • 安装apache

  • 安装PHP

  • 配置

  • 启动项目

二、脚本实现
1、防火墙
#!/bin/bash ​ # 防火墙相关设置 systemctl status firewalld | grep -w "dead" &> /dev/null if [ $? -eq 0 ];then echo "防火墙已经关闭,不需要进行处理" else echo "防火墙处理中..." systemctl stop firewalld &> /dev/null systemctl disable firewalld &> /dev/null fi setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config echo "关闭防火墙成功"
2、主机名
# 设置主机名 if [ $# -eq 0 ];then hostnamectl set-hostname server.com &>/dev/null else hostnamectl set-hostname $1 &>/dev/null fi echo "设置主机名成功"
3、yum源
# 配置yum源 # 看网络是否可以ping通 ping -c1 www.baidu.com &> /dev/null if [ ! $? -eq 0 ];then echo "网络不通,请先确认网路是否通畅,退出脚本" exit fi # 先通过yum安装wget yum install wget -y &> /dev/null # 备份之前的镜像源 cd /etc/yum.repos.d/ tar -zcvf repo.tar.gz *.repo rm -rf *.repo # 配置阿里镜像源 wget -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.rep yum clean all yum makecache # 安装扩展镜像源 yum install epel-release -y
#!/bin/bash # 防火墙相关设置 systemctl stop firewalld &>/dev/null systemctl disable firewalld &>/dev/null setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config echo "关闭防火墙成功" # 设置主机名 if [ $# -eq 0 ];then hostnamectl set-hostname server.com &>/dev/null else hostnamectl set-hostname $1 &>/dev/null fi echo "设置主机名成功" # 配置yum源 # 看网络是否可以ping通 ping -c1 www.baidu.com &>/dev/null if [ ! $? -eq 0 ];then echo "网络不通,请先确认网路是否通畅,退出脚本" exit fi # 先通过yum安装wget yum install wget -y &>/dev/null # 备份之前的镜像源 cd /etc/yum.repos.d/ tar -zcvf repo.tar.gz *.repo &>/dev/null rm -rf *.repo # 配置阿里镜像源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null yum clean all &>/dev/null yum makecache &>/dev/null # 安装扩展镜像源 yum install epel-release -y &>/dev/null echo "yum源配置成功"
4、安装MySQL
# 安装MySQL # 1. 检查MySQL源码包是否已经上传 # 2. 检查并创建用户 # 3. 解压缩软件并进入MySQL目录 # 4. 源码配置,安装必要的依赖 # 5. 执行配置选项 # 6. 编译并安装 # 7. 更改数据目录权限 # 8. 初始化数据库 # 9. 拷贝启动脚本 # 10. 启动数据库 # 11. 设置密码
# 安装MySQL # 1. 检查MySQL源码包是否已经上传 if [ ! -e /root/mysql-5.6.31.tar.gz ];then echo "MySQL安装包不存在,请检查是否上传MySQL安装包" exit fi # 2. 检查并创建用户 grep -w 'mysql' /etc/passwd if [ ! $? -eq 0 ];then echo "不存在mysql用户,创建mysql系统用户" useradd -r -s /sbin/nologin mysql fi # 3. 解压缩软件并进入MySQL目录 tar -zxvf mysql-5.6.31.tar.gz cd mysql-5.6.31 # 4. 源码配置,安装必要的依赖 echo "正在安装必要的一些依赖....." yum install gcc-c++ -y yum install cmake -y yum -y install ncurses-devel yum -y install autoconf # 5. 执行配置选项 echo "正在配置MySQL....." cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DMYSQL_TCP_PORT=3306 \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DMYSQL_USER=mysql # 6. 编译并安装 echo "正在编译安装MySQL....." make && make install # 7. 更改数据目录权限 chown -R mysql.mysql /usr/local/mysql/ # 8. 初始化数据库 rm -f /etc/my.cnf cd /usr/local/mysql/ ./scripts/mysql_install_db --user=mysql # 9. 拷贝启动脚本 cp support-files/mysql.server /etc/init.d/mysql # 10. 启动数据库 service mysql starat # 11. 设置密码 /usr/local/mysql/bin/mysqladmin -u root password '123456' # 12. 配置环境变量 echo 'export PATH=/usr/local/mysql/bin/:$PATH' /etc/profile source /etc/profile

课堂小结

  1. shell脚本的思路

  2. shell脚本的编写

课后作业

  1. 课堂的案例及练习

  2. 将今天的内容整理为思维导图的形式

扩展内容

http://www.cnnetsun.cn/news/10339.html

相关文章:

  • nginx实战-PHP——day2
  • 知识扩展--从病理学角度比较来自同一组织切片的Xenium 5K与Visium HD数据
  • 基于Wan2.2-T2V-A14B的AI导演系统原型设计思路
  • 【苍穹外卖-day12】
  • 金融项目的测试过程(额度申请审核的测试点设计)
  • C# AES加密在医疗系统中的真实应用案例(含完整源码与审计建议)
  • java计算机毕业设计球鞋商城系统小程序 基于SpringBoot的潮鞋微商城小程序设计与实现 JavaWeb限量球鞋交易平台小程序开发
  • Wan2.2-T2V-A14B能否生成黑白老电影风格?怀旧滤镜测试
  • 终极指南:原神自动化工具BetterGI完整使用手册
  • 在Linux中如何查看内存使用情况?
  • CompletableFuture的5大坑!
  • **主题:** “医疗PINN漏物理约束,器官运动预测全错,补动力学方程才稳住”
  • KMPlayer播放器中文版下载安装保姆级教程(附电脑安装包,非常详细)
  • 【量子电路可视化终极指南】:手把手教你用VSCode打造高效开发环境
  • Skyhigh Security升级数据安全态势管理(DSPM)能力,助力企业满足《数字个人数据保护法》(DPDPA)合规要求,强化亚太地区数据保护
  • Wan2.2-T2V-A14B与Stable Video Diffusion对比:谁更适合商用?
  • 如何用AU处理音乐详细的元数据Metadata-程序员·原创音乐人·卓伊凡
  • MobaXterm高效运维
  • 百度ERNIE-4.5-VL-28B-A3B-Base震撼发布:多模态大模型基座开启智能新纪元
  • Wan2.2-T2V-A14B + 高性能GPU:构建专属AI视频工厂
  • 3分钟掌握B站视频下载:哔哩下载姬终极使用指南
  • BetterGI:原神AI自动化辅助工具终极指南
  • MoE架构加持的Wan2.2-T2V-A14B,如何提升动态细节表现力?
  • MySQL表的约束
  • IP地址分类管理
  • Windows右键菜单大扫除:从杂乱无章到高效简洁的完整改造方案
  • 如何为个人网站选择一个高性价比域名?
  • Adobe官方卸载工具下载安装保姆级教程(附下载地址,非常详细)
  • shell笔记
  • 多头和q,kv的区别