У кожній відповіді згадується про те, як надрукувати деталі домашнього каталогу під час запуску книги і відображення її на екрані за допомогою налагодження та змінної .
Адаптація до відповіді @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 / останнього в тій самій книзі.
Масив user_home.results міститиме деталі завдання «Отримати домашній каталог». Тепер ми прокручуємо цей масив і виймаємо значення stdout, яке містить шлях до домашнього каталогу.
Я поставив loop_control лише для друку домашнього каталогу, інакше він надрукує весь масив.
За допомогою цього процесу ми можемо гарантувати, що якщо буде n користувачів, ми зможемо слідувати цьому методу, і про все буде подбано.
Примітка: Я почав вивчати Ansible, якщо будь-яка термінологія, яку я використав, є неправильною, прошу вибачення. Я витратив трохи часу, щоб придумати, як це зробити, і думав поділитися тим самим.