首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >变量使用- ansible_hostname或{{ ansible_hostname }

变量使用- ansible_hostname或{{ ansible_hostname }
EN

Stack Overflow用户
提问于 2022-06-08 10:09:51
回答 1查看 69关注 0票数 0

我是新来的。什么是正确的调用ansible变量?下面是3个剧本,剧本1使用“{ ansible_hostname }}",但是,剧本2和3直接使用"ansible_hostname”。有什么不同吗?谢谢!

剧本1:

代码语言:javascript
复制
  tasks:
    - name: Jinja2 template
      template:
        src: template.j2
        dest: "/tmp/{{ ansible_hostname }}_template.out"
        trim_blocks: true
        mode: 0644

剧本2:

代码语言:javascript
复制
  tasks:
    - name: Ansible Jinja2 if
      debug:
        msg: >
             --== Ansible Jinja2 if statement ==--
 
             {# If the hostname is ubuntu-c, include a message -#}
             {% if ansible_hostname == "ubuntu-c" -%}
                   This is ubuntu-c
             {% endif %}

剧本3:

代码语言:javascript
复制
  tasks:
    - name: Exploring register
      command: hostname -s
      when: 
        - ansible_distribution == "CentOS" 
        - ansible_distribution_major_version | int >= 8
      register: command_register
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-08 10:53:08

剧本1使用“{ ansible_hostname }”,而剧本2使用"ansible_hostname“

这不是完全正确的。这两本剧本都在Jinja模板上下文中使用变量名称ansible_hostname

  • 在第一个剧本中,它是简单的变量替换,所以我们使用{{ ... }}标记。
  • 在第二个剧本中,它是在一个控制表达式中使用的,所以我们使用{% ... %}标记。
  • 在第三个剧本中,您将看到表达式的子句。从文件中: when子句是一个没有双大括号的原始Jinja2表达式.

您可以阅读更多关于Jinja语法这里的内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72543870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档