6.5 KiB
Ajout de la gestion d'une nouvelle machine
-
Activer l'environnement virtuel de DebOps et se placer à la racine de son projet DebOps :
source ~/src/debops-venv/bin/activate cd ~/src/cargoday.debops/ansible
-
Éditer le fichier ansible/inventory/hosts et ajouter une nouvelle machine dans le groupe debops_all_hosts :
[debops_all_hosts] bullseye.ipr ansible_ssh_host=bullseye.ipr.univ-rennes1.fr
-
Créer une clef SSH pour son utilisateur si ce n'est pas déjà fait :
ssh-keygen -t ed25519
-
S'assurer que l'utilisateur actuel est bien autorisé à se connecter en tant que root via SSH avec sa clef privée :
ANS_HOST_FQDN="bullseye.ipr.univ-rennes1.fr ANS_HOST="bullseye.ipr ssh-copy-id root@"${ANS_HOST_FQDN:=/dev/null}" /bin/ssh-copy-id: INFO: Source of key(s) to be installed: "~/.ssh/id_ed25519.pub" The authenticity of host 'bullseye.ipr.univ-rennes1.fr (WWW.XXX.YYY.ZZZ)' can't be established. ECDSA key fingerprint is SHA256:HxPXY3xoXHzEynZA3lppYueGXds77hLxXRawWmSeVWY. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes <========= /bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@bullseye.ipr.univ-rennes1.fr's password: <========= Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@bullseye.ipr.univ-rennes1.fr'" and check to make sure that only the key(s) you wanted were added.
-
Créer un premier fichier de variables pour toutes les machines afin d'autoriser les connexions SSH des utilisateurs avec un mot de passe.
Le fichier ansible/inventory/group_vars/all/sshd.yml permettra de surcharger les valeurs par défaut des variables du rôle debops.sshd :
--- # vars file for all hosts to configure sshd role # Allow password authentication sshd__password_authentication: 'yes'
-
Lors de l'ajout d'une nouvelle machine, la première chose à faire est d'appliquer l'un des playbooks DebOps dédié au bootstrap :
Ces playbooks permettent entre autre d'installer le minimum requis pour qu'Ansible et DebOps s'appliquent correctement sur la nouvelle machine.
-
debops bootstrap -u root -l "${ANS_HOST:=/dev/null}"
Ce premier playbook bootstrap va automatiquement créer un premier utilisateur sur la machine distante avec le même nom d'utilisateur que celui utilisé pour lancer la commande
debops
et y transférer sa clef SSH.Cet utilisateur sera également placé dans le groupe admins et pourra lancer des commandes via
sudo
. -
debops bootstrap-ldap -u root -l "${ANS_HOST:=/dev/null}"
Ce second playbook bootstrap-ldap va configurer une authentification LDAP via le rôle debops.nslcd et nécessite donc une petite configuration supplémentaire via un fichier d'inventaire dédié (ex. ansible/inventory/group_vars/all/nslcd.conf). Voir la documentation dédiée à debops.nslcd et au minimum les paramètres :
- nslcd__ldap_binddn
- nslcd__ldap_bindpw (possibilité de chiffrer via ansible-vault)
- nslcd__ldap_base_dn
- Un exemple de fichier de configuration est également disponible sous cargoday.debops/ansible/inventory/group_vars/all/nslcd.yml
-
Exemple de résultat après l'application d'un playbook bootstrap :
PLAY RECAP ***************************************************************************** bullseye.ipr : ok=250 changed=124 unreachable=0 failed=0 skipped=103 rescued=0 ignored=0 Install PKI packages ---------------------------------------------------- 9.25s Create base directory hierarchy ----------------------------------------- 8.26s Flush handlers for PKI -------------------------------------------------- 7.38s Install packages for nslcd support -------------------------------------- 6.32s Install required APT packages ------------------------------------------- 4.77s Install required packages ----------------------------------------------- 4.20s Install atd ------------------------------------------------------------- 4.18s Install Libuser requested packages -------------------------------------- 4.02s Gather Ansible facts if needed ------------------------------------------ 3.91s Ensure that requested UNIX system groups exist -------------------------- 3.83s
-
-
Il est ensuite normalement possible de se connecter en SSH :
ssh "${ANS_HOST_FQDN}" marvin@bullseye.ipr.univ-rennes1.fr's password: Creating directory '/home/marvin'. Linux bullseye 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) x86_64 ---------------------------------------------------------------------- This system is managed by Ansible, manual changes will be lost ---------------------------------------------------------------------- $ hostname -f bullseye.univ-rennes1.fr
DH params
L'exécution de la toute première commande debops
peut être un peu
longue car elle va générer des paramètres Diffie-Hellman qui seront
utilisés par défaut une première fois sur les nouvelles machines.
Un job atd
est ensuite placé sur les machines pour les régénérer
afin qu'ils soient uniques et propres à chaque hôte.
Pour plus d'informations, voir les documentations relatives à :
- [la configuration d'une nouvelle machine][debops doc configuration machine]
- les informations liées au premier lancement de dhparam