mirror of
https://github.com/MengMengCode/CLICD.git
synced 2026-09-03 06:24:03 +08:00
80 lines
1.7 KiB
Bash
80 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
||
set -e
|
||
|
||
echo "=============================="
|
||
echo " Certbot (Snap) Auto Installer"
|
||
echo "=============================="
|
||
|
||
# 检测系统
|
||
if [ -f /etc/os-release ]; then
|
||
. /etc/os-release
|
||
OS=$ID
|
||
VER=$VERSION_ID
|
||
else
|
||
echo "无法识别系统版本"
|
||
exit 1
|
||
fi
|
||
|
||
echo "检测到系统: $OS"
|
||
|
||
install_snap_debian() {
|
||
apt update -y
|
||
apt install -y snapd
|
||
systemctl enable --now snapd.socket || true
|
||
|
||
# 修复 snap 路径
|
||
ln -sf /var/lib/snapd/snap /snap
|
||
|
||
# 安装 certbot
|
||
snap install --classic certbot
|
||
|
||
# 软链
|
||
ln -sf /snap/bin/certbot /usr/bin/certbot
|
||
}
|
||
|
||
install_snap_rhel() {
|
||
# 启用 EPEL(部分系统需要)
|
||
if command -v dnf >/dev/null 2>&1; then
|
||
dnf install -y epel-release || true
|
||
dnf install -y snapd
|
||
systemctl enable --now snapd.socket || true
|
||
else
|
||
yum install -y epel-release || true
|
||
yum install -y snapd
|
||
systemctl enable --now snapd.socket || true
|
||
fi
|
||
|
||
# snap 经典路径
|
||
ln -sf /var/lib/snapd/snap /snap
|
||
|
||
# 安装 certbot
|
||
snap install --classic certbot
|
||
|
||
# 软链
|
||
ln -sf /snap/bin/certbot /usr/bin/certbot
|
||
}
|
||
|
||
case "$OS" in
|
||
ubuntu|debian)
|
||
install_snap_debian
|
||
;;
|
||
centos|rhel|almalinux|rocky)
|
||
install_snap_rhel
|
||
;;
|
||
fedora)
|
||
dnf install -y snapd
|
||
systemctl enable --now snapd.socket || true
|
||
ln -sf /var/lib/snapd/snap /snap
|
||
snap install --classic certbot
|
||
ln -sf /snap/bin/certbot /usr/bin/certbot
|
||
;;
|
||
*)
|
||
echo "不支持的系统: $OS"
|
||
exit 1
|
||
;;
|
||
esac
|
||
|
||
echo "=============================="
|
||
echo "安装完成!验证版本:"
|
||
certbot --version || true
|
||
echo "==============================" |