You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下通过Ansible向GCP云VM执行YUM命令失败如何解决

问题根因说明

1. yum模块执行失败

你当前所有任务默认执行目标都是localhost(也就是你本地的Mac系统),而yum/dnf是仅适用于RHEL系Linux发行版的包管理器,MacOS本身不支持该模块,也无法安装python-dnf依赖。你需要把安装nginx的任务放到刚创建的GCP Rocky Linux虚拟机上执行,而不是本地。

对应解决步骤

  • 拆分原playbook的任务,新增一个针对new_instances主机组的play,专门执行虚拟机内的配置操作
  • 原play的hosts保持localhost不变,到add_host任务为止即可
  • 新增play参考配置如下,Rocky Linux镜像默认SSH用户为rocky:
# 原有创建GCP资源的play结束后,新增如下内容
- name: 配置GCP虚拟机
  hosts: new_instances
  gather_facts: yes
  remote_user: rocky
  become: yes
  tasks:
    - name: nginx | 安装最新版nginx
      yum:
        name: nginx
        state: latest
  • 如果没有配置虚拟机SSH密钥,需要在gcp_compute_instance模块中添加metadata参数注入公钥,示例:
metadata:
  ssh-keys: "rocky:{{ lookup('file', '~/.ssh/id_rsa.pub') }}"

2. ansible-playbook执行PermissionError报错

该报错是因为你当前执行命令的工作目录没有读取权限,或者~/.ansible.cfg/系统hosts文件的权限配置错误导致的:

  • 先切换到当前用户有读权限的目录再执行playbook,比如执行cd ~回到用户主目录
  • 修复ansible配置文件权限:chmod 644 ~/.ansible.cfg
  • 如果你修改过系统hosts文件权限,执行修复:sudo chmod 644 /etc/hosts

内容的提问来源于stack exchange,提问作者Mr Pickles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:24:02