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

hostvars:
{
"iaas_name": "test",
"inventory_hostname": "hostname....",
"inventory_hostname_short": "hostname....",
"hostname....": {
"passvar": {
"changed": true,
"cmd": [
"echo",
""
],
"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": "",
"stdout_lines": [
""
],
"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['变量名'] 来引用. 不能直接使用二级变量中的变量.


Ansible hostvars的更多相关文章

  1. ansible中的hostvars

    首先来看一个例子:假设我想得到主机IP为172.25.250.9的完全限定域名(FQDN),但是我无法登录该主机,那么就可以用本机里面的hostvars魔法变量(后面会分享我对魔法这个词的理解)这个字 ...

  2. ansible模块debug

    示例: # Example that prints the loopback address and gateway for each host - debug: msg="System { ...

  3. Ansible :一个配置管理和IT自动化工具

    编译文章:LCTT  https://linux.cn/article-4215-1.html 译者: felixonmars 文章地址:https://linux.cn/article-4215-1 ...

  4. Ansible状态管理

     转载自:http://xdays.me/ansible状态管理.html 简介 就像所有服务器批量管理工具(puppet有DSL,salt有state)一样,ansible也有自己的状态管理组件 ...

  5. ansible官方文档翻译之变量

    Ansible变量 在使用ansible变量的时候,主要是因为各个系统的不同,从而需要使用不同的变量来进行设置,例如在设置一些配置文件的时候,有大部分内容是相同的,但是一部分内容是和主机的ip地址或者 ...

  6. Ansible 变量

    1. 变量来源 inventoryfile中定义 playbook中定义 include文件和角色中定义变量 系统facts  ansible hostname -m setup local fact ...

  7. Ansible系列(六):各种变量定义方式和变量引用

    本文目录:1.1 ansible facts1.2 变量引用json数据的方式 1.2.1 引用json字典数据的方式 1.2.2 引用json数组数据的方式 1.2.3 引用facts数据1.3 设 ...

  8. 【Ansible】 基于SSH的远程管理工具

    [Ansible] 参考文档:[http://www.ansible.com.cn/docs/intro.html] 和ansible类似的工具还有saltstack,puppet,sshpass等, ...

  9. ansible基础-Jinja2模版 | 过滤器

    Jinja2模版介绍 注:本文demo使用ansible2.7稳定版 在ansible基础-变量的「8.2 模版使用变量」章节中关于模版与变量也有所提及,有兴趣的同学可以去回顾一下. ansible通 ...

随机推荐

  1. Aliexpress API 测试工具

    Aliexpress API 测试工具 上回简单说了 Aliexpress API 的认证流程, 这回在奉送一个小工具, API 测试工具. 点我下载 做这一行,和做程序员的生活完全不搭调, 格格不入 ...

  2. C#常用的数据格式转换

    用DataFormatString格式化GridView 在 GridView里面显示数据,要显示的数据有好多位小数,就想让它只显示两位小数,在delphi里,直接用DisplayFormat就行了, ...

  3. C语言面试题汇总

    1.   阅读下面程序并写出输出结果(10分). main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d, ...

  4. 使用DBUnit实现对数据库的测试

    这是一个JavaProject,有关DBUnit用法详见本文测试用例 首先是用到的实体类User.java package com.jadyer.model; public class User { ...

  5. 在Node.js中使用RabbitMQ系列一 Hello world

    在前一篇文章中可伸缩架构简短系列中提到过关于异步的问题.当时推荐使用RabbitMQ来做任务队列的实现方案.本篇文章以Node.js为例子,来实际操作如何和RabbitMQ进行交互. 介绍 Rabbi ...

  6. ***网Web前端开发规范(初稿)

    这几天一直在梳理关于前端方面的开发规范,现在暂时梳理了HTML的开发规范,暂且放置于此! 规范目的: 使开发流程更加规范化 文件命名规范:(需审批) 1.项目命名 全部采用小写方式, 以下划线分隔. ...

  7. express框架+jade+bootstrap+mysql开发用户注册登录项目

    完整的项目代码(github):https://github.com/suqinhui/express-demo express是基于Node.js平台的web应用开发框架,用express框架开发w ...

  8. 求a和b的最大公约数

    题目:求a和b的最大公约数 分析:首先我们要知道最大公约数是什么,就是指两个或多个整数共有约数中最大的一个.好了,知道了最大公约数是什么,就可以求解它了,那么就相当于比较俩个数的约数,取其相等的最大的 ...

  9. Java 设计模式(二)-六大原则

    Java 设计模式(二)-六大原则 单一职责原则(Single Responsibility Principle) 定义: 不要存在多余一个原因导致类变更,既一个类只负责一项职责. 问题由来: 当类A ...

  10. 果园种植系统开发App,游戏+商业模式?

    果园种植全返系统开发,英伦果园开发,微信果园种植系统开发,百果生态乐园开发,淘金农夫开发,农场果园种植游戏系统,果园种植APP系统开发,果园种植软件开发找陈牧150-1315-1740(微/电)开发者 ...