Using bash modules
Bash modules in Ansible are no different than any other bash scripts, except the way it prints the data on stdout
. Bash modules could be as simple as checking if a process is running on the remote host to running some complex commands.
Note
As previously stated, the general recommendation is to use Python for modules. In my opinion the second-best choice (only for very easy modules) is bash
module due to its simplicity and user base.
Let's create the file library/kill_java.sh
with the following content:
#!/bin/bash source $1 SERVICE=$service_name JAVA_PIDS=$(/usr/java/default/bin/jps | grep ${SERVICE} | awk '{print $1}') if [ ${JAVA_PIDS} ]; then for JAVA_PID in ${JAVA_PIDS}; do /usr/bin/kill -9 ${JAVA_PID} done echo "failed=False msg="Killed all the orphaned processes for ${SERVICE}"" exit 0 else echo "failed=False msg="No orphaned processes to kill for ${SERVICE}"" exit...