统信UOS上启用Ansible需完成安装、SSH免密配置、主机清单定义三步闭环:先用sudo apt update && sudo apt install -y ansible安装并ansible --version验证;再ssh-keygen生成密钥、ssh-copy-id配置本机及目标机免密登录;最后定义/etc/ansible/hosts清单并ansible test -m ping验证连通性。

在统信UOS服务器或桌面版上快速启用Ansible自动化能力,需完成安装、SSH免密配置、主机清单定义三步闭环,缺一不可——跳过任一环节都会导致playbook执行时卡在连接阶段或报错“UNREACHABLE!”。
用APT命令一键安装Ansible
该方法适用于已联网且软件源配置正常的统信UOS d版或企业版,默认仓库中已预置ansible 5.x+版本,依赖自动解决,无需手动干预Python环境。
执行更新索引:sudo apt update
安装核心包:sudo apt install -y ansible
验证安装结果:ansible --version。若输出含 【ansible [core 5.x.x]】 及 Python 3.7+ 版本号,则表示安装成功;若提示“无法定位软件包”,请先检查 /etc/apt/sources.list 中是否启用了 universe 组件。
通过pip3安装指定版本
当需要使用Ansible 6.x或社区模块(如community.general)时,APT源往往滞后,此时pip3安装更可靠,但必须确保PyYAML、cryptography等底层依赖同步到位。
方法一:升级pip并安装Ansible最新稳定版
python3 -m pip install --upgrade pip && python3 -m pip install ansible
方法二:安装特定版本(例如5.10.0)
python3 -m pip install ansible==5.10.0
注意:若执行 ansible 命令时报 ModuleNotFoundError: No module named 'yaml',立即运行 python3 -m pip install PyYAML 补全依赖,否则后续所有playbook都会因解析失败而中断。
配置SSH免密登录(关键前提)
Ansible不装客户端,全靠SSH通信驱动远程节点,控制端必须能无密码登录目标主机(含本机localhost),否则所有任务均会因认证超时失败。
第一步:生成密钥对(空密码,4096位RSA)
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
第二步:将公钥复制到本机(用于本地调试)
ssh-copy-id -o StrictHostKeyChecking=no root@127.0.0.1
第三步:测试连通性
ssh -o ConnectTimeout=3 -o BatchMode=yes root@127.0.0.1 exit &>/dev/null && echo "OK" || echo "FAIL"
若返回FAIL,请确认sshd服务正在运行(systemctl is-active sshd),且 /etc/ssh/sshd_config 中 PermitRootLogin yes 已启用并执行 systemctl restart sshd 生效。
定义主机清单并验证连通
Ansible默认读取 /etc/ansible/hosts 文件作为被控节点列表,首次使用建议用最简结构验证链路是否打通。
创建标准清单:
echo -e "[test]\n127.0.0.1 ansible_connection=local" | sudo tee /etc/ansible/hosts
运行连通性检测:
ansible test -m ping
若返回 127.0.0.1 | SUCCESS => {"changed": false, "ping": "pong"},说明Ansible已可正常调度——此时即可编写第一个playbook,例如部署nginx或同步配置文件。

















