mirror of
https://github.com/MengMengCode/CLICD.git
synced 2026-08-04 21:31:23 +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 "==============================" |