-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgather_java.yml
42 lines (36 loc) · 1.4 KB
/
gather_java.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
- name: Gather Java package facts
hosts: all
gather_facts: true
vars:
java_packages:
- java
- jdk
- jre
java_packages_file: "/tmp/java_packages.csv"
remote_user: "{{ ansible_user }}"
tasks:
- name: Check for RPM DB corruption
shell: rpm --rebuilddb
ignore_errors: true
- name: Check for installed Java packages
shell: rpm -qa | grep "{{ java_packages | join('\\|') }}"
register: java_installed
ignore_errors: true
- name: Filter for Red Hat 7 and above
set_fact:
redhat: "{{ ansible_facts['distribution'] == 'RedHat' and ansible_facts['distribution_major_version'] | int >= 7 }}"
- name: Filter for Java packages
set_fact:
java_installed: "{{ rpm_output.stdout | regex_replace(' +', '\n') | list }}"
java_installed_packages: "{{ java_installed.stdout_lines | map('split', '-') | map('first') | map('trim') | list | default([]) }}"
- name: Write Java package facts to CSV file
lineinfile:
path: "{{ java_packages_file }}"
line: "{{ ansible_facts['hostname'] }},{{ java_installed_packages | join(',') }}"
when: redhat and java_installed_packages
- name: Copy file to specified collection host
copy:
src: "{{ java_packages_file }}"
dest: "/tmp/java_packages.csv"
delegate_to: "{{ collection_host }}"
when: redhat and java_installed_packages