【问题标题】:How to pass variable that's a dictionary into Ansible Role?如何将作为字典的变量传递给 Ansible Role?
【发布时间】:2015-05-20 08:40:44
【问题描述】:

我想将一些值传递给 Ansible 角色,但我在文档中找不到任何示例来说明如何传递作为字典的变量。

这是我想传入的内容,但我的 YAML 语法已关闭:

roles:
  - { role: postgresql,
          postgresql_users:
            - name: dev_user
              pass: dev_pass
              encrypted: no,
            - name: test_user
              pass: test_pass
              encrypted: no
          postgresql_databases: ['dev', 'test'],
          postgresql_user_privileges:
            - name: dev_user
              db: dev
              priv: "ALL"
            - name: test_user
              db: test
              priv: "ALL"
          tags: ['postgres'] 
      }

传递这些具有字典值的变量的正确 YAML 语法是什么?

【问题讨论】:

    标签: yaml ansible ansible-playbook


    【解决方案1】:

    我认为应该更接近这个:

    roles:
      - { role: postgresql,
          postgresql_users: [
            { name: "dev_user",
              pass: "dev_pass",
              encrypted: "no" },
            { name: "test_user",
              pass: "test_pass",
              encrypted: "no" }
          ],
          postgresql_databases: ['dev', 'test'],
          postgresql_user_privileges:[
            { name: "dev_user",
                db: "dev",
                priv: "ALL" },
            { name: "test_user",
                db: "test",
                priv: "ALL"}
          ],
          tags: ['postgres'] 
        }
    

    请注意,我假设“dev_user”等。是字符串。如果你想要变量,你需要name: "{{ dev_user }}"

    【讨论】:

      猜你喜欢
      • 2017-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      • 2023-02-13
      相关资源
      最近更新 更多