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 }