0

我正在对一个已经离开公司的开发人员进行逆向工程和重构 ansible 代码。在我们的 ansible-vault 文件中,我很想知道以下各项的含义以及它们如何向 yaml 添加功能/值——我在搜索中找不到任何文档:“base: &base”“<<: *根据”

这是我经过消毒的保管库 yaml

---
secrets:
  zk:
    password: sdsfl34hgf
  admin:
    password: ldfk43277k
credentials:
  base: &base
    host: "{{ansible_host}}"
    timeout: 30
    transport: cli
  svc_rhelsystemro:
    <<: *base
    username: svc_rhelsystemro
    password: sdsfl34hgf
  svc_rhelsystemrw:
    <<: *base
    username: svc_rhelsystemrw
    password: ldfk43277k
  svc_Network_Automation:
    username: svc_Network_Automation
    password: slk32sd@#$%h

4

1 回答 1

1

希望您现在能够找到答案,但我会将其发布在这里,以供其他寻找相同信息的人使用。

您看到的是 YAML 锚:https ://docs.ansible.com/ansible/latest/user_guide/playbooks_advanced_syntax.html#yaml-anchors-and-aliases-sharing-variable-values 。

我没有亲自使用过这个功能,但它本质上允许你为复杂的结构定义别名。在您的示例base.hostbase.timeout, 和都可以使用别名base.transport同时引用。*base

于 2020-10-15T20:44:24.933 回答