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

Ansible循环哈希列表时如何正确引用变量添加用户?

Ansible循环中正确传递Vault加密密码变量

你的判断完全正确——问题出在loop字典里的password: x_myuser_password这一行:这里没有用**模板语法{{ }}**引用变量,Ansible会把x_myuser_password当作普通字符串处理,最终你是对字符串"x_myuser_password"做了SHA512哈希,而非Vault加密存储的真实密码值,自然导致用户无法登录。

解决方法很简单,在loop的字典里用{{ }}包裹变量名,让Ansible解析出变量的真实值:

- name: Add users
  user:
    name: "{{ item.name }}"
    uid: "{{ item.uid }}"
    comment: "{{ item.comment }}"
    home: "{{ item.home }}"
    shell: "{{ item.shell }}"
    group: "{{ item.group }}"
    password: "{{ item.password | password_hash('sha512') }}"
    groups: sudo
    append: yes
  loop:
    - { name: 'myuser', uid: '1000', comment: 'Myname', home: '/home/myuser', shell: '/bin/bash', group: 'mygroup', password: "{{ x_myuser_password }}" }

这样修改后,loop中的password字段会先解析出x_myuser_password对应的真实密码值,再传递给password_hash过滤器生成正确的哈希值,就能正常设置用户密码了。

如果你的loop里要添加多个用户,每个用户对应不同的密码变量,也可以用同样的方式在loop字典里用{{ }}引用对应的变量名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 07:10:58