在银河麒麟系统实现批量运维需先部署Ansible控制端、配置SSH免密及国产化适配源;安装Ansible推荐APT源方式,确保兼容UKUI与kylin-update-manager;通过kylin-update-manager模块执行安全更新并重启关键服务。

在银河麒麟操作系统上实现批量软件更新、服务启停与配置统一分发,必须先完成Ansible控制端部署、SSH免密连通与国产化适配配置,否则playbook执行会因源不可达、Python模块缺失或权限拒绝而中断。
配置适配源并安装基础依赖
银河麒麟V10 SP1/SP2默认源不含Ansible主包,需切换至官方镜像源并确保Python3-pip就绪。
1. 切换到root用户:sudo su -
2. 备份原源文件:cp /etc/apt/sources.list /etc/apt/sources.list.bak
3. 编辑源列表:nano /etc/apt/sources.list,注释掉所有非https://archive.kylinos.cn/kylin/开头的行,并添加适配行:deb https://archive.kylinos.cn/kylin/ v10 main universe
4. 执行更新:apt update && apt upgrade -y。若提示GPG密钥错误,运行apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 【此处替换为实际报错中显示的8位密钥ID】后再重试update。
5. 确认Python3版本不低于3.6:python3 --version;若未安装pip3,则执行apt install python3-pip -y。
安装Ansible的三种方式
根据网络环境与安全策略选择其一,三者互不冲突,但离线安装需提前准备wheel包。
方法一:APT源安装(推荐内网环境)
执行apt install ansible -y。该方式自动解决依赖,且安装的ansible版本经麒麟官方认证兼容UKUI桌面与kylin-update-manager服务。
方法二:pip3安装(需外网)
先升级pip:pip3 install --upgrade pip,再安装:pip3 install ansible。注意:此方式可能拉取较新版本,若后续playbook调用kylin_update模块失败,请降级至pip3 install ansible==7.6.0。
方法三:离线安装
将预下载的ansible-*.whl及全部依赖wheel包(如PyYAML-*.whl、paramiko-*.whl)放入本地目录/tmp/ansible_offline/,执行:pip3 install --find-links /tmp/ansible_offline/ --no-index ansible。
配置SSH免密与主机清单
Ansible通过SSH连接目标节点,必须关闭交互式密码输入,否则自动化流程会在首次连接时挂起。
① 生成密钥对(若~/.ssh/id_rsa不存在):ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
② 将公钥复制到目标麒麟节点(例如IP为192.168.10.5,用户为kylin):ssh-copy-id -i ~/.ssh/id_rsa.pub kylin@192.168.10.5。若提示Permission denied (publickey),请先确认目标节点/etc/ssh/sshd_config中PubkeyAuthentication yes已启用并重启sshd:systemctl restart sshd。
③ 创建主机清单:mkdir -p /etc/ansible && echo "[kylin_servers]\n192.168.10.5" > /etc/ansible/hosts
④ 测试连通性:ansible kylin_servers -m ping。返回pong即成功;若报UNREACHABLE!,检查目标节点是否开启SSH服务、防火墙是否放行22端口。
编写首个麒麟专用运维脚本
针对银河麒麟系统特性,需调用kylin-update-manager服务进行安全更新,而非通用yum或apt模块。
创建playbook文件:nano /root/kylin_update.yml,写入以下内容:
- name: 批量执行麒麟系统安全更新<br> hosts: kylin_servers<br> become: true<br> tasks:<br> - name: 调用kylin-update-manager执行全量更新<br> shell: /usr/bin/kylin-update-manager --full-upgrade --yes<br> args:<br> executable: /bin/bash<br> - name: 重启关键服务<br> service:<br> name: "{{ item }}"<br> state: restarted<br> loop:<br> - sshd<br> - NetworkManager
执行该剧本:ansible-playbook /root/kylin_update.yml。











