每个答案都提到了如何在运行 playbook 并使用 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 将包含获取主目录任务的详细信息。现在我们遍历这个数组并取出包含主目录路径的标准输出值。
我已将 loop_control 仅用于打印主目录,否则它将打印整个数组。
通过这个过程,我们可以确保如果有n个用户,我们可以按照这个方法,一切都会得到照顾。
注意:我已经开始学习 Ansible,如果我使用的任何术语是错误的,请原谅。我花了一些时间来弄清楚如何做到这一点并考虑分享相同的内容。