zop*_*oph 3 variables yaml ansible
我正在尝试在 Ansible (2.7.10) 上的 var 声明中使用 var
我正在使用aws_ssm查找插件(https://docs.ansible.com/ansible/latest/plugins/lookup/aws_ssm.html)
工作示例(硬编码值):
var: "{{ lookup('aws_ssm', '/path/server00', region='eu-west-3') }}"
Run Code Online (Sandbox Code Playgroud)
我想对服务器名称和 AWS 区域使用变量,但我的所有尝试都出错了。
到目前为止我尝试过的:
var: "{{ lookup('aws_ssm', '/path/{{ server }}', region={{ region }}) }}"
Run Code Online (Sandbox Code Playgroud)
var: "{{ lookup('aws_ssm', '/path/{{ server }}', region= + region) }}"
Run Code Online (Sandbox Code Playgroud)
- name: xxx
debug: msg="{{ lookup('aws_ssm', '/path/{{ server }}', region='{{ region }}' ) }}"
register: var
Run Code Online (Sandbox Code Playgroud)
还没有成功,感谢您的帮助,
你永远不会嵌套{{...}}模板表达式。如果您已经在模板表达式中,则只需按名称引用变量即可。例如:
var: "{{ lookup('aws_ssm', '/path/' + server, region=region) }}"
Run Code Online (Sandbox Code Playgroud)
(这假设变量server和region已定义。)
您还可以利用 Python 字符串格式化语法。以下都会给你相同的结果:
'/path/' + server'/path/%s' % (server)'/path/{}'.format(server)您也+可以使用 Jinja~连接运算符,它的作用有点像,+但强制参数为字符串。所以虽然这是一个错误:
'some string' + 1这将导致文本some string1:
'some string' ~ 1