mirror of
https://github.com/bluxmit/alnoda-workspaces.git
synced 2024-10-01 01:36:16 +13:00
49 lines
1.5 KiB
Bash
49 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
|