Déployer l'agent Rudder sur Ubuntu avec Cloud-Init 😇

Au quotidien, j'utilise Rudder pour maintenir une certaine cohérence dans la configuration de base appliquée sur mes différents serveurs et de reprendre la main sur les drifts de configuration qui peuvent être observés.

Cet article va être hyper rapide mais je souhaitais partager avec vous comment y arriver. 🙏

Pour des raisons de lisibilité, vous trouverez le fichier de configuration Cloud-Init ici :

Deploy Rudder Agent with Cloud-Init on Ubuntu Server 22.04
Deploy Rudder Agent with Cloud-Init on Ubuntu Server 22.04 - rudder-agent-cloud-init

En complément, vous pouvez facilement accepter cette machine (qui arrive dans les "pending nodes") une fois l'agent exécuté via l'API. 😎

Pour y arriver, vous devez vous générer un token d'API puis :

# Stocker le nom de la machine à accepter
RUDDER_AGENT_HOSTNAME="demo-rudder-cloud-init"

# Récupérer l'ID de la machine en question
NODE_ID=$(curl -sk -H "X-API-Token: xxxxxx" 'https://rudder.example.org/rudder/api/latest/nodes/pending?where=\[\{"objectType":"node","attribute":"OS","comparator":"eq","value":"Linux"\},\{"objectType":"node","attribute":"nodeHostname","comparator":"regex","value":"${RUDDER_AGENT_HOSTNAME}"\}\]' | jq '.data.nodes[0].id' | tr -d '"')

# L'accepter
curl -sk -H "X-API-Token: xxxxxxx" --request POST https://rudder.example.org/rudder/api/latest/nodes/pending/${NODE_ID} --data "status=accepted"