ansible Jinja2:unicode对象';没有属性';前缀';
我有以下库存文件:ansible Jinja2:unicode对象';没有属性';前缀';,ansible,jinja2,Ansible,Jinja2,我有以下库存文件: 172.16.1.177 name=P1 172.16.1.182 name=P2 172.16.1.183 name=P3 172.16.1.184 name=P4 以下变量文件: P1: prefix: "16001" P2: prefix: "16002" P3: prefix: "16003" P4: prefix: "16004" 如果我使用以下工具,使用上面的if Jinja2模板效果很好: Host ID for P1 = {{P1.prefix}}
172.16.1.177 name=P1
172.16.1.182 name=P2
172.16.1.183 name=P3
172.16.1.184 name=P4
以下变量文件:
P1:
prefix: "16001"
P2:
prefix: "16002"
P3:
prefix: "16003"
P4:
prefix: "16004"
如果我使用以下工具,使用上面的if Jinja2模板效果很好:
Host ID for P1 = {{P1.prefix}}
我得到的输出是:P1=16001的主机ID
但我希望在尝试以下操作时,对每个主机动态使用此选项:
Host ID for {{name}} = {{name.prefix}}
运行playbook时,我遇到以下错误:
{"failed": true, "msg": "'unicode object' has no attribute 'prefix'"}
有人能帮我避免这个错误吗?当你键入
名称.前缀时,你想让Ansible/Jinja2将第一部分(名称
)作为值,第二部分(前缀
)作为对象名。但是,name
也将被视为对象名称
您可以改用vars
字典:
vars[name].prefix