每个答案都提到在运行剧本并使用debug和var在屏幕上显示它时如何打印主目录详细信息。
适应@TrinitronX答案
有关将此信息用于新任务的其他信息。
我有一个需要提取其主目录的用户列表。因此,我已将用户详细信息添加到列表中
- name: Get home directory
shell: >
getent passwd {{ item.user }} | cut -d: -f6
changed_when: false
with_items:
- "{{java}}"
register: user_home
在这里,此步骤将遍历所有用户列表,并将该详细信息注册到user_home。这将是数组的形式。
然后,下一步是将这些信息用于新任务,例如,将文件源到bash配置文件中。这仅是示例,可以是任何情况,但是方法将保持不变。
- name: Set Java home in .bash_profile
lineinfile: path="{{ item.stdout }}/.bash_profile" regexp='^source "{{ java_dir }}/.bash_profile_java"' line='source "{{ java_dir }}/.bash_profile_java"' state=present
with_items:
- "{{ user_home.results }}"
loop_control:
label: "{{ item.stdout }}"
我已经在同一本书中将java_dir设置为/ usr / java / latest。
数组user_home.results将包含“获取主目录”任务的详细信息。现在,我们遍历此数组并取出包含主目录路径的stdout值。
我放了loop_control仅用于打印主目录,否则它将打印整个数组。
通过此过程,我们可以确保如果存在n个用户,则可以遵循此方法,所有用户都将得到照顾。
注意:我已经开始学习Ansible,如果我使用的任何术语错误,请原谅。我花了一些时间弄清楚如何执行此操作,并考虑了共享它们。