Files
CLICD/install-certbot.sh

80 lines
1.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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 "=============================="