Ansible如何配置带特殊字符的vCenter域用户名及密码变量
Ansible 域用户名与特殊字符密码变量正确配置方法
用户名(含反斜杠)配置
反斜杠丢失是因为YAML解析时会将单个反斜杠识别为转义符,可使用以下两种正确写法:
- 写法1:使用双反斜杠保留域分隔符
vars: username: 'vsphere.local\\Administrator' - 写法2:直接使用UPN格式用户名(更推荐,无需处理转义)
vars: username: 'Administrator@vsphere.local'
含特殊字符($)的密码配置
密码末尾$1丢失是因为Ansible默认会将$开头的字符识别为变量引用,无对应变量时就会被丢弃,根据使用场景选择对应配置:
场景1:密码直接写在vars中
使用!unsafe标签标记字符串,告诉Ansible不对内容做任何解析转义,原封不动使用:
vars: password: !unsafe 'Test@2100$1'
场景2:使用vars_prompt交互式输入密码
给prompt参数增加unsafe: yes配置,保留输入的所有特殊字符:
vars_prompt: - name: password prompt: Enter Vcenter password to authenticate fence user private: yes unsafe: yes
验证配置正确性
可以先添加调试任务打印变量,确认内容符合预期后再执行实际业务逻辑:
- name: 打印变量确认配置 debug: msg: "用户名:{{ username }},密码:{{ password }}"
内容的提问来源于stack exchange,提问作者user3880406
相关产品推荐
相关产品推荐

