mirror of
https://github.com/bluxmit/alnoda-workspaces.git
synced 2024-09-30 09:16:14 +13:00
50 lines
1.5 KiB
Bash
50 lines
1.5 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
while getopts i:o: flag
|
||
|
do
|
||
|
case "${flag}" in
|
||
|
i) inventory=${OPTARG};;
|
||
|
o) output_dir=${OPTARG};;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
if [ -z "${output_dir}" ]; then output_dir="/home/static-server/ansible-reports/"; fi
|
||
|
project_name=${PWD##*/}
|
||
|
printf '%s\n' "project name - ${project_name}"
|
||
|
report_dir="${output_dir}/${project_name}/$(date +"%d-%m-%Y-%H-%M-%S")"
|
||
|
mkdir -p "$report_dir"
|
||
|
|
||
|
|
||
|
# Ansible Lint
|
||
|
ansible-lint --nocolor > ${report_dir}/linter.txt
|
||
|
|
||
|
|
||
|
# ansible-cmdb
|
||
|
mkdir -p ./ansible-cmdb
|
||
|
if [ "${inventory}" ]; then
|
||
|
ansible -m setup -i ${inventory} --tree ./ansible-cmdb all
|
||
|
else
|
||
|
ansible -m setup --tree ./ansible-cmdb all
|
||
|
fi
|
||
|
ansible-cmdb ./ansible-cmdb > ${report_dir}/hosts.html
|
||
|
rm -rf ./ansible-cmdb
|
||
|
|
||
|
|
||
|
# Ansible inventory grapher
|
||
|
if [ "${inventory}" ]; then
|
||
|
ansible-inventory-grapher -i ${inventory} all | dot -Tpng > ${report_dir}/inventory.png
|
||
|
else
|
||
|
ansible-inventory-grapher all | dot -Tpng > ${report_dir}/inventory.png
|
||
|
fi
|
||
|
|
||
|
|
||
|
# Ansible playbook grapher
|
||
|
mkdir -p ${report_dir}/plays
|
||
|
if [ "${inventory}" ]; then
|
||
|
ls | grep yml | xargs -I{} ansible-playbook-grapher -i ${inventory} --include-role-tasks {} -o ${report_dir}/plays/{}
|
||
|
ls | grep yaml | xargs -I{} ansible-playbook-grapher -i ${inventory} --include-role-tasks {} -o ${report_dir}/plays/{}
|
||
|
else
|
||
|
ls | grep yml | xargs -I{} ansible-playbook-grapher --include-role-tasks {} -o ${report_dir}/plays/{}
|
||
|
ls | grep yaml | xargs -I{} ansible-playbook-grapher --include-role-tasks {} -o ${report_dir}/plays/{}
|
||
|
fi
|