全平台Ansible一键安装脚本:Ubuntu/Debian/RHEL全支持
生产环境的完整 Bash 自动化安装脚本,支持 Ubuntu、Debian、RHEL/CentOS/Rocky/AlmaLinux
脚本功能
- 自动识别操作系统类型
- Ubuntu:使用官方 PPA(最新稳定版)
- RHEL 系:使用 EPEL(企业级可信源)
- Debian / 其他:使用 虚拟环境 + 指定版本 pip 安装
- 支持自定义 Ansible 版本(默认
9.5.0,可修改) - 不污染系统 Python 环境
- 安装后自动验证
#!/bin/bash
# =============================================================================
# Ansible Production Installer
# Supports: Ubuntu, Debian, RHEL, CentOS, Rocky, AlmaLinux
# Author: zz-zjx
# Version: 1.0
# =============================================================================
set -euo pipefail# ====== 配置区(可按需修改)======
ANSIBLE_VERSION="9.5.0" # 推荐固定版本(参考:https://pypi.org/project/ansible/#history)
VENV_PATH="/opt/ansible" # 虚拟环境路径
# ================================log() {echo "[$(date +'%Y-%m-%d %H:%M:%S')] INFO: $*" >&2
}error() {echo "[$(date +'%Y-%m-%d %H:%M:%S')] ERROR: $*" >&2exit 1
}# 检查是否为 root
if [[ $EUID -ne 0 ]]; thenerror "此脚本需以 root 权限运行"
fi# 检测操作系统
if [ -f /etc/os-release ]; then. /etc/os-releaseOS=$IDVER=$VERSION_ID
elseerror "无法识别操作系统"
filog "检测到系统: $OS $VER"# ======================
# Ubuntu:使用官方 PPA
# ======================
if [[ "$OS" == "ubuntu" ]]; thenlog "使用 Ubuntu 官方 PPA 安装 Ansible..."# 安装依赖apt updateapt install -y software-properties-common gnupg# 添加 PPA(自动处理 GPG 密钥)add-apt-repository --yes --update ppa:ansible/ansible# 安装apt install -y ansiblelog " Ubuntu: Ansible 已通过 PPA 安装"ansible --versionexit 0
fi# ======================
# RHEL/CentOS/Rocky/Alma:使用 EPEL
# ======================
if [[ "$OS" == "rhel" || "$OS" == "centos" || "$OS" == "rocky" || "$OS" == "almalinux" ]]; thenlog "使用 EPEL 仓库安装 Ansible..."# 启用 EPELif ! dnf list installed epel-release &>/dev/null; thendnf install -y epel-releasefi# 安装 Ansiblednf install -y ansiblelog " RHEL 系: Ansible 已通过 EPEL 安装"ansible --versionexit 0
fi# ======================
# Debian / 其他系统:使用虚拟环境 + pip
# ======================
if [[ "$OS" == "debian" ]] || [[ "$OS" == "fedora" ]] || [[ "$OS" == "opensuse" ]]; thenlog "使用虚拟环境 + pip 安装 Ansible $ANSIBLE_VERSION..."# 安装 Python3 和 pipif command -v apt &>/dev/null; thenapt updateapt install -y python3 python3-venv python3-pipelif command -v dnf &>/dev/null; thendnf install -y python3 python3-pipelif command -v zypper &>/dev/null; thenzypper install -y python3 python3-pipelseerror "不支持的包管理器"fi# 创建虚拟环境python3 -m venv "$VENV_PATH"# 升级 pip 并安装指定版本 Ansible"$VENV_PATH/bin/pip" install --upgrade pip"$VENV_PATH/bin/pip" install "ansible==${ANSIBLE_VERSION}"# 创建全局软链接(方便调用)ln -sf "$VENV_PATH/bin/ansible" /usr/local/bin/ansibleln -sf "$VENV_PATH/bin/ansible-playbook" /usr/local/bin/ansible-playbooklog " 通用方案: Ansible $ANSIBLE_VERSION 已安装到 $VENV_PATH"ansible --versionexit 0
fi# ======================
# 未知系统
# ======================
error "不支持的操作系统: $OS。请手动安装或联系运维团队。"
