【问题标题】:why ansible inventory parser my json so slow为什么ansible库存解析器我的json这么慢
【发布时间】:2019-02-26 13:42:13
【问题描述】:

我从公共云生成一个 json,但是使用这个 inventory.json 太慢了。 请告诉我为什么 我的 json 是这样的:

{
  "angelbeats": {
    "hosts": ["10.193.0.24", "10.193.0.23"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "grammy": {
    "hosts": ["10.193.2.5", "10.193.0.9", "10.193.10.4", "10.193.8.5"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "cdn": {
    "hosts": ["10.193.0.12", "10.193.0.11", "10.193.2.7", "10.193.2.8"],
    "vars": {
      "ansible_ssh_user": "root"
    }
  },
  "mdianying": {
    "hosts": ["10.193.0.31"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "zkmq": {
    "hosts": ["10.193.0.26", "10.193.0.27", "10.193.0.25"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "bmovie": {
    "hosts": [],
    "children": ["angelbeats", "growingpains", "forrestgump", "zkmq", "job", "tm", "inception"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "xxljob": {
    "hosts": ["10.193.0.6"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "redis": {
    "hosts": ["10.193.0.40", "10.193.2.13"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "tm": {
    "hosts": ["10.193.0.13", "10.193.0.14", "10.193.0.16", "10.193.0.17", "10.193.0.15"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "dns": {
    "hosts": ["10.193.0.100", "10.193.2.100", "10.193.10.10", "10.193.8.19"],
    "vars": {
      "ansible_ssh_user": "root"
    }
  },
  "yctask": {
    "hosts": ["10.193.8.15"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "cmovie": {
    "hosts": [],
    "children": ["angelbeats", "growingpains", "forrestgump", "zkmq", "job", "tm", "inception"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "forrestgump": {
    "hosts": ["10.193.0.104", "10.193.2.101", "10.193.8.20", "10.193.10.11"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "pwapi": {
    "hosts": ["10.193.0.28", "10.193.2.11", "10.193.8.10", "10.193.10.9"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "pwweb": {
    "hosts": ["10.193.0.20", "10.193.0.19", "10.193.2.9", "10.193.2.10", "10.193.8.9", "10.193.8.8", "10.193.10.6", "10.193.10.7"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "pwtask": {
    "hosts": ["10.193.0.29"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "apishow": {
    "hosts": ["10.193.0.32", "10.193.8.11"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "inception": {
    "hosts": ["10.193.0.10", "10.193.2.6", "10.193.8.7", "10.193.10.5"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "moviebi": {
    "hosts": ["10.193.0.42", "10.193.8.18"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "yanchu": {
    "hosts": ["10.193.0.35", "10.193.8.14"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "growingpains": {
    "hosts": ["10.193.0.21", "10.193.0.22"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "goods": {
    "hosts": ["10.193.0.33", "10.193.8.12"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "urm": {
    "hosts": ["10.193.0.39", "10.193.2.12"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "job": {
    "hosts": ["10.193.0.105"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  },
  "order": {
    "hosts": ["10.193.0.34", "10.193.8.13"],
    "vars": {
      "ansible_ssh_user": "wangluoli"
    }
  }
}

【问题讨论】:

  • 您能否更具体地说明inventory.json 是如何变慢的?

标签: performance ansible inventory


【解决方案1】:

您需要在 JSON 中创建一个 _meta 部分:

https://docs.ansible.com/ansible/latest/dev_guide/developing_inventory.html#tuning-the-external-inventory-script

上面详述的库存脚本系统适用于所有人 Ansible 的版本,但为每个主机调用 --host 可能相当 效率低下,尤其是涉及到远程 API 调用时 子系统。

为避免这种低效率,如果清单脚本返回顶部 级别元素称为“_meta”,可以返回所有主机 一个脚本执行中的变量。当此元元素包含 “hostvars”的值,清单脚本将不会被调用 --host 每个主机。这会显着提高大量主机的性能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    相关资源
    最近更新 更多