vault: implement bootstrap integration
Some checks failed
Run nix flake check / flake-check (push) Failing after 3m15s
Some checks failed
Run nix flake check / flake-check (push) Failing after 3m15s
This commit is contained in:
@@ -22,6 +22,53 @@ let
|
||||
fi
|
||||
|
||||
echo "Network connectivity confirmed"
|
||||
|
||||
# Unwrap Vault token and store AppRole credentials (if provided)
|
||||
if [ -n "''${VAULT_WRAPPED_TOKEN:-}" ]; then
|
||||
echo "Unwrapping Vault token to get AppRole credentials..."
|
||||
|
||||
VAULT_ADDR="''${VAULT_ADDR:-https://vault.home.2rjus.net:8200}"
|
||||
|
||||
# Unwrap the token to get role_id and secret_id
|
||||
UNWRAP_RESPONSE=$(curl -sk -X POST \
|
||||
-H "X-Vault-Token: $VAULT_WRAPPED_TOKEN" \
|
||||
"$VAULT_ADDR/v1/sys/wrapping/unwrap") || {
|
||||
echo "WARNING: Failed to unwrap Vault token (network error)"
|
||||
echo "Vault secrets will not be available, but continuing bootstrap..."
|
||||
}
|
||||
|
||||
# Check if unwrap was successful
|
||||
if [ -n "$UNWRAP_RESPONSE" ] && echo "$UNWRAP_RESPONSE" | jq -e '.data' >/dev/null 2>&1; then
|
||||
ROLE_ID=$(echo "$UNWRAP_RESPONSE" | jq -r '.data.role_id')
|
||||
SECRET_ID=$(echo "$UNWRAP_RESPONSE" | jq -r '.data.secret_id')
|
||||
|
||||
# Store credentials
|
||||
mkdir -p /var/lib/vault/approle
|
||||
echo "$ROLE_ID" > /var/lib/vault/approle/role-id
|
||||
echo "$SECRET_ID" > /var/lib/vault/approle/secret-id
|
||||
chmod 600 /var/lib/vault/approle/role-id
|
||||
chmod 600 /var/lib/vault/approle/secret-id
|
||||
|
||||
echo "Vault credentials unwrapped and stored successfully"
|
||||
else
|
||||
echo "WARNING: Failed to unwrap Vault token"
|
||||
if [ -n "$UNWRAP_RESPONSE" ]; then
|
||||
echo "Response: $UNWRAP_RESPONSE"
|
||||
fi
|
||||
echo "Possible causes:"
|
||||
echo " - Token already used (wrapped tokens are single-use)"
|
||||
echo " - Token expired (24h TTL)"
|
||||
echo " - Invalid token"
|
||||
echo ""
|
||||
echo "To regenerate token, run: create-host --hostname $HOSTNAME --force"
|
||||
echo ""
|
||||
echo "Vault secrets will not be available, but continuing bootstrap..."
|
||||
fi
|
||||
else
|
||||
echo "No Vault wrapped token provided (VAULT_WRAPPED_TOKEN not set)"
|
||||
echo "Skipping Vault credential setup"
|
||||
fi
|
||||
|
||||
echo "Fetching and building NixOS configuration from flake..."
|
||||
|
||||
# Read git branch from environment, default to master
|
||||
|
||||
Reference in New Issue
Block a user