• Ansible hostvars


    1.  inventory hosts file 中的server 变量会覆盖group变量.

    hostvars:
    { 
               "iaas_name": "test",
                "inventory_hostname": "hostname....",
                "inventory_hostname_short": "hostname....",
                "hostname....": {
                    "passvar": {
                        "changed": true,
                        "cmd": [
                            "echo",
                            "123"
                        ],
                        "delta": "0:00:00.004135",
                        "end": "2016-05-10 13:02:51.363078",
                        "invocation": {
                            "module_args": "echo 123",
                            "module_complex_args": {},
                            "module_name": "command"
                        },
                        "rc": 0,
                        "start": "2016-05-10 13:02:51.358943",
                        "stderr": "",
                        "stdout": "123",
                        "stdout_lines": [
                            "123"
                        ],
                        "warnings": []
                    }
                },
    }
    "iaas_name" 这个变量是group中的值, 这个值在hostvars中的第一级变量中. 这个变量并没有merge到"hostname...."中

    2. hostvars中包含了说有执行过gather_facts的server的facts.
    ---
    - name: test
      hosts: all
      gather_facts: no
      vars:
        xiama: "------------------------"
      tasks:
        - command: echo 123
          register: passvar
    
    
    - name: test
      hosts: masters
      gather_facts: no
      tasks:
        - debug: var=hostvars
        - debug: var=groups['masters'][0]

    在第二步中的debug中, hostvars包含了所有机器的facts, 可以在下面的steps中引用hostvars[groups.masters[0]].变量名.  这样就可以使用

    Note 1   "passvar" 这个变量是register产生的, 类似于机器的facts, 会在playbook的整个生命周期中使用, hostvars[groups.masters[0]].passvar

    Note 2   但是vars产生的"xiama" 不会存在于下一个playbook中

    Note 3   可以通过set_fact模块来设置机器的fact, 并且永久生效.

    关于hostvars的结构, 可以直接在playbook中使用hostvars下面的一级变量,  也可以用hostvars.变量名, 或者字典hostvars['变量名'] 来引用. 不能直接使用二级变量中的变量.

    
    
  • 相关阅读:
    phonegap开发入门
    [转] jQuery源码分析-如何做jQuery源码分析
    【转】HTML,CSS,font-family:中文字体的英文名称 (宋体 微软雅黑)
    iframe子页面与父页面通信
    5.10团队冲刺
    5.10日
    5.9日团队冲刺
    5.9日自学成果
    5.8日团队冲刺
    5.7日团队冲刺
  • 原文地址:https://www.cnblogs.com/v394435982/p/5480758.html
Copyright © 2020-2023  润新知