全平台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: *" >&2
    exit 1
    }

    检查是否为 root

    if [[ $EUID -ne 0 ]]; then
    error "此脚本需以 root 权限运行"
    fi

    检测操作系统

    if [ -f /etc/os-release ]; then
    . /etc/os-release
    OS=ID VER=VERSION_ID
    else
    error "无法识别操作系统"
    fi

    log "检测到系统: OS VER"

    ======================

    Ubuntu:使用官方 PPA

    ======================

    if [[ "$OS" == "ubuntu" ]]; then
    log "使用 Ubuntu 官方 PPA 安装 Ansible..."

    复制代码
      # 安装依赖
      apt update
      apt install -y software-properties-common gnupg
    
      # 添加 PPA(自动处理 GPG 密钥)
      add-apt-repository --yes --update ppa:ansible/ansible
    
      # 安装
      apt install -y ansible
    
      log " Ubuntu: Ansible 已通过 PPA 安装"
      ansible --version
      exit 0

    fi

    ======================

    RHEL/CentOS/Rocky/Alma:使用 EPEL

    ======================

    if [[ "OS" == "rhel" || "OS" == "centos" || "OS" == "rocky" || "OS" == "almalinux" ]]; then
    log "使用 EPEL 仓库安装 Ansible..."

    复制代码
      # 启用 EPEL
      if ! dnf list installed epel-release &>/dev/null; then
          dnf install -y epel-release
      fi
    
      # 安装 Ansible
      dnf install -y ansible
    
      log " RHEL 系: Ansible 已通过 EPEL 安装"
      ansible --version
      exit 0

    fi

    ======================

    Debian / 其他系统:使用虚拟环境 + pip

    ======================

    if [[ "OS" == "debian" ]] || [[ "OS" == "fedora" ]] || [[ "OS" == "opensuse" ]]; then log "使用虚拟环境 + pip 安装 Ansible ANSIBLE_VERSION..."

    复制代码
      # 安装 Python3 和 pip
      if command -v apt &>/dev/null; then
          apt update
          apt install -y python3 python3-venv python3-pip
      elif command -v dnf &>/dev/null; then
          dnf install -y python3 python3-pip
      elif command -v zypper &>/dev/null; then
          zypper install -y python3 python3-pip
      else
          error "不支持的包管理器"
      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/ansible
      ln -sf "$VENV_PATH/bin/ansible-playbook" /usr/local/bin/ansible-playbook
    
      log " 通用方案: Ansible $ANSIBLE_VERSION 已安装到 $VENV_PATH"
      ansible --version
      exit 0

    fi

    ======================

    未知系统

    ======================

    error "不支持的操作系统: $OS。请手动安装或联系运维团队。"

相关推荐
馨谙15 小时前
Ansible 事实(Facts)全面指南:自动化运维中的主机信息管理
运维·ansible
馨谙16 小时前
Ansible处理程序完全指南:实现智能的任务触发机制
运维·ansible
馨谙2 天前
Ansible 多 Play 编写与模块使用全解析
运维·ansible
馨谙2 天前
Ansible 清单详解:静态清单的构建与管理
ansible
馨谙2 天前
Ansible 配置文件详解:让自动化管理更轻松
运维·github·ansible
馨谙2 天前
Ansible Playbook 完全指南:从入门到实践
运维·ansible
Warren986 天前
接口测试理论
docker·面试·职场和发展·eureka·ansible
MMME~6 天前
Ansible Playbook高效自动化实战指南
网络·自动化·ansible
信创天地17 天前
自动化运维利器赋能信创:Ansible与SaltStack在国产系统的部署与批量管理实战
运维·自动化·ansible
tritone18 天前
使用阿贝云免费云服务器学习Ansible的实践与感受
服务器·学习·ansible