95 lines
2.5 KiB
Bash
95 lines
2.5 KiB
Bash
wx-infra(){
|
|
wx-login
|
|
wx-auto &> /dev/null
|
|
|
|
wxi-header "Infra"
|
|
wxi-restricted
|
|
|
|
case $USERNAME in
|
|
cwchristerw)
|
|
if [[ -d "$HOME/.warengroup/infra" ]]
|
|
then
|
|
INFRA_PATH="$HOME/.warengroup/infra"
|
|
else
|
|
INFRA_PATH="$HOME/.warengroup/infra"
|
|
mkdir -p "$INFRA_PATH" &> /dev/null
|
|
git clone ssh://git@git.waren.io:2222/warengroup-private/infra.git --config core.sshCommand="ssh -i $HOME/.ssh/keys/warengroup-legacy -o ProxyJump=none" "$INFRA_PATH" &> /dev/null
|
|
fi
|
|
|
|
if [[ ! -f "$INFRA_PATH/vault/cwchristerw" || ! -f "$INFRA_PATH/vault/warengroup" ]]
|
|
then
|
|
mkdir -p "$INFRA_PATH/vault" &> /dev/null
|
|
|
|
curl \
|
|
-H "X-Vault-Token: $TOKEN" \
|
|
-X GET \
|
|
https://$VAULT_DOMAIN/v1/cli/data/cwchristerw/settings/infra -s | jq -r '.data.data.cwchristerw' > "$INFRA_PATH/vault/cwchristerw"
|
|
|
|
curl \
|
|
-H "X-Vault-Token: $TOKEN" \
|
|
-X GET \
|
|
https://$VAULT_DOMAIN/v1/cli/data/cwchristerw/settings/infra -s | jq -r '.data.data.warengroup' > "$INFRA_PATH/vault/warengroup"
|
|
fi
|
|
|
|
INFRA_VAULT="--vault-id warengroup@vault/warengroup --vault-id cwchristerw@vault/cwchristerw"
|
|
;;
|
|
*)
|
|
wxi-content status "User" "Unsupported"
|
|
wxi-footer
|
|
wxi-stop
|
|
INFRA_PATH="$HOME/.warengroup/infra"
|
|
INFRA_VAULT="--vault-id warengroup@vault/warengroup"
|
|
;;
|
|
esac
|
|
|
|
if [[ -z ${args['2']} ]]
|
|
then
|
|
echo "Tag Required"
|
|
else
|
|
cd "$INFRA_PATH"
|
|
#git pull &> /dev/null
|
|
#ansible-galaxy collection install -r requirements.yml --upgrade &> /dev/null
|
|
|
|
if [[ ${args['2']} == "init" ]]
|
|
then
|
|
wxi-header "Init" h3
|
|
|
|
host=${args['host']}
|
|
|
|
if [[ -z ${args['3']} ]]
|
|
then
|
|
tags=init
|
|
else
|
|
tags=${args['3']}
|
|
fi
|
|
|
|
ansible-playbook $INFRA_VAULT init.yml --tags $tags --limit "$host"
|
|
elif [[ ${args['2']} == "manager" ]]
|
|
then
|
|
if [[ -z ${args['host']} ]]
|
|
then
|
|
host="*"
|
|
else
|
|
host=${args['host']}
|
|
fi
|
|
|
|
if [[ -z ${args['3']} ]]
|
|
then
|
|
operation=${args['operation']}
|
|
else
|
|
operation=${args['3']}
|
|
fi
|
|
|
|
wxi-header "Manager" h3
|
|
ansible-playbook $INFRA_VAULT manager.yml --tags $operation --extra-vars "host=$host"
|
|
else
|
|
wxi-header "Infra" h3
|
|
host=${args['host']}
|
|
tags=${args['2']}
|
|
ansible-playbook $INFRA_VAULT infra.yml --tags $tags --limit "$host"
|
|
fi
|
|
cd "$OLDPWD"
|
|
fi
|
|
wxi-footer
|
|
}
|