day one script: generate ansible inventory/config and ping the node

This commit is contained in:
John McCardle 2022-02-08 21:05:44 -05:00
parent b66f1bcadd
commit 0e95423877
1 changed files with 29 additions and 0 deletions

29
day1_geninventory.sh Executable file
View File

@ -0,0 +1,29 @@
#
# Day 1 - Generate Inventory
# Requires linode-cli to be installed (`pip3 install linode-cli`)
# The hosts file generated requires ansible (`pip3 install ansible`)
# This will crush any ansible.cfg and hosts files in the current directory.
# Default ansible group and linode label
if [ -z "$CATEGORY" ]
then
CATEGORY="UpskillChallengeNode"
fi
# fetch IP address from Linode. Assumes one device (TODO: handle a swarm of them).
NODEIP=$(linode-cli linodes list --format 'ipv4' --label "$CATEGORY" --text | tail -n 1)
# create or clobber hosts file
cat > hosts << EOF
[$CATEGORY]
$NODEIP ansible_user=root
EOF
# create or clobber hosts file
cat > ansible.cfg << EOF
[defaults]
inventory = $(pwd)/hosts
EOF
ansible "$CATEGORY" -m ping