Ansible & :term:`SSH` ##################### En fonction de la méthode d'authentification sur les serveurs et d'élevation de privilège, il faut rajouter des options aux lignes de commande ansible. Ces options seront à rajouter pour toutes les commandes ansible du document . Pour chacune des 3 sections suivantes, vous devez être dans l'un des cas décrits Authentification du compte utilisateur utilisé pour la connexion :term:`SSH` ============================================================================ Pour le login du compte utilisateur, voir la section :ref:`inventaire`. Par clé :term:`SSH` avec passphrase ------------------------------------ Dans le cas d'une authentification par clé avec passphrase, il est nécessaire d'utiliser ssh-agent pour mémoriser la clé privée. Pour ce faire, il faut : * exécuter la commande ``ssh-agent `` (exemple ``ssh-agent /bin/bash``) pour lancer un shell avec un agent de mémorisation de la clé privée associé à ce shell * exécuter la commande ``ssh-add`` et renseigner la passphrase de la clé privée Vous pouvez maintenant lancer les commandes ansible comme décrites dans ce document. A noter : ssh-agent est un démon qui va stocker les clés privées (déchiffrées) en mémoire et que le client :term:`SSH` va interroger pour récupérer les informations privées pour initier la connexion. La liaison se fait par un socket UNIX présent dans /tmp (avec les droits 600 pour l'utilisateur qui a lancé le ssh-agent). Cet agent disparaît avec le shell qui l'a lancé. Par login/mot de passe ---------------------- Dans le cas d'une authentificatioon par login/mot de passe, il est nécessaire de spécifier l'option --ask-pass (ou -k en raccourci) aux commandes ansible ou ansible-playbook de ce document . Au lancement de la commande ``ansible`` (ou ``ansible-playbook``), il sera demandé le mot de passe Par clé :term:`SSH` sans passphrase ------------------------------------ Dans ce cas, il n'y a pas de paramétrage particulier à effectuer. Authentification des hôtes ========================== Pour éviter les attaques de type :term:`MitM`, le client :term:`SSH` cherche à authentifier le serveur sur lequel il se connecte. Ceci se base généralement sur le stockage des clés publiques des serveurs auxquels il faut faire confiance (~/.ssh/known_hosts). Il existe différentes méthodes pour remplir ce fichier (vérification humaine à la première connexion, gestion centralisée, :term:`DNSSEC`). La gestion de fichier est hors périmètre :term:`VITAM` mais c'est un pré-requis pour le lancement d'ansible. Elévation de privilèges ======================= Une fois que l'on est connecté sur le serveur cible, il faut définir la méthode pour accéder aux droits ``root`` Par sudo avec mot de passe -------------------------- Dans ce cas, il faut rajouter les options ``--ask-sudo-pass`` Au lancement de la commande ``ansible`` (ou ``ansible-playbook``), il sera demandé le mot de passe demandé par ``sudo`` Par su ------ Dans ce cas, il faut rajouter les options ``--become-method=su --ask-su-pass`` Au lancement de la commande ansible (ou ansible-playbook), il sera demandé le mot de passe ``root`` Par sudo sans mot de passe -------------------------- Il n'y a pas d'option à rajouter (l'élévation par ``sudo`` est la configuration par défaut) Déjà Root --------- Dans ce cas, il n'y a pas de paramétrages supplémentaires à effectuer.