Conditions préalables
Si vous souhaitez essayer les exemples discutés dans cet article,
1) Vous devez faire installer un anible sur votre ordinateur.
2) Vous devez avoir au moins un hôte Ubuntu / Debian auquel vous pouvez vous connecter à partir d'Anible.
Il existe de nombreux articles sur Linuxhint dédiés à l'installation anable. Vous pouvez les vérifier si nécessaire pour installer les programmes nécessaires sur votre système.
Vous aurez également besoin d'avoir sshpass Installé sur votre ordinateur, où vous devriez être installé anible. Je vais vous montrer comment installer sshpass Sur Ubuntu / Debian et Centos / Rhel dans cet article. Ne vous inquiétez pas si vous n'avez pas ces programmes déjà installés sur votre système.
Installation de sshpass sur Ubuntu / Debian
Le programme sshpass est disponible dans le référentiel officiel de package d'Ubuntu / Debian. Vous pouvez facilement installer ce programme sur votre ordinateur.
Tout d'abord, mettez à jour le cache du référentiel de package APT via la commande suivante:
$ sudo apt mise à jour
Maintenant, installez sshpass via la commande suivante:
$ sudo apt install sshpass -y
SSHPASS devrait maintenant être installé.
Installation de sshpass sur Centos 8 / Rhel 8
sshpass est disponible dans le référentiel EPEL de CentOS 8 / RHEL 8. Vous devez avoir le référentiel EPEL activé pour installer SSHPASS.
Tout d'abord, mettez à jour le cache du référentiel de package DNF via la commande suivante:
$ sudo dnf makecache
Ensuite, installez le package du référentiel EPEL via la commande suivante:
$ sudo dnf installer ePEL-Release -y
Le package du référentiel EPEL doit désormais être installé et le référentiel EPEL doit être activé.
Mettez à jour le cache du référentiel du package DNF à nouveau, comme suit:
$ sudo dnf makecache
Installer sshpass via la commande suivante:
$ sudo dnf installer sshpass -y
sshpass devrait être installé.
Configuration d'un répertoire de projet ANSIBLE
Avant de progresser, ce serait une bonne idée de créer une structure de répertoire de projet, juste pour garder les choses un peu organisées.
Pour créer un répertoire de projet sshpass / et tous les sous-répertoires requis (dans votre répertoire de travail actuel), exécutez la commande suivante:
$ mkdir -pv sshpass / fichiers, playbooks
Accédez au répertoire du projet, comme suit:
$ cd sshpass /
Créer un hôtes Fichier d'inventaire, comme suit:
$ hôtes nano
Ajoutez votre nom IP ou DNS hôte dans le fichier d'inventaire.
Une fois que vous avez terminé cette étape, enregistrez le fichier en appuyant sur + X, suivie par Y et .
Créez un fichier de configuration anible dans le répertoire du projet, comme suit:
$ nano anible.CFG
Maintenant, saisissez les lignes suivantes dans le anable.CFG déposer.
Une fois que vous avez terminé cette étape, enregistrez le fichier en appuyant sur + X, suivie par Y et .
Tester la connexion SSH basée sur les mots de passe dans ANSIBLE
Ensuite, essayez de cingler les hôtes dans le fichier d'inventaire, comme suit:
$ anible tout -u shovon -m ping
NOTE: Ici le -u L'option est utilisée pour indiquer à Ansible quel utilisateur se connecte comme. Dans ce cas, ce sera l'utilisateur bousculade. Remplacez ce nom d'utilisateur par le vôtre à partir de maintenant, tout au long de la démo.
Comme vous pouvez le voir, je ne suis pas en mesure de me connecter à l'hôte et d'exécuter toutes les commandes.
Pour forcer ANSIBLE à demander le mot de passe de l'utilisateur, exécutez le anable commande avec le -pass Argument, comme suit:
$ anible all -u shovon --ask-pass -m ping
Comme vous pouvez le voir, ANSIBLE demande le mot de passe SSH de l'utilisateur. Maintenant, saisissez votre mot de passe SSH (mot de passe de connexion de l'utilisateur) et appuyez sur .
L'hôte peut être cinglé, comme suit:
Connexion SSH basée sur le mot de passe pour les manuels de jeu
Vous pouvez utiliser une connexion SSH basée sur un mot de passe lorsque vous exécutez des livres de jeu ANSIBL. Laissez-nous regarder un exemple.
Tout d'abord, créez un nouveau manuel askpass1.yaml dans le Playbooks / Répertoire, comme suit:
$ Nano Playbooks / Askpass1.yaml
Tapez les lignes suivantes dans le askpass1.yaml Fichier Playbook:
- hôtes: toutUne fois que vous avez terminé cette étape, enregistrez le fichier en appuyant sur + X, suivie par Y et .
Courir le askpass1.yaml Playbook, comme suit:
$ anible-playbook playbooks / askpass1.yaml
Comme vous pouvez le voir, je ne suis pas en mesure de me connecter à l'hôte. Vous pouvez voir que c'est parce que je n'ai pas exécuté le ANSIBLE-PLAYbook commande avec le -pass option.
Courir le askpass1.yaml livre de jeu avec le -pass Option, comme suit:
$ anible-playbook -Sk-Pass Playbooks / Askpass1.yaml
Comme vous pouvez le voir, Anible demande un mot de passe SSH. Tapez votre mot de passe SSH et appuyez sur .
Le livre de jeu askpass1.yaml devrait maintenant fonctionner avec succès.
Connexion du mot de passe sudo ansible pour les manuels
Le -pass L'option demandera le mot de passe de connexion SSH uniquement. Et si vous souhaitez également taper le mot de passe sudo? Vous verrez comment faire cela dans les prochaines étapes.
Tout d'abord, créez un nouveau manuel askpass2.yaml dans le Playbooks / Répertoire, comme suit:
$ Nano Playbooks / AskPass2.yaml
Tapez les lignes suivantes dans le askpass2.yaml déposer.
- hôtes: toutIci, j'ai utilisé la commande devenir vrai Pour dire à ANSIBLE d'exécuter ce livre de jeu avec les privilèges sudo. Une fois que vous avez terminé cette étape, enregistrez le askpass2.yaml fichier en appuyant sur + X, suivie par Y et .
Créé un indice.html fichier dans le des dossiers/ Répertoire, comme suit:
$ fichiers / index nano.html
Tapez les codes HTML suivants dans le indice.html déposer:
Ça marche
Une fois que vous avez terminé cette étape, enregistrez le fichier en appuyant sur + X suivie par Y et .
Vous pouvez exécuter le askpass2.yaml livre de jeu avec le -pass Option, comme suit:
$ anible-playBook - Playbooksk-pass / Askpass2.yamlOn vous demandera ensuite le mot de passe SSH, comme avant.
Mais le playbook peut toujours ne pas fonctionner même si vous fournissez le mot de passe SSH. La raison en est parce que vous devez dire à ANSIBLE d'inviter le mot de passe sudo, ainsi que le mot de passe SSH.
Vous pouvez dire à ANNIBLE de demander le mot de passe sudo en utilisant le -demander-becol Option lors de l'exécution du playbook, comme suit:
$ anible-playbook --ask-pass --k-beecome-pass playbooks / askpass2.yamlMaintenant, ANIBLE vous invitera au mot de passe SSH.
Ensuite, ANIBLE vous invitera au mot de passe sudo. Si votre mot de passe sudo est le même que le mot de passe SSH (ce qui est très probable), laissez-le vide et appuyez sur .
Comme vous pouvez le voir, le playbook a fonctionné avec succès.
Configuration de la connexion SSH basée sur le mot de passe automatique et de la connexion du mot de passe sudo
Vous souhaiterez peut-être utiliser la connexion SSH et sudo basée sur les mots de passe, mais ne souhaitez pas saisir le mot de passe SSH et le mot de passe sudo chaque fois que vous exécutez un livre de jeu. Si tel est le cas, alors cette section est pour vous.
Pour utiliser la connexion SSH basée sur les mots de passe et la connexion sudo sans être invitée aux mots de passe, tout ce que vous avez à faire est d'ajouter le ANSIBLE_SSH_PASS et anible_become_pass Variables hôte ou variables de groupe dans votre fichier d'inventaire.
Tout d'abord, ouvrez le hôtes Fichier d'inventaire, comme suit:
$ hôtes nano
Si vous avez plusieurs hôtes dans votre fichier d'inventaire et que chacun des hôtes a des mots de passe différents, ajoutez le ANSIBLE_SSH_PASS et anible_become_pass variables en tant que variables hôtes (après chaque hôte) comme suit.
Assurez-vous de remplacer secret avec votre mot de passe SSH et Sudo.
Si tous ou certains hôtes ont le même mot de passe, vous pouvez ajouter le ANSIBLE_SSH_PASS et anible_become_pass variables en tant que variables de groupe, comme indiqué dans l'exemple ci-dessous.
Ici, je n'ai qu'un seul hôte, donc j'ai ajouté le ANSIBLE_SSH_PASS et anible_become_pass variables pour le tous groupe (tous les hôtes dans le fichier d'inventaire). Mais, vous pouvez également ajouter ces variables pour d'autres groupes spécifiques.
Une fois que vous avez fini d'ajouter le ANSIBLE_SSH_PASS et anible_become_pass variables dans le hôtes Fichier d'inventaire, enregistrer le hôtes Fichier d'inventaire en appuyant sur + X, suivie par Y et .
Vous pouvez maintenant exécuter le askpass2.yaml Playbook, comme suit:
$ anible-playbook playbooks / askpass2.yamlComme vous pouvez le voir, le Playbook a fonctionné avec succès, bien qu'il n'ait pas demandé le mot de passe SSH ou le mot de passe sudo.
Donc, c'est ainsi que vous utilisez sshpass Pour SSH et SSH basés sur les mots de passe, connectez-vous dans ANIBLE. Merci d'avoir lu cet article!