ansible在麒麟系统上可采用在线源安装、pip3离线安装、源码编译安装三种方法:一、启用kylin-server-base与epel源后yum install ansible;二、离线下载wheel包链并pip3本地安装;三、源码编译适配国产密码算法,均需配置ansible.cfg和hosts清单。

如果您在麒麟操作系统上部署Ansible自动化工具,但遇到依赖缺失、Python环境不兼容或离线环境无法联网等问题,则可能是由于系统源未启用、核心依赖包(如PyYAML、Jinja2、Paramiko)未预装或SSH连接配置未就绪所致。以下是针对麒麟系统(Kylin-Server 10 SP2及后续版本)安装与配置Ansible的多种可行方法:
一、使用系统软件源在线安装
该方法适用于可访问内网镜像源或已配置公网yum源的麒麟系统,依赖关系由包管理器自动解析,安装过程简洁可控。
1、确认系统版本及基础环境:执行 cat /etc/kylin-release && uname -m,确保为Kylin-Server-10系列且架构为x86_64。
2、启用麒麟官方源与EPEL兼容源:执行 sudo apt update(若为Debian系)或 sudo yum install -y epel-release(若为RPM系);对于Kylin-Server 10 SP2,默认使用yum/dnf,需先运行 sudo yum-config-manager --enable kylin-server-base。
3、安装Ansible主程序及必要依赖:执行 sudo yum install -y ansible python3-pip python3-devel gcc libffi-devel openssl-devel。
4、验证安装结果:执行 ansible --version,输出应包含Ansible版本号(如2.9.x或2.8.20),并确认Python解释器路径指向/usr/bin/python3。
二、通过pip3离线安装指定版本
该方法适用于严格锁定Ansible 2.8.20版本、内网隔离、无可用系统源的政务云或金融信创环境,需预先在跳板机下载完整wheel包链。
1、在具备网络的麒麟跳板机上创建离线包目录:执行 mkdir -p /tmp/ansible-offline && cd /tmp/ansible-offline。
2、使用pip download批量拉取Ansible 2.8.20及其全部依赖wheel包:执行 pip3 download ansible==2.8.20 --no-deps --platform manylinux2014_x86_64 --python-version 37 --abi cp37m --only-binary=:all:;随后逐个补全依赖:pip3 download PyYAML Jinja2 Paramiko pycrypto setuptools six cffi pycparser cryptography pyasn1 bcrypt pynacl。
3、将整个/tmp/ansible-offline目录拷贝至目标麒麟服务器,并进入该目录:执行 pip3 install --find-links . --no-index --force-reinstall ansible==2.8.20。
4、强制重建PyYAML本地编译缓存(关键步骤):执行 pip3 uninstall -y PyYAML && pip3 install --no-cache-dir --force-reinstall PyYAML-5.4.1-cp37-cp37m-manylinux2014_x86_64.whl,避免因麒麟系统glibc版本导致的ImportError。
三、从源码编译安装并绑定Python环境
该方法适用于需深度定制模块行为、替换底层加密库或适配特定国产密码算法(如SM2/SM4)的高安全场景,要求开发者掌握C编译流程与Python扩展机制。
1、安装编译工具链及Python开发头文件:执行 sudo yum groupinstall "Development Tools" && sudo yum install -y python3-devel openssl-devel libffi-devel。
2、下载Ansible 2.8.20源码压缩包并解压:执行 wget https://releases.ansible.com/ansible/ansible-2.8.20.tar.gz && tar -xzf ansible-2.8.20.tar.gz && cd ansible-2.8.20。
3、修改setup.py中PyYAML引用方式:将install_requires中PyYAML条目替换为pyyaml>=3.13,,防止自动升级至不兼容版本。
4、执行本地安装:执行 pip3 install --user -e .,其中-e参数启用可编辑模式,便于后续调试模块源码。
5、将用户级bin目录加入PATH:执行 echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc && source ~/.bashrc。
四、配置Ansible核心组件与主机清单
无论采用何种安装方式,完成部署后必须初始化Ansible运行时环境,包括主配置文件、主机清单及SSH免密通道,否则所有playbook均无法执行。
1、生成默认配置骨架:执行 sudo mkdir -p /etc/ansible && sudo ansible-config init > /etc/ansible/ansible.cfg。
2、编辑配置文件禁用密钥检查并启用持久连接:在/etc/ansible/ansible.cfg中取消注释并修改:host_key_checking = False 与 [ssh_connection] ssh_args = -o ControlMaster=auto -o ControlPersist=60s。
3、定义静态主机清单:执行 sudo tee /etc/ansible/hosts 。
4、在控制节点生成SSH密钥对并分发至目标主机:执行 ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_kylin -N '' && ssh-copy-id -i ~/.ssh/id_rsa_kylin.pub kylin@192.168.10.101。
5、测试连通性:执行 ansible prod -m ping -u kylin,成功返回"pong"表示基础配置完成。











