Ansible 在变量内使用变量

标签 ansible

我正在尝试在变量内使用变量

变量:

env: dev  
groupname: (Dynamic variable which comes as stdout of ansible task )

任务:

- name: var to trim  
  set_fact:  
    trim_var: "{{ groupname.split(\"test-{{ env }}-\") }}"  

但它并没有用 dev 替换 env。有人可以帮忙吗?

最佳答案

您永远不会嵌套 {{...}} 标记。您已经在 J​​inja 上下文中,因此您可以正常写入变量:

- name: var to trim  
  set_fact:  
    trim_var: "{{ groupname.split('test-' ~ env ~ '-') }}"

请注意,Jinja ~ 运算符的行为类似于 +,但它会首先将其操作数转换为字符串(在本例中这并不重要,但非常有用)如果您处理的变量不是字符串)。

关于Ansible 在变量内使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55622809/

相关文章:

shell - Ansible - 当至少一个项目在循环中失败时跳过任务

hadoop - 如何设置YARN NodeManager的nodeID?

arrays - 如何将命令输出存储到 Ansible 中的数组中?

ansible - 如果启用了 ufw,如何运行 ansible 任务?

ansible - 为什么 Ansible 显示 "ERROR! no action detected in task"错误?

image - 如何使用 ansible docker_image 模块标记本地 docker 镜像?

javascript - 将 Karma 测试用例集成到 Jenkins 中,配置为运行 ansible 脚本

ansible - 在 Ansible 中,当配置中未定义这些不需要的属性时,如何获取 json 模式中不需要的属性的默认值?

list 中的 Ansible 嵌套变量

ssl - Letsencrypt + nginx + autorenewal + 基础架构即代码?