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

Ansible中group_vars定义的ansible_ssh_pass配合delegate_to失效

问题分析

通过delegate_to委托任务到DRAC接口时,Ansible默认沿用当前play目标主机(hypervisors组)的连接凭据,不会自动加载被委托主机(oobs组)的group_vars中定义的ansible_ssh_pass。哪怕hostvars里能查到被委托主机的凭据,连接建立阶段也不会自动切换使用,最终导致密码验证失败。

解决方法

在委托任务里显式指定要使用的被委托主机凭据:

- name: test oob delegation
  hosts: hypervisors
  gather_facts: false

  tasks:
  - name: Get DRAC sysinfo
    raw: getsvctag
    register: svctag_res
    delegate_to: "{{ oob_interface }}"
    vars:
      # 直接引用被委托主机的SSH密码
      ansible_ssh_pass: "{{ hostvars[oob_interface].ansible_ssh_pass }}"
      # 如果oobs组还定义了ansible_user,也要加上这行
      # ansible_user: "{{ hostvars[oob_interface].ansible_user }}"
额外说明
  • 这种任务级别的变量覆盖,能精准指定委托目标的连接凭据,确保Hashi Vault中取出的密码被正确使用。
  • 如果有多组类似的委托任务,可以把凭据引用逻辑封装成变量文件,避免重复编写。

内容的提问来源于stack exchange,提问作者Matt Trimboli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:49:57