From 1be5f16632784c6ad5067ee3f3d5f6510dadf5cb Mon Sep 17 00:00:00 2001 From: Noah Lavine Date: Mon, 2 Oct 2017 12:06:12 -0400 Subject: [PATCH] Move jboss find commands to separate playbook and make non-default Two separate steps here: - Moving the JBoss find commands to their own playbook - Removing the scan facts from the default fact list This has the result that Rho will not run a scan unless specifically requested, and also the find commands are visibly separated from the rest. --- rho/utilities.py | 7 ++++--- rho_playbook.yml | 1 + roles/jboss-scan/tasks/main.yml | 14 ++++++++++++++ roles/jboss/tasks/main.yml | 13 ------------- 4 files changed, 19 insertions(+), 16 deletions(-) create mode 100644 roles/jboss-scan/tasks/main.yml diff --git a/rho/utilities.py b/rho/utilities.py index d81da3e..f7ff86b 100644 --- a/rho/utilities.py +++ b/rho/utilities.py @@ -113,9 +113,10 @@ 'subman.virt.uuid', 'subman.has_facts_file') -JBOSS_FACTS_TUPLE = ('jboss.installed-versions', - 'jboss.deploy-dates', - 'jboss.running-versions') +JBOSS_FACTS_TUPLE = ('jboss.running-versions',) + +JBOSS_SCAN_FACTS_TUPLE = ('jboss.installed-versions', + 'jboss.deploy-dates') BRMS_FACTS_TUPLE = ('jboss.brms.kie-api-ver', 'jboss.brms.drools-core-ver', diff --git a/rho_playbook.yml b/rho_playbook.yml index dfd4dfb..854c088 100644 --- a/rho_playbook.yml +++ b/rho_playbook.yml @@ -22,6 +22,7 @@ - virt - virt_what - jboss + - jboss-scan - brms - fuse diff --git a/roles/jboss-scan/tasks/main.yml b/roles/jboss-scan/tasks/main.yml new file mode 100644 index 0000000..4c61fe3 --- /dev/null +++ b/roles/jboss-scan/tasks/main.yml @@ -0,0 +1,14 @@ + +--- +# Scan linux systems for JBoss EAP or Wildfly Installations + - name: Gather jboss.jar-ver + raw: FOUND=""; for jar in `find {{scan_dirs}} -xdev -name 'jboss-modules.jar' 2>/dev/null | grep -v '\.installation/patches'`; do VERSION=$(java -jar ${jar} -version 2> /dev/null | grep version | sed 's/.*version\s//g'); inode=$(stat -c '%i' "${jar}"); fs=$(df -T "${jar}" | grep "/dev" | sed 's/ .*//'); ctime=$(stat ${jar} | grep 'Change' | grep -oP '[1-2][0-9]{3}-[0-1][0-9]-[0-3][0-9]'); if [ ! -z "${VERSION}" ]; then if [ ! -z "$FOUND" ]; then FOUND="$FOUND; $VERSION**$ctime"; else FOUND=${VERSION}'**'${ctime}; fi; fi; done; echo ${FOUND} + register: jboss.jar-ver + ignore_errors: yes + when: 'have_java and ("jboss.installed-versions" in facts_to_collect or "jboss.deploy-dates" in facts_to_collect)' + + - name: Gather jboss.run-jar-ver + raw: FOUND=""; for jar in `find {{scan_dirs}} -xdev -name 'run.jar' 2>/dev/null`; do VERSION=$(java -jar ${jar} --version 2> /dev/null | grep build | sed 's/.*[CS]V[NS]Tag.//g' | sed 's/\sdate.*//g'); inode=$(stat -c '%i' "${jar}"); fs=$(df -T "${jar}" | tail -1 | sed 's/ .*//'); ctime=$(stat ${jar} | grep 'Change' | grep -oP '[1-2][0-9]{3}-[0-1][0-9]-[0-3][0-9]'); if [ ! -z "${VERSION}" ]; then if [ ! -z "$FOUND" ]; then FOUND="$FOUND; $VERSION**${ctime}"; else FOUND=${VERSION}'**'${ctime}; fi; fi; done; echo ${FOUND}; + register: jboss.run-jar-ver + ignore_errors: yes + when: 'have_java and ("jboss.installed-versions" in facts_to_collect or "jboss.deploy-dates" in facts_to_collect)' diff --git a/roles/jboss/tasks/main.yml b/roles/jboss/tasks/main.yml index 44109df..f5c4d62 100644 --- a/roles/jboss/tasks/main.yml +++ b/roles/jboss/tasks/main.yml @@ -1,18 +1,5 @@ --- -# Scan linux systems for JBoss EAP or Wildfly Installations - - name: Gather jboss.jar-ver - raw: FOUND=""; for jar in `find {{scan_dirs}} -xdev -name 'jboss-modules.jar' 2>/dev/null | grep -v '\.installation/patches'`; do VERSION=$(java -jar ${jar} -version 2> /dev/null | grep version | sed 's/.*version\s//g'); inode=$(stat -c '%i' "${jar}"); fs=$(df -T "${jar}" | grep "/dev" | sed 's/ .*//'); ctime=$(stat ${jar} | grep 'Change' | grep -oP '[1-2][0-9]{3}-[0-1][0-9]-[0-3][0-9]'); if [ ! -z "${VERSION}" ]; then if [ ! -z "$FOUND" ]; then FOUND="$FOUND; $VERSION**$ctime"; else FOUND=${VERSION}'**'${ctime}; fi; fi; done; echo ${FOUND} - register: jboss.jar-ver - ignore_errors: yes - when: 'have_java and ("jboss.installed-versions" in facts_to_collect or "jboss.deploy-dates" in facts_to_collect)' - - - name: Gather jboss.run-jar-ver - raw: FOUND=""; for jar in `find {{scan_dirs}} -xdev -name 'run.jar' 2>/dev/null`; do VERSION=$(java -jar ${jar} --version 2> /dev/null | grep build | sed 's/.*[CS]V[NS]Tag.//g' | sed 's/\sdate.*//g'); inode=$(stat -c '%i' "${jar}"); fs=$(df -T "${jar}" | tail -1 | sed 's/ .*//'); ctime=$(stat ${jar} | grep 'Change' | grep -oP '[1-2][0-9]{3}-[0-1][0-9]-[0-3][0-9]'); if [ ! -z "${VERSION}" ]; then if [ ! -z "$FOUND" ]; then FOUND="$FOUND; $VERSION**${ctime}"; else FOUND=${VERSION}'**'${ctime}; fi; fi; done; echo ${FOUND}; - register: jboss.run-jar-ver - ignore_errors: yes - when: 'have_java and ("jboss.installed-versions" in facts_to_collect or "jboss.deploy-dates" in facts_to_collect)' - - name: Gather jboss.running-versions raw: for proc_pid in $(find /proc -maxdepth 1 -xdev -name "[0-9]*"); do ls -l ${proc_pid}/fd 2>/dev/null | grep "java"; done | grep -e "/modules/system/layers/base\|/opt/rh/eap" | sed -n "s/.*\->//p" | sed -n 's/\/modules\/system\/layers\/base.*//p;s/.*\(\/opt\/rh\/eap[1-9]\).*/\1/p' | sort -u register: jboss.running-versions