Mémo de configuration Rundeck d’un node avec SSH.
Testé sur Rundeck 4.14.2.
Génération de la clé SSH
|
1 |
$ ssh-keygen -t ed25519 -b 4096 -f id_ed25519_test -N "" -C "Commentaire" |
|
1 |
$ ssh-copy-id -i ~/.ssh/id_ed25519_test.pub utilisateur@serveur |
|
1 |
$ ssh -i ~/.ssh/id_ed25519_test utilisateur@serveur |
Configuration Rundeck
Default node executor
Changer le node executor par défaut SSH par SSHJ-SSH.
Sinon, la clé risque de ne pas être acceptée.
Message d’erreur courant à cause de cette configuration par défaut de Rundeck :
- Failed: SSHProtocolFailure: invalid privatekey: [B@25644582
- Failed: Unknown: Exhausted available authentication methods
- Failed: SSHProtocolFailure: Algorithm negotiation fail
A partir du projet, cliquer sur « Project settings » puis « Edit Configuration »
- Onglet « Default node executor »
- Dans la liste déroulante, sélectionner « SSHJ-SSH ».
- « SSH Authentication » : « privateKey »
- Enregistrer
Ajouter la clé SSH dans le key storage
A partir du projet, cliquer sur « Project settings » puis « Key storage »
- « Add or Upload a key »
- « Key type » : « Private Key »
- « Upload the file » et sélectionner la clé privée.
- « Save »
Noter le « Storage path » de la clé.
Ex : keys/project/projet-test/id_ed25519_test
Créer ou modifier un node
Sur le serveur Rundeck, créer le répertoire : /var/lib/rundeck/projects/mon_projet
L’utilisateur et le groupe doit être « rundeck ».
A partir du projet, cliquer sur « Project settings » puis « Edit nodes »
Onglet « Sources »
- « Add a new Node Source » puis « File »
- « Format » : « resourcexml »
- « File Path » : « /var/lib/rundeck/projects/mon_projet/resources.xml »
- Cocher « Generate », « Include Server Node » et « Writeable »
- « Save »
Vérifier sur le serveur que le fichier est créé.
Onglet « Edit »
Cliquer sur le bouton « Modify » du fichier de ressource.
Rajouter un serveur comme dans l’exemple pour « serveur-test » :
|
1 2 3 4 5 6 |
<?xml version="1.0" encoding="UTF-8"?> <project> <node name="serveur-test" description="Serveur de test" tags="" hostname="192.168.28.65" osArch="amd64" osFamily="unix" osName="" osVersion="" username="utilisateur" ssh-key-storage-path="keys/project/projet-test/id_ed25519_test"/> <node name="rundeck" description="Rundeck server node" tags="" hostname="rundeck.lan" osArch="amd64" osFamily="unix" osName="Linux" osVersion="5.15.0-76-generic" username="rundeck"/> </project> |
Le paramètre « ssh-key-storage-path » doit contenir le « Storage path » de la clé.
Reste à tester un job qui permet par exemple d’afficher le hostname sur serveur cible.