我使用ansible创建一个playbook来根据提示参数安装我的项目。
我可以用这个脚本安装2个应用程序,我在开头提示一个,然后我需要获得好的ssh端口,因为应用程序有不同的端口。
glDrawArrays
启动脚本时:
ssh_smx_ports:
- pds: 8103
- activemq: 8102
我需要创建将此端口传递给另一个命令后:
vars_prompt:
- name: "type_smx"
prompt: "cible? (pds,activemq)"
private: no
但是有了这个我得到了这个错误:
致命:[n2.qlf.canaltrain.sncf.fr]:失败了! => {“failed”:true,“msg”:“字段'args'的值无效,似乎包含一个未定义的变量。错误是:'list object'没有属性u'pds'\ n \ n错误似乎出现在'/home/ansible/env/install_version.yml'中:第60行第6列,但可能在文件的其他位置,具体取决于确切的语法问题。\ n \ n违规行似乎是:\ n \ n - \“{{type_smx}} \”\ n - 名称:在servicemix上添加网址{{type_smx}} \ n ^ here \ n我们可能是错的,但这个看起来可能是一个问题\ n当引用一个值时,总是引用模板表达式括号。例如:\ n \ n with_items:\ n - {{foo}} \ n \ n应该写成:\ n \ n with_items:\ n - \“{{foo}} \”\ n“}
如何访问正确的端口元素?
答案 0 :(得分:2)
您定义了一个包含两个元素的列表:
ssh_smx_ports:
- pds: 8103
- activemq: 8102
您使用ssh_smx_ports[type_smx]
来引用它,就像它是字典一样:
ssh_smx_ports:
pds: 8103
activemq: 8102