2026/2/21 22:30:57
网站建设
项目流程
百度网站建设的十一个,做一个简单网站多少钱,申请一个网站得多钱,网站内容建设项目预算从零搭建Gitee标准化脚本仓库#xff1a;自动化运维脚本管理
前言
作为IT从业者#xff0c;日常会编写大量Ansible、Shell、Python自动化脚本#xff0c;分散存放不仅难以检索#xff0c;还存在丢失风险。本文将带你从零搭建Gitee标准化脚本仓库#xff0c;通过规范化目录…从零搭建Gitee标准化脚本仓库自动化运维脚本管理前言作为IT从业者日常会编写大量Ansible、Shell、Python自动化脚本分散存放不仅难以检索还存在丢失风险。本文将带你从零搭建Gitee标准化脚本仓库通过规范化目录结构、Git版本控制、云端备份实现脚本的高效管理、复用、跨主机迁移以及单个脚本的精准获取适合个人或团队运维场景。一、环境准备1. 本地环境操作系统Ubuntu 20.04/CentOS 7本文以Ubuntu为例核心工具Git版本2.30权限root用户或sudo权限2. 云端环境Gitee账号注册地址https://gitee.com/空仓库提前创建私有仓库用于存储脚本避免敏感信息泄露二、核心目标标准化目录结构按「语言功能环境」分类脚本一目了然版本控制通过Git追踪脚本修改记录支持回滚云端备份同步本地脚本到Gitee避免丢失规范管理统一脚本命名、元数据注释、Git提交规范跨主机迁移新主机一键复刻仓库环境无缝衔接灵活获取支持完整仓库克隆、单个脚本下载适配不同使用场景三、完整操作步骤步骤1安装Git并配置基础信息1.1 安装GitUbuntu系统# 更新软件源aptupdate -y# 安装Gitaptinstallgit-y# 验证安装结果git--version# 输出类似git version 2.43.01.2 配置Git全局信息提交代码时显示的身份gitconfig --global user.name你的名字gitconfig --global user.email你的Gitee绑定邮箱# 配置拉取时默认合并方式避免后续冲突提示gitconfig --global pull.rebasefalse步骤2创建Gitee私有仓库2.1 网页端创建仓库登录Gitee → 右上角「」→「新建仓库」填写仓库信息关键配置仓库名称Eilian-scripts-repo自定义建议含scripts标识路径默认与仓库名称一致仓库类型私有保护运维脚本等敏感内容初始化设置不勾选「使用README文件初始化仓库」避免后续合并冲突点击「创建」记录仓库SSH地址后续关联用gitgitee.com:zjqwzp/Eilian-scripts-repo.git2.2 配置SSH免密登录可选但推荐避免每次推送都输入账号密码配置SSH免密# 生成SSH密钥一路回车无需设置密码ssh-keygen -t ed25519 -C你的Gitee绑定邮箱# 查看公钥内容全选复制cat~/.ssh/id_ed25519.pub登录Gitee → 右上角头像 →「设置」→「SSH公钥」粘贴复制的公钥点击「确定」验证SSH连接ssh-T gitgitee.com# 输出类似Hi Eilian! Youve successfully authenticated...步骤3本地初始化标准化脚本仓库3.1 下载自动化初始化脚本创建init_script_repo.sh脚本一键生成标准化目录结构、README、.gitignorecatinit_script_repo.shEOF #!/bin/bash set -e # 遇到错误立即退出 # 配置项请修改为你的信息 GITEE_USERNAMEzjqwzp # 你的Gitee用户名路径中的用户名 REPO_NAMEEilian-scripts-repo # Gitee仓库名称 LOCAL_REPO_PATH$HOME/scripts # 本地脚本仓库路径 GIT_NAME你的名字 # Git提交用户名 GIT_EMAIL你的Gitee绑定邮箱 # Git提交邮箱 # # 颜色输出函数 green_echo() { echo -e \033[32m$1\033[0m; } red_echo() { echo -e \033[31m$1\033[0m; } yellow_echo() { echo -e \033[33m$1\033[0m; } # 前置检查检测Git是否安装 green_echo 0. 前置检查检测Git环境 if ! command -v git /dev/null; then red_echo 未检测到Git开始自动安装... apt update -y apt install git -y if ! command -v git /dev/null; then red_echo Git安装失败请手动安装后重试 exit 1 fi green_echo Git安装成功 else green_echo Git已安装$(git--version) fi # 第一步创建标准化目录结构 green_echo 1. 创建脚本目录结构 mkdir -p ${LOCAL_REPO_PATH}/{ansible,shell,python,archive}/{cloud,monitor,automation,centos,ubuntu,api} green_echo 目录创建完成${LOCAL_REPO_PATH} # 第二步生成标准化README.md green_echo 2. 生成标准化README.md cat ${LOCAL_REPO_PATH}/README.md README_EOF #${REPO_NAME}个人/团队自动化脚本管理仓库包含Ansible/Shell/Python等运维脚本。 ## 目录说明 | 目录 | 用途 | |--------------|--------------------------| | ansible/ | Ansible Playbook/Role | | shell/ | Shell脚本按系统分类 | | python/ | Python自动化脚本 | | archive/ | 废弃/归档脚本 | ## 脚本规范 1. 文件名格式功能_环境.后缀如nginx_install_centos.sh 2. 脚本头部必须包含元数据注释功能、环境、依赖、版本 3. Git提交规范feat(目录): 描述 / fix(目录): 描述 ## 依赖说明 - Shell脚本bash环境部分需curl/wget - Python脚本见requirements.txt - Ansible脚本Ansible 2.10 README_EOF # 第三步生成.gitignore文件过滤无用文件 green_echo 3. 生成.gitignore文件 cat ${LOCAL_REPO_PATH}/.gitignore GITIGNORE_EOF # 通用忽略文件 *.log *.swp *.tmp .DS_Store .idea/ .vscode/ __pycache__/ *.pyc # 运维脚本忽略文件 *.iso *.tar.gz *.zip password.txt *.key *.pem GITIGNORE_EOF # 第四步初始化Git仓库并配置 green_echo 4. 初始化Git仓库 cd ${LOCAL_REPO_PATH} if [ -d .git ]; then yellow_echo 当前目录已存在Git仓库跳过初始化步骤 else git init green_echo Git仓库初始化完成 fi git config user.name ${GIT_NAME} git config user.email ${GIT_EMAIL} green_echo Git用户信息配置完成${GIT_NAME}${GIT_EMAIL} # 第五步关联Gitee远程仓库SSH方式 green_echo 5. 关联Gitee远程仓库 GITEE_REPO_URLgitgitee.com:${GITEE_USERNAME}/${REPO_NAME}.git if git remote | grep -q origin; then yellow_echo 已存在origin远程关联先删除旧关联... git remote remove origin fi git remote add origin ${GITEE_REPO_URL} green_echo 已关联远程仓库SSH${GITEE_REPO_URL} # 第六步提交初始版本 green_echo 6. 提交初始版本 git add . if git rev-parse --verify HEAD /dev/null; then yellow_echo 已存在提交记录跳过初始提交步骤 else git commit -m feat: 初始化脚本仓库创建标准化目录结构 green_echo 初始版本提交完成 fi # 第七步添加空目录占位文件确保Git追踪目录 green_echo 7. 添加空目录占位文件 find . -type d -empty -exec touch {}/.gitkeep \; git add . git commit -m feat: 添加.gitkeep占位文件确保空目录被Git追踪 green_echo 占位文件添加完成 # 完成提示 green_echo 本地仓库初始化完成 green_echo 本地仓库路径${LOCAL_REPO_PATH} green_echo 后续执行 git push -u origin master 即可推送到Gitee EOF3.2 执行初始化脚本# 给脚本添加执行权限chmodx init_script_repo.sh# 执行脚本./init_script_repo.sh3.3 查看生成的目录结构tree /root/scripts# 输出类似/root/scripts ├── ansible │ ├── api │ │ └── .gitkeep │ ├── automation │ │ └── .gitkeep │ ├── centos │ │ └── .gitkeep │ ├── cloud │ │ └── .gitkeep │ ├── monitor │ │ └── .gitkeep │ └── ubuntu │ └── .gitkeep ├── archive │ ├── api │ │ └── .gitkeep │ ├── automation │ │ └── .gitkeep │ ├── centos │ │ └── .gitkeep │ ├── cloud │ │ └── .gitkeep │ ├── monitor │ │ └── .gitkeep │ └── ubuntu │ └── .gitkeep ├── .gitignore ├── python │ ├── api │ │ └── .gitkeep │ ├── automation │ │ └── .gitkeep │ ├── centos │ │ └── .gitkeep │ ├── cloud │ │ └── .gitkeep │ ├── monitor │ │ └── .gitkeep │ └── ubuntu │ └── .gitkeep ├── README.md └── shell ├── api │ └── .gitkeep ├── automation │ └── .gitkeep ├── centos │ └── .gitkeep ├── cloud │ └── .gitkeep ├── monitor │ └── .gitkeep └── ubuntu └── .gitkeep步骤4关联Gitee并推送本地仓库4.1 推送初始版本到Gitee# 进入本地脚本仓库目录cd/root/scripts# 推送到Gitee首次推送需关联分支gitpush -u origin master4.2 解决可能的冲突若创建仓库时勾选了README若推送时提示(fetch first)冲突执行以下命令合并# 拉取远程内容并合并允许无共同历史gitpull origin master --allow-unrelated-histories# 解决冲突保留本地版本gitcheckout --ours README.mdgitcheckout --ours .gitignore# 标记冲突已解决并提交gitaddREADME.md .gitignoregitcommit -mmerge: 解决README和.gitignore冲突保留本地标准化配置# 重新推送gitpush -u origin master步骤5跨主机迁移更换主机时当更换新主机时一键复刻仓库环境5.1 新主机环境准备# 安装Gitaptupdate -yaptinstallgittree -y# 配置Git全局信息和原主机一致gitconfig --global user.name你的名字gitconfig --global user.email你的Gitee绑定邮箱gitconfig --global pull.rebasefalse5.2 新主机配置SSH免密# 生成SSH密钥ssh-keygen -t ed25519 -C你的Gitee绑定邮箱# 复制公钥并添加到Gitee步骤同原主机cat~/.ssh/id_ed25519.pub# 验证SSH连接ssh-T gitgitee.com5.3 克隆Gitee仓库到新主机# 克隆仓库到新主机的~/scripts目录gitclone gitgitee.com:zjqwzp/Eilian-scripts-repo.git ~/scripts# 验证目录结构和原主机一致cd~/scripts tree -L25.4 可选同步脚本依赖环境# 示例安装Ansibleaptinstallansible -y# 示例安装Python依赖若仓库有requirements.txtpip3install-r ~/scripts/requirements.txt步骤6其他主机使用脚本仓库完整/单个脚本6.1 方式1克隆完整仓库持续使用/多脚本适用于需要长期使用多个脚本、同步更新的场景目标主机准备Git环境aptupdate -yaptinstallgit-y克隆仓库SSH/HTTPS方式SSH方式免密需配置公钥gitclone gitgitee.com:zjqwzp/Eilian-scripts-repo.git ~/scriptsHTTPS方式需输Gitee账号和私人令牌gitclone https://gitee.com/zjqwzp/Eilian-scripts-repo.git ~/scripts同步最新脚本cd~/scriptsgitpull origin master执行脚本cd~/scripts/shell/centosbashnginx_install_centos.sh6.2 方式2仅下载单个脚本临时使用/按需获取无需克隆完整仓库仅获取目标脚本节省空间6.2.1 网页端下载可视化操作登录Gitee → 进入仓库 → 找到目标脚本如shell/centos/nginx_install_centos.sh点击脚本 → 右上角「原始数据」→ 右键「另存为」保存到本地上传到目标主机scp本地脚本路径 root目标主机IP:/root/6.2.2 命令行直接下载目标主机执行复制脚本原始链接网页端「原始数据」页面的地址目标主机执行下载命令# wget方式wgethttps://gitee.com/zjqwzp/Eilian-scripts-repo/raw/master/shell/centos/nginx_install_centos.sh -O /root/nginx_install_centos.sh# curl方式curl-o /root/nginx_install_centos.sh https://gitee.com/zjqwzp/Eilian-scripts-repo/raw/master/shell/centos/nginx_install_centos.sh赋予权限并执行chmodx /root/nginx_install_centos.shbash/root/nginx_install_centos.sh6.2.3 稀疏克隆指定目录/多个脚本需使用某目录下多个脚本无需完整仓库目标主机初始化空仓库mkdir-p ~/scriptscd~/scriptsgitinitgitconfig core.sparseCheckouttrue# 开启稀疏克隆指定需拉取的目录echoshell/centos/.git/info/sparse-checkout# 仅拉取shell/centos目录关联仓库并拉取gitremoteaddorigin gitgitee.com:zjqwzp/Eilian-scripts-repo.gitgitpull origin master执行脚本cd~/scripts/shell/centosbashnginx_install_centos.sh6.3 团队协作权限配置若其他主机是团队成员使用需配置仓库权限登录Gitee → 仓库 →「管理」→「仓库成员」点击「添加成员」输入用户名并分配权限「开发者」可推送「只读」仅能拉取成员按上述方式克隆/下载脚本即可。四、日常脚本管理规范1. 脚本命名规范格式功能_环境.后缀示例nginx_install_centos.sh、vmware_create_vm.yml、log_analyzer_python.py2. 脚本元数据注释模板每个脚本头部必须添加标准化注释方便检索与维护#!/bin/bash############################################################################### 脚本名称: nginx_install_centos.sh# 功能描述: 自动化安装配置Nginx支持CentOS 7/8包含防火墙配置与开机自启# 适用环境: CentOS 7.x / CentOS 8.x# 依赖组件: gcc pcre-devel openssl-devel wget# 执行权限: root# 作 者: 你的名字# 创建日期: 2026-01-20# 版本号: v1.0# 修订记录:# v1.0 - 初始版本实现基础安装与配置# v1.1 - 新增Nginx配置文件备份功能2026-01-21##############################################################################3. Git提交规范提交时按以下格式填写信息便于追溯历史# 新增脚本gitcommit -mfeat(shell): 新增CentOS下Nginx安装脚本 v1.0# 修复脚本buggitcommit -mfix(ansible): 修复vmware_create_vm.yml磁盘参数错误# 更新脚本功能gitcommit -mupdate(python): 优化log_analyzer.py日志解析效率# 归档废弃脚本gitcommit -marchive(shell): 归档old_backup.sh到archive目录4. 常用Git命令# 1. 新增/修改脚本后提交gitadd.# 添加所有修改文件gitcommit -m描述# 提交到本地仓库# 2. 推送到Gitee后续无需加-ugitpush origin master# 3. 从Gitee拉取最新版本多设备同步gitpull origin master# 4. 查看提交历史gitlog# 或 git log --oneline简洁格式# 5. 回滚到指定版本gitreset --hard 版本号从git log获取五、常见问题排查1. Git推送提示认证失败原因SSH公钥未配置或配置错误解决重新生成SSH公钥并添加到Gitee验证ssh -T gitgitee.com是否成功2. 合并冲突提示Automatic merge failed原因本地与远程文件内容不一致解决使用git checkout --ours 文件名保留本地版本或手动编辑冲突文件3. 克隆后目录结构缺失原因新主机Git版本过低或克隆时网络中断解决删除不完整仓库后重新克隆rm-rf ~/scriptsgitclone gitgitee.com:zjqwzp/Eilian-scripts-repo.git ~/scripts六、总结通过本文操作你已搭建起一套标准化、可复用、可追溯、可跨主机迁移的脚本管理体系本地有规范化目录结构脚本分类清晰云端有Gitee备份避免脚本丢失通过Git版本控制可追溯修改记录、回滚错误版本跨主机迁移只需克隆仓库一键复刻环境支持完整仓库克隆或单个脚本下载适配不同使用场景。后续只需按规范新增、修改脚本并提交即可高效管理所有自动化运维脚本。如果需要团队协作可在Gitee仓库中添加成员并分配权限共同维护脚本仓库。