小编iam*_*eko的帖子

在一个角色中创建set_fact变量,并在另一个角色中使用它们

我有一个复杂的环境,有多个系统的阶段和用户.

阶段是:dev,int等.

每个阶段都有一个应用程序用户,让我们调用用户john.这导致dev和johni的用户johnd为int等等.

为了抽象系统管理,由于阶段中的所有系统都是相同的,我创建了这个数据结构:

users:
  john:
    dev:
      name: "johnd"
    int:
      name: "johni"
Run Code Online (Sandbox Code Playgroud)

现在我有一个角色"collect_user_information",它从LDAP收集所有类型的信息,并在set_fact的帮助下将它们存储在变量中.

- name: Get the userhome out of LDAP
  shell: 'getent passwd {{ users[ user ][ stage ].name }} | cut -d: -f6'
  register: user_home
Run Code Online (Sandbox Code Playgroud)

和set_fact:

- name: set facts for LDAP user
  set_fact:
    "{{user}}":
      name: "{{ users[ user ][ stage ].name }}"
      home: "{{ user_home.stdout }}"
Run Code Online (Sandbox Code Playgroud)

要转储变量,我使用:

- name: debug output for myuser
  debug: var="{{user}}"
Run Code Online (Sandbox Code Playgroud)

调试输出看起来很有意思.

TASK [collect_user_information : debug output for user] *******
ok: [host1] => …
Run Code Online (Sandbox Code Playgroud)

ansible ansible-facts

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

ansible ×1

ansible-facts ×1