Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
elearning:workbooks:debian:6:avance:l130:part1 [2020/05/27 16:47] adminelearning:workbooks:debian:6:avance:l130:part1 [2023/08/25 01:25] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
  
-Version : **2020.02**.+Version : **2023.02**.
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
  
-====== DOF501 - Installation d'Ansible======+====== LCF801 - Installation d'Ansible======
  
 =====Contenu du Module===== =====Contenu du Module=====
  
-  * **DOF501 - Installation d'Ansible**+  * **LCF801 - Installation d'Ansible** 
 +    * Contenu du Module
     * Qu'est-ce Ansible ?     * Qu'est-ce Ansible ?
-    * LAB #1 - Importation de vos Machines Virtuelles +    * LAB #1 - Installation d'Ansible 
-    * LAB #2 - Connexion à vos Machines Virtuelles +    * LAB #- Configuration de ssh et de sudo 
-      * MAC et Linux +      * 2.1 - ssh 
-      * Windows +      * 2.2 - sudo
-    * LAB #3 - Installation d'Ansible +
-    * LAB #- Configuration de ssh et de sudo +
-      * ssh +
-      * sudo+
  
 =====Qu'est-ce Ansible ?===== =====Qu'est-ce Ansible ?=====
Ligne 30: Ligne 27:
   * utilise le langage **YAML** (**Y**et **A**other **M**arkup **L**anguage), plus simple que JSON, le code Ruby utilisé par **Chef** et le langage propriétaire de **Puppet**.   * utilise le langage **YAML** (**Y**et **A**other **M**arkup **L**anguage), plus simple que JSON, le code Ruby utilisé par **Chef** et le langage propriétaire de **Puppet**.
  
-=====LAB #1 Importation de vos Machines Virtuelles=====+{{ :elearning:workbooks:debian:6:avance:l130:ansible-overview.png?nolink&600 |}}
  
-====Formations en Face-à-Face Pédagogique (FFP) ====+=====LAB #1 Installation d'Ansible=====
  
-Si vous suivez cette formation en Centre de Formation, vous avez besoin d'importer les machines virtuelles qui vous ont été fournies. +Connectez-vous à la à **centos8** à partir de votre gateway dans notre cloud :
- +
-Ouvrez VirtualBox et importez les machines virtuelles **Ansible**, **TargetA**, **TargetB**, **Web01**, **Web02**, **Web03**, **Web04** et **Windows10** : +
- +
-  Fichier > Importer un appareil virtuel ... +
- +
-^ Machine ^ Nom d'hôte ^ Adresse IP ^ +
-| Ansible | ansible.i2tch.loc | 10.0.2.9 | +
-| TargetA | targeta.i2tch.loc | 10.0.2.10 | +
-| Web01 | web01.i2tch.loc | 10.0.2.11 | +
-| Web02 | web02.i2tch.loc | 10.0.2.12 | +
-| Web03 | web03.i2tch.loc | 10.0.2.13 | +
-| Web04 | web04.i2tch.loc | 10.0.2.14 | +
-| TargetB | targetb.i2tch.loc | 10.0.2.15 | +
-| Windows10 | windows10 | 10.0.2.15 | +
- +
-====Formations à Distance (FAD) ==== +
- +
-Vous disposez, pendant la durée de la formation, d'un serveur dédié, pré-installé, pré-configuré et hébergé dans le cloud.  +
- +
-=====LAB #2 - Connexion à vos Machines Virtuelles===== +
- +
-Les noms d'utilisateurs et les mots de passe sont identiques pour chaque machine : +
- +
-^ Utilisateur ^ Mot de Passe ^ +
-| trainee | trainee | +
-| root | fenestros | +
- +
-====Formations en FFP==== +
- +
-Commencez par créer le NatNetwork dans VirtualBox : +
- +
-  Fichier > Paramètres > Réseau > + +
- +
-Toutes les machines virtuelles sont dans un réseau NAT appelé **NatNetwork**. Créez donc une redirection de port dans le réseau NAT **NatNetwork** de VirtualBox (Fichier > Paramètres > Réseau > NatNetwork > Redirection de ports) pour la machine Ansible : +
- +
-^ Nom ^ Protocole ^ IP hôte ^ Port hôte ^ IP invité ^ Port invité ^ +
-| Ansible | TCP | 127.0.0.1 | 2222 | 10.0.2.9 | 22 | +
- +
-Démarrez ensuite les machines virtuelles **Ansible** et **TargetA**. +
- +
-Vous devez vous connecter à la machine virtuelle Ansible de la façon suivante : +
- +
-===Linux, MacOS, Windows 10 muni du client ssh et FAD=== +
- +
-Ouvrez un terminal et tapez la commande suivante pour la machine **Ansible** :+
  
 <code> <code>
-$ ssh -l trainee localhost -p 2222 +trainee@traineeXX:~$ ssh -l trainee 10.0.2.45 
-</code>+The authenticity of host '10.0.2.45 (10.0.2.45)' can't be established. 
 +ECDSA key fingerprint is SHA256:Q7T/CP0SLiMbMAIgVzTuEHegYS/spPE5zzQchCHD5Vw. 
 +Are you sure you want to continue connecting (yes/no)? yes 
 +Warning: Permanently added '10.0.2.45' (ECDSA) to the list of known hosts. 
 +trainee@10.0.2.45's password:  
 +Activate the web console with: systemctl enable --now cockpit.socket
  
-===Windows 7 et Windows 10 sans client ssh en FFP=== +Last loginSun Mar  6 12:00:35 2022 from 10.0.2.1 
- +[trainee@centos8 ~]
-Ouvrez **putty** et utilisez les informations suivantes pour vous connecter à **Ansible** : +
- +
-  * Host Name --> localhost +
-  * Port --> 2222 +
- +
-====Formations à Distance (FAD) ==== +
- +
-Connectez-vous en ssh à votre serveur dédié : +
- +
-===Linux, MacOS et Windows 10 muni du client ssh=== +
- +
-Ouvrez un terminal ou CMD et tapez la commande suivante : +
- +
-<code> +
-ssh -l desktop serverXX.ittraining.network+
 </code> </code>
  
-où **XX** représente le numéro de votre serveur dédié. Entrez ensuite le mot de passe qui vous a été fourni.+Pour obtenir la dernière version d'Ansible, il convient d'utiliser **python3-pip**. Installez python3-pip avec la commande **dnf** :
  
-===Windows 7 et Windows 10 sans client ssh===+<code>  
 +[trainee@centos8 ~]$ su - 
 +Password: fenestros
  
-Ouvrez **putty** et utilisez les informations suivantes pour vous connecter à votre serveur dédié :+[root@centos8 ~]# dnf update 
 +Last metadata expiration check0:19:03 ago on Tue 08 Mar 2022 10:30:01 EST. 
 +Dependencies resolved. 
 +Nothing to do. 
 +Complete!
  
-  * Host Name --> serverXX.ittraining.network +[root@centos8 ~]# dnf -y install python3-pip 
-  * Port --> 22+Last metadata expiration check: 0:19:29 ago on Tue 08 Mar 2022 10:30:01 EST
 +Package python3-pip-9.0.3-20.el8.noarch is already installed. 
 +Dependencies resolved. 
 +Nothing to do. 
 +Complete!
  
-Au prompt, connectez-vous en tant que **desktop** avec le mot de passe qui vous a été fourni.+[root@centos8 ~]# pip3 -
 +pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
  
-Créez ensuite la redirection de port pour la machine **Ansible** :+[root@centos8 ~]# pip3 list 
 +DEPRECATIONThe default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning. 
 +blivet (3.4.0) 
 +Brlapi (0.6.7) 
 +chardet (3.0.4) 
 +chrome-gnome-shell (0.0.0) 
 +configobj (5.0.6) 
 +cupshelpers (1.0) 
 +dasbus (1.2) 
 +dbus-python (1.2.4) 
 +decorator (4.2.1) 
 +docutils (0.14) 
 +ethtool (0.14) 
 +gpg (1.13.1) 
 +html5lib (0.999999999) 
 +idna (2.5) 
 +iniparse (0.4) 
 +initial-setup (0.3.81.7) 
 +isc (2.0) 
 +langtable (0.0.51) 
 +libcomps (0.1.16) 
 +lxml (4.2.3) 
 +nftables (0.1) 
 +ntplib (0.3.3) 
 +ordered-set (2.0.2) 
 +perf (0.1) 
 +pexpect (4.3.1) 
 +pid (2.1.1) 
 +pip (9.0.3) 
 +ply (3.9) 
 +productmd (1.11) 
 +psutil (5.4.3) 
 +ptyprocess (0.5.2) 
 +pwquality (1.4.4) 
 +pycairo (1.16.3) 
 +pycups (1.9.72) 
 +pycurl (7.43.0.2) 
 +pydbus (0.6.0) 
 +pyenchant (2.0.0) 
 +pygobject (3.28.3) 
 +pyinotify (0.9.6) 
 +pykickstart (3.16.14) 
 +pyparsing (2.1.10) 
 +pyparted (3.11.7) 
 +PySocks (1.6.8) 
 +python-dateutil (2.6.1) 
 +python-dmidecode (3.12.2) 
 +python-linux-procfs (0.6.3) 
 +python-meh (0.47.2) 
 +pytz (2017.2) 
 +pyudev (0.21.0) 
 +pyxdg (0.25) 
 +PyYAML (3.12) 
 +requests (2.20.0) 
 +requests-file (1.4.3) 
 +requests-ftp (0.3.1) 
 +rpm (4.14.3) 
 +schedutils (0.6) 
 +selinux (2.9) 
 +sepolicy (1.1) 
 +setools (4.3.0) 
 +setroubleshoot (1.1) 
 +setuptools (39.2.0) 
 +simpleline (1.1.1) 
 +six (1.11.0) 
 +slip (0.6.4) 
 +slip.dbus (0.6.4) 
 +sos (4.1) 
 +SSSDConfig (2.5.2) 
 +subscription-manager (1.28.21) 
 +syspurpose (1.28.21) 
 +systemd-python (234) 
 +urllib3 (1.24.2) 
 +webencodings (0.5.1)
  
-<code> +[root@centos8 ~]# python3 -m pip install --upgrade pip 
-desktop@server16:~$ VBoxManage natnetwork modify --netname NatNetwork --port-forward-4 "Ansible:tcp:[]:2222:[10.0.2.9]:22"+WARNING: Running pip install with root privileges is generally not a good idea. Try `__main__.py install --user` instead. 
 +Collecting pip 
 +  Downloading https://files.pythonhosted.org/packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl (1.7MB) 
 +    100% |████████████████████████████████| 1.7MB 747kB/s  
 +Installing collected packagespip 
 +Successfully installed pip-21.3.1
 </code> </code>
  
-Pour lancer les deux machines **Ansible** et **TargetA**utilisez les commandes suivantes à partir de votre serveur dédié :+Dernièrementmettez à jour Python vers la version 3.8 :
  
 <code> <code>
-desktop@server16:~$ VBoxManage startvm Ansible --type headless +[root@centos8 ~]# dnf module -y install python38
-Waiting for VM "Ansible" to power on... +
-VM "Ansible" has been successfully started. +
-desktop@server16:~$ VBoxManage startvm TargetA --type headless +
-Waiting for VM "TargetA" to power on... +
-VM "TargetA" has been successfully started.+
 </code> </code>
-  
-=====LAB #3 - Installation d'Ansible===== 
- 
-Pour obtenir la dernière version d'Ansible, il convient d'utiliser **pip**. Installez pip avec la commande suivante : 
- 
-<Code:bash> 
-trainee@ansible:~$ su - 
-Mot de passe : fenestros 
-root@ansible:~# apt-get update 
-... 
-root@ansible:~# apt-get install python3-pip 
-... 
-root@ansible:~# pip3 -V 
-pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.5) 
-root@ansible:~# pip3 list 
-DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning. 
-ansible (2.7.6) 
-bcrypt (3.1.6) 
-Brlapi (0.6.5) 
-cffi (1.11.5) 
-chardet (2.3.0) 
-cryptography (1.7.1) 
-cupshelpers (1.0) 
-httplib2 (0.9.2) 
-idna (2.2) 
-Jinja2 (2.10) 
-keyring (10.1) 
-keyrings.alt (1.3) 
-louis (3.0.0) 
-MarkupSafe (1.1.0) 
-paramiko (2.4.2) 
-pip (9.0.1) 
-pyasn1 (0.1.9) 
-pycparser (2.19) 
-pycrypto (2.6.1) 
-pycups (1.9.73) 
-pycurl (7.43.0) 
-pygobject (3.22.0) 
-PyNaCl (1.3.0) 
-pysmbc (1.0.15.6) 
-python-apt (1.4.0b3) 
-python-debian (0.1.30) 
-python-debianbts (2.6.1) 
-pyxdg (0.25) 
-PyYAML (3.13) 
-reportbug (7.1.7) 
-requests (2.12.4) 
-SecretStorage (2.3.1) 
-setuptools (33.1.1) 
-six (1.10.0) 
-urllib3 (1.19.1) 
-wheel (0.29.0) 
-</Code> 
  
-<WRAP center round important 60%>+<WRAP center round important>
 **Important** : Pip3 est le gestionnaire des paquets pour Python 3.5. La commande est disponible en tant que pip3 ou pip sous Linux, Mac et Windows(r). **Important** : Pip3 est le gestionnaire des paquets pour Python 3.5. La commande est disponible en tant que pip3 ou pip sous Linux, Mac et Windows(r).
 </WRAP> </WRAP>
  
-<WRAP center round important 60%>+<WRAP center round important>
 **Important** : Notez que le mot de passe **fenestros** ne sera pas en clair. **Important** : Notez que le mot de passe **fenestros** ne sera pas en clair.
 </WRAP> </WRAP>
  
-Utilisez ensuite pip pour installer Ansible :+Utilisez ensuite pip3 pour installer Ansible en tant que **trainee** :
  
 <code> <code>
-root@ansible:~pip3 install ansible +[trainee@centos8 ~]$ pip3 install ansible
-Collecting ansible +
-  Downloading https://files.pythonhosted.org/packages/db/3e/04d67f7798432542dcf0258b59634f4f60f1f9ba9505cc71d69af88673d6/ansible-2.7.6.tar.gz (11.8MB) +
-    100% |████████████████████████████████| 11.8MB 115kB/s  +
-Collecting PyYAML (from ansible) +
-  Downloading https://files.pythonhosted.org/packages/9e/a3/1d13970c3f36777c583f136c136f804d70f500168edc1edea6daa7200769/PyYAML-3.13.tar.gz (270kB) +
-    100% |████████████████████████████████| 276kB 2.8MB/s  +
-Requirement already satisfied: cryptography in /usr/lib/python3/dist-packages (from ansible) +
-Collecting jinja2 (from ansible) +
-  Downloading https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl (126kB) +
-    100% |████████████████████████████████| 133kB 3.0MB/s  +
-Collecting paramiko (from ansible) +
-  Downloading https://files.pythonhosted.org/packages/cf/ae/94e70d49044ccc234bfdba20114fa947d7ba6eb68a2e452d89b920e62227/paramiko-2.4.2-py2.py3-none-any.whl (193kB) +
-    100% |████████████████████████████████| 194kB 3.0MB/s  +
-Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from ansible) +
-Collecting MarkupSafe>=0.23 (from jinja2->ansible) +
-  Downloading https://files.pythonhosted.org/packages/3e/a5/e188980ef1d0a4e0788b5143ea933f9afd760df38fec4c0b72b5ae3060c8/MarkupSafe-1.1.0-cp35-cp35m-manylinux1_x86_64.whl +
-Collecting bcrypt>=3.1.3 (from paramiko->ansible) +
-  Downloading https://files.pythonhosted.org/packages/d0/79/79a4d167a31cc206117d9b396926615fa9c1fdbd52017bcced80937ac501/bcrypt-3.1.6-cp34-abi3-manylinux1_x86_64.whl (55kB) +
-    100% |████████████████████████████████| 61kB 5.0MB/s  +
-Requirement already satisfied: pyasn1>=0.1.7 in /usr/lib/python3/dist-packages (from paramiko->ansible) +
-Collecting pynacl>=1.0.1 (from paramiko->ansible) +
-  Downloading https://files.pythonhosted.org/packages/27/15/2cd0a203f318c2240b42cd9dd13c931ddd61067809fee3479f44f086103e/PyNaCl-1.3.0-cp34-abi3-manylinux1_x86_64.whl (759kB) +
-    100% |████████████████████████████████| 768kB 1.5MB/s  +
-Requirement already satisfied: six>=1.4.1 in /usr/lib/python3/dist-packages (from bcrypt>=3.1.3->paramiko->ansible) +
-Collecting cffi>=1.1 (from bcrypt>=3.1.3->paramiko->ansible) +
-  Downloading https://files.pythonhosted.org/packages/59/cc/0e1635b4951021ef35f5c92b32c865ae605fac2a19d724fb6ff99d745c81/cffi-1.11.5-cp35-cp35m-manylinux1_x86_64.whl (420kB) +
-    100% |████████████████████████████████| 430kB 2.5MB/s  +
-Collecting pycparser (from cffi>=1.1->bcrypt>=3.1.3->paramiko->ansible) +
-  Downloading https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz (158kB) +
-    100% |████████████████████████████████| 163kB 5.5MB/s  +
-Building wheels for collected packages: ansible, PyYAML, pycparser +
-  Running setup.py bdist_wheel for ansible ... done +
-  Stored in directory: /root/.cache/pip/wheels/db/aa/61/9ec7362320b5db8d37593b35848c7a726574360f264bfeb4ea +
-  Running setup.py bdist_wheel for PyYAML ... done +
-  Stored in directory: /root/.cache/pip/wheels/ad/da/0c/74eb680767247273e2cf2723482cb9c924fe70af57c334513f +
-  Running setup.py bdist_wheel for pycparser ... done +
-  Stored in directory: /root/.cache/pip/wheels/f2/9a/90/de94f8556265ddc9d9c8b271b0f63e57b26fb1d67a45564511 +
-Successfully built ansible PyYAML pycparser +
-Installing collected packages: PyYAML, MarkupSafe, jinja2, pycparser, cffi, bcrypt, pynacl, paramiko, ansible +
-Successfully installed MarkupSafe-1.1.0 PyYAML-3.13 ansible-2.7.6 bcrypt-3.1.6 cffi-1.11.5 jinja2-2.10 paramiko-2.4.2 pycparser-2.19 pynacl-1.3.0+
 </code> </code>
  
Ligne 242: Ligne 175:
  
 <code> <code>
-root@ansible:~ansible --version +[trainee@centos8 ~]$ ansible --version 
-ansible 2.9.6+ansible [core 2.11.9
   config file = None   config file = None
-  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'+  configured module search path = ['/home/trainee/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'
-  ansible python module location = /usr/local/lib/python3.5/dist-packages/ansible+  ansible python module location = /usr/local/lib/python3.6/site-packages/ansible 
 +  ansible collection location = /home/trainee/.ansible/collections:/usr/share/ansible/collections
   executable location = /usr/local/bin/ansible   executable location = /usr/local/bin/ansible
-  python version = 3.5.(default, Sep 27 201817:25:39) [GCC 6.3.0 20170516]+  python version = 3.6.(default, Sep 10 202109:13:53) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)] 
 +  jinja version = 3.0.3 
 +  libyaml = True
 </code> </code>
  
-Il existe un bug dans la version 3.5.3 de Python sous Debian 9. Ceci peut être corrigé en modifiant les lignes 109 et 117 dans le fichier **/usr/lib/python3.5/weakref.py** de la machine **Ansible** :+=====LAB #2 - Configuration de ssh et de sudo=====
  
-<code> +====2.- ssh====
-root@ansible:~# vi /usr/lib/python3.5/weakref.py +
-root@ansible:~# cat /usr/lib/python3.5/weakref.py +
-        ... +
-        #def remove(wr, selfref=ref(self)): +
-        def remove(wr, selfref=ref(self), _atomic_removal=_remove_dead_weakref): +
-        ... +
-                    #_remove_dead_weakref(d, wr.key) +
-                    _atomic_removal(d, wr.key) +
-        ... +
-</code> +
- +
-<WRAP center round important 60%> +
-**Important** : N'utilisez pas de tabulations. Pour aligner les lignes, utilisez des espaces. +
-</WRAP> +
- +
-=====LAB #4 Configuration de ssh et de sudo===== +
- +
-====ssh====+
  
-Ansible a besoin d'une configuration par clef asymétrique avec la machine **TargetA** afin de fonctionner correctement. Dans cette configuration :+Ansible a besoin d'une configuration par clef asymétrique avec la machine **targeta** afin de fonctionner correctement. Dans cette configuration :
  
-  * La machine **Ansible** envoie à la machine **TargetA** une requête d'authentification par clé asymétrique qui contient le module de la clé à utiliser, +  * La machine **centos8** envoie à la machine **targeta** une requête d'authentification par clé asymétrique qui contient le module de la clé à utiliser, 
-  * La machine **TargetA** recherche une correspondance pour ce module dans le fichier des clés autorisés **~/.ssh/authorized_keys**, +  * La machine **targeta** recherche une correspondance pour ce module dans le fichier des clés autorisés **~/.ssh/authorized_keys**, 
-    * Dans le cas où une correspondance n'est pas trouvée, la machine **TargetA** met fin à la communication, +    * Dans le cas où une correspondance n'est pas trouvée, la machine **targeta** met fin à la communication, 
-    * Dans le cas contraire la machine **TargetA** génère une chaîne aléatoire de 256 bits appelée un **challenge** et la chiffre avec la **clé publique de la machine Ansible**, +    * Dans le cas contraire la machine **targeta** génère une chaîne aléatoire de 256 bits appelée un **challenge** et la chiffre avec la **clé publique de la machine centos8**, 
-  * La machine **Ansible** reçoit le challenge et le décrypte avec la partie privée de sa clé. Il combine le challenge avec l'identifiant de session et chiffre le résultat. Ensuite il envoie le résultat chiffré à la machine **TargetA**. +  * La machine **centos8** reçoit le challenge et le décrypte avec la partie privée de sa clé. Il combine le challenge avec l'identifiant de session et chiffre le résultat. Ensuite il envoie le résultat chiffré à la machine **targeta**. 
-  * La machine **TargetA** génère le même haché et le compare avec celui reçu de la machine **Ansible**. Si les deux hachés sont identiques, l'authentification est réussie.+  * La machine **targeta** génère le même haché et le compare avec celui reçu de la machine **centos8**. Si les deux hachés sont identiques, l'authentification est réussie.
  
-Saisissez maintenant les commandes suivantes en tant que **trainee** dans la machine **Ansible** :+Saisissez maintenant les commandes suivantes en tant que **trainee** dans la machine **centos8** :
  
-<WRAP center round important 60%>+<WRAP center round important>
 **Important** - Lors de la génération des clefs, la passphrase doit être **vide**. **Important** - Lors de la génération des clefs, la passphrase doit être **vide**.
 </WRAP> </WRAP>
  
 <code> <code>
-root@ansible:~# exit +[trainee@centos8 ~]$ ssh-keygen -t rsa
-déconnexion +
-trainee@ansible:~$ ssh-keygen -t rsa+
 Generating public/private rsa key pair. Generating public/private rsa key pair.
 Enter file in which to save the key (/home/trainee/.ssh/id_rsa):  Enter file in which to save the key (/home/trainee/.ssh/id_rsa): 
-Created directory '/home/trainee/.ssh'. 
 Enter passphrase (empty for no passphrase):  Enter passphrase (empty for no passphrase): 
 Enter same passphrase again:  Enter same passphrase again: 
Ligne 300: Ligne 215:
 Your public key has been saved in /home/trainee/.ssh/id_rsa.pub. Your public key has been saved in /home/trainee/.ssh/id_rsa.pub.
 The key fingerprint is: The key fingerprint is:
-SHA256:JQNe6n1PZphil37Akn1uO5A8e/4MhhIAb99T70ffo8Y trainee@ansible.i2tch.loc+SHA256:mgCPKDg5NBf68IbtjUqbvCVLrDf4nw2C6QdIQRgF/aY trainee@centos8.ittraining.loc
 The key's randomart image is: The key's randomart image is:
-+---[RSA 2048]----+ ++---[RSA 3072]----+ 
-   . . .        +|=*..             
-    + +         +|..o .            
-     * o . .    +=oo             
-    o + O = .   +|o+O+o            
-     . S.%.= . .+|X..Bo          
-      . B=@ . .o| +|+*E o. o         
-       o+..++|o*o+..o          
-        ..+oE...+|B Xo           
-          o++o  |+|.@+oo .          |
 +----[SHA256]-----+ +----[SHA256]-----+
-trainee@ansible:~$ ssh-keygen -t ecdsa+[trainee@centos8 ~]$ ssh-keygen -t ecdsa
 Generating public/private ecdsa key pair. Generating public/private ecdsa key pair.
 Enter file in which to save the key (/home/trainee/.ssh/id_ecdsa):  Enter file in which to save the key (/home/trainee/.ssh/id_ecdsa): 
Ligne 321: Ligne 236:
 Your public key has been saved in /home/trainee/.ssh/id_ecdsa.pub. Your public key has been saved in /home/trainee/.ssh/id_ecdsa.pub.
 The key fingerprint is: The key fingerprint is:
-SHA256:Ir3cEmFZND2AyFqQ2n65dXOPlSAB1BzzkzR3ViI+OYc trainee@ansible.i2tch.loc+SHA256:X2O1yKIbbCmNcIrnB9vYd2Tn8S8zISf/lbdlP9/Rtvc trainee@centos8.ittraining.loc
 The key's randomart image is: The key's randomart image is:
 +---[ECDSA 256]---+ +---[ECDSA 256]---+
-|  .+ oo*B+o o +..| 
-|  . + .o+=o= * . | 
-| o o  +  .+.E .  | 
-|. o  o .. .. +   | 
-| .  ..+ S. . .   | 
-|  . oo.=o . o    | 
-|   . o+..o +     | 
-|    .  .  . .    | 
 |                 | |                 |
 +|                 |
 +|              .  |
 +|           . o . |
 +|    . . S . * .  |
 +|   ..+ + +o+=.o o|
 +|  . o*o Bo.o B +B|
 +|   oo +o.o. . *+@|
 +|    .. ...     OE|
 +----[SHA256]-----+ +----[SHA256]-----+
-trainee@ansible:~$ ssh-keygen -t ed25519+[trainee@centos8 ~]$ ssh-keygen -t ed25519
 Generating public/private ed25519 key pair. Generating public/private ed25519 key pair.
 Enter file in which to save the key (/home/trainee/.ssh/id_ed25519):  Enter file in which to save the key (/home/trainee/.ssh/id_ed25519): 
Ligne 342: Ligne 257:
 Your public key has been saved in /home/trainee/.ssh/id_ed25519.pub. Your public key has been saved in /home/trainee/.ssh/id_ed25519.pub.
 The key fingerprint is: The key fingerprint is:
-SHA256:HGNyqw1PwiaV9LOHg2oYFNasG8T67jTKdv+Hw/bnprQ trainee@ansible.i2tch.loc+SHA256:nLP4esR7UmNsc6dAqmDUufS8ORxCCI+LpaE04sXAwZw trainee@centos8.ittraining.loc
 The key's randomart image is: The key's randomart image is:
 +--[ED25519 256]--+ +--[ED25519 256]--+
-| .oo           +|+.o              | 
-.o.o.         | +| E             
-o..  + B        + oo .         | 
-|.. o * B       | +|oooo+ =. ..      
-| ..o. * S      | +|==oo =S+       | 
- oo + B o       +|+.. o.BoO . .  | 
-| .o +.       +  ..=.O =   
-|.+.+   =...o     +     ... .    
-|ooo ..o.+E=.     |+     .o.+       |
 +----[SHA256]-----+ +----[SHA256]-----+
 </code> </code>
  
-<WRAP center round important 60%>+<WRAP center round important>
 **Important** - Les clés générées seront placées dans le répertoire **~/.ssh/**. **Important** - Les clés générées seront placées dans le répertoire **~/.ssh/**.
 </WRAP> </WRAP>
Ligne 364: Ligne 279:
  
 <code> <code>
-trainee@ansible:~$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys +[trainee@centos8 ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys 
-trainee@ansible:~$ cat .ssh/id_ecdsa.pub >> .ssh/authorized_keys +[trainee@centos8 ~]$ cat .ssh/id_ecdsa.pub >> .ssh/authorized_keys 
-trainee@ansible:~$ cat .ssh/id_ed25519.pub >> .ssh/authorized_keys +[trainee@centos8 ~]$ cat .ssh/id_ed25519.pub >> .ssh/authorized_keys 
-trainee@ansible:~$ cat .ssh/authorized_keys +[trainee@centos8 ~]$ cat .ssh/authorized_keys 
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9VrGLpJsdvewBkI8caRwQq55N5CSTYaz7THUauaWTZYmSZmod3IBsUzJM/+FOzhkD5jgIJknoOnw0zwg6IINl6H8TbCg10gR0tdVvZF1IaOEG1gv6a5AkG4UWWgEh68+lPan5wNTCIyTyNtbK0oFzhtubibYKPtEbDTWbhQbH2vN4ZfW/0I+qGBbEgWXTLVvpwYu84ZjM0+EDiK/BbeDLYLtKEwunifEr9Ze3LF7CIZXyWYVkwhbkMyEsMUGinbtOTC3hX3Vlj234Cz4hbBRM5aXgjwy2EFLU/hwGeD3eaaqdhXyC35Ie6Nl36q/bAK63m3WAyDF/H2hT5600y6G9 trainee@ansible.i2tch.loc +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDDKmSGaSKZ427gtXkTfzJAuOjhZYtR4nLU5j3OP8K7nTIKY7ounDVhl3vRBrgEqGJdO60DLtPSXbS32GopQmPcKttf7qYVb7IRUzhBntIiaEvs4dDiu86NEV1CVzQF3vYw0yEKC0jYOVuIQ/OpGjP7D8EoSMwuWozXBnR1bVVhbtS/5MQwBo6iW2kKZ+7XNWDVMmZkAE4Qy5D6yMMFXFio4ceAwmnid5SSNTZaMAKoUxckGPfdgBzvrWkPExHo91rk6cbmz5JDLLBweE/Ml5zLFBFLC1pAszRTXfDtDnOjC257Y0ZZlr54uitRofTvWOuzeDc1iYD/t7zyXBm5fizY21d5MyESgzDSaGzrfKTCYt0GarwDBs+P+PBNPodNGsEU2OUzz5kg4+gh9tGUoTRO1t0PJfd+i+1nlBTXHnp7K4cy/DdAYUr4siaVkAuih/EKRUF7EZVSmgy4WN2OgUDbOizeKMrLycm2WO6BvA7cNCSmo+n5Zpz154nl/xFVH48= trainee@centos8.ittraining.loc 
-ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL6zYXgOcA/uOlUawI25deR/y4jGxHyehSvHGnfbGDkNloS1TLfPbwde1lVrOjRPdWyKZHQr5viluwGaGzfmzPs= trainee@ansible.i2tch.loc +ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCxg+k9SSk32zbrNnNTZqv8joQLTbWpoHYU6ggNRRu1Z4Nclag1rkIdwFGgHam6RnHX9N3fE+zie58IWYDGYOlk= trainee@centos8.ittraining.loc 
-ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP2fCTH0bwFFG0DVWwZm7jGBdIVRSP+SjQzrgX/1Zcb9 trainee@ansible.i2tch.loc+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIGST4moeGWfP+y3olo5D8hntztUMSKvR/xk21Zq1BIz trainee@centos8.ittraining.loc
 </code> </code>
  
-Il convient maintenant de se connecter sur la machine **TargetA** en utilisant ssh et de vérifier la présence du répertoire ~/.ssh +Il convient maintenant de se connecter sur la machine **targeta** en utilisant ssh et de créer le répertoire ~/.ssh :
- +
-En saisissant cette commande, vous obtiendrez une fenêtre similaire à celle-ci :+
  
 <code> <code>
-trainee@ansible:~$ ssh -l trainee targeta.i2tch.loc +[trainee@centos8 ~]$ ssh -l trainee 10.0.2.52 
-The authenticity of host 'targeta.i2tch.loc (10.0.2.10)' can't be established.+The authenticity of host '10.0.2.52 (10.0.2.52)' can't be established.
 ECDSA key fingerprint is SHA256:sEfHBv9azmK60cjqF/aJgUc9jg56slNaZQdAUcvBOvE. ECDSA key fingerprint is SHA256:sEfHBv9azmK60cjqF/aJgUc9jg56slNaZQdAUcvBOvE.
-Are you sure you want to continue connecting (yes/no)? yes +Are you sure you want to continue connecting (yes/no/[fingerprint])? yes 
-Warning: Permanently added 'targeta.i2tch.loc,10.0.2.10' (ECDSA) to the list of known hosts.+Warning: Permanently added '10.0.2.52' (ECDSA) to the list of known hosts.
 Debian GNU/Linux 9 Debian GNU/Linux 9
-trainee@targeta.i2tch.loc's password: trainee+trainee@10.0.2.52's password: 
 Linux targeta.i2tch.loc 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 Linux targeta.i2tch.loc 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64
  
Ligne 393: Ligne 306:
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 permitted by applicable law. permitted by applicable law.
-Last login: Mon Jan 28 09:45:34 2019 from 10.0.2.2 +Last login: Sun Mar 21 08:47:45 2021 from 10.0.2.10 
-trainee@targeta:~$ ls -la | grep ssh + 
-drwx------  2 trainee trainee  4096 janv. 28 15:59 .ssh+trainee@targeta:~$ ls -la | grep .ssh 
 +drwx------  2 trainee trainee  4096 janv. 28  2019 .ssh 
 trainee@targeta:~$ exit trainee@targeta:~$ exit
 déconnexion déconnexion
-Connection to targeta.i2tch.loc closed.+Connection to 10.0.2.52 closed.
 </code> </code>
  
-<WRAP center round important 60%+<WRAP center round important> 
-**Important** - Si le dossier distant .ssh n'existe pas dans le répertoire personnel de l'utilisateur connecté, il faut le créer avec des permissions de 700.+**Important** : Notez que le mot de passe **trainee** ne sera pas en clair.
 </WRAP> </WRAP>
  
-<WRAP center round important 60%+<WRAP center round important> 
-**Important** : Notez que le mot de passe **trainee** ne sera pas en clair.+**Important** - Si le dossier distant .ssh n'existe pas dans le répertoire personnel de l'utilisateur connecté, il faut le créer avec des permissions de 700.
 </WRAP> </WRAP>
  
-Ensuite, il convient de transférer le fichier **.ssh/authorized_keys** de la machine **Ansible** vers la machine **TargetA** : +Ensuite, il convient de transférer le fichier **.ssh/authorized_keys** de la machine **centos8** vers la machine **targeta** : 
  
 <code> <code>
-trainee@ansible:~$ scp .ssh/authorized_keys trainee@targeta.i2tch.loc:/home/trainee/.ssh/authorized_keys+[trainee@centos8 ~]$ scp .ssh/authorized_keys trainee@10.0.2.52:/home/trainee/.ssh/authorized_keys
 Debian GNU/Linux 9 Debian GNU/Linux 9
-trainee@targeta.i2tch.loc's password: trainee +trainee@10.0.2.52's password: trainee 
-authorized_keys                                                                                                                        100%  701   994.8KB/s   00:00 +authorized_keys                                                                                                                                                                 100%  888     1.5MB/s   00:00 
 </code> </code>
  
-<WRAP center round important 60%>+<WRAP center round important>
 **Important** : Notez que le mot de passe **trainee** ne sera pas en clair. **Important** : Notez que le mot de passe **trainee** ne sera pas en clair.
 </WRAP> </WRAP>
  
-Connectez-vous via ssh de la machine **Ansible**  à la machine **TargetA** :+Connectez-vous via ssh de la machine **centos8**  à la machine **targeta** :
  
 <code> <code>
-trainee@ansible:~$ ssh -l trainee targeta.i2tch.loc+[trainee@centos8 ~]$ ssh -l trainee 10.0.2.52
 Debian GNU/Linux 9 Debian GNU/Linux 9
 Linux targeta.i2tch.loc 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 Linux targeta.i2tch.loc 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64
Ligne 435: Ligne 350:
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 permitted by applicable law. permitted by applicable law.
-Last login: Mon Jan 28 16:09:06 2019 from 10.0.2.9+Last login: Tue Mar  8 17:15:18 2022 from 10.0.2.45
 trainee@targeta:~$  trainee@targeta:~$ 
-trainee@targeta:~$ exit 
-déconnexion 
-Connection to targeta.i2tch.loc closed. 
 </code> </code>
  
-<WRAP center round important 60%>+<WRAP center round important>
 **Important** : Notez que l'authentification a utilisé le couple de clefs asymétrique et aucun mot de passe n'a été requis. **Important** : Notez que l'authentification a utilisé le couple de clefs asymétrique et aucun mot de passe n'a été requis.
 </WRAP> </WRAP>
  
-====sudo====+====2.2 - sudo====
  
 La commande **sudo** permet à un utilisateur autorisé d'exécuter une commande en tant que **root** ou en tant qu'un autre utilisateur. Lors de l'exécution de la commande, l'UID et le GID effectifs et réels sont ceux de l'identité de l'utilisateur cible. L'utilisation de la commande **sudo** est une façon simple de déléguer des tâches administratives à d'autres utilisateurs sans communiquer le mot de passe de **root** et sans placer un SUID bit sur l'exécutable. La commande **sudo** est configurée grâce au fichier **/etc/sudoers**.  La commande **sudo** permet à un utilisateur autorisé d'exécuter une commande en tant que **root** ou en tant qu'un autre utilisateur. Lors de l'exécution de la commande, l'UID et le GID effectifs et réels sont ceux de l'identité de l'utilisateur cible. L'utilisation de la commande **sudo** est une façon simple de déléguer des tâches administratives à d'autres utilisateurs sans communiquer le mot de passe de **root** et sans placer un SUID bit sur l'exécutable. La commande **sudo** est configurée grâce au fichier **/etc/sudoers**. 
Ligne 453: Ligne 365:
  
 <code> <code>
 +trainee@targeta:~$ su -
 +Mot de passe : fenestros
 root@targeta:~# cat /etc/sudoers root@targeta:~# cat /etc/sudoers
 # #
Ligne 462: Ligne 376:
 # See the man page for details on how to write a sudoers file. # See the man page for details on how to write a sudoers file.
 # #
-Defaults env_reset +Defaults        env_reset 
-Defaults mail_badpass +Defaults        mail_badpass 
-Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"+Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  
 # Host alias specification # Host alias specification
Ligne 473: Ligne 387:
  
 # User privilege specification # User privilege specification
-root ALL=(ALL:ALL) ALL+root    ALL=(ALL:ALL) ALL
  
 # Allow members of group sudo to execute any command # Allow members of group sudo to execute any command
-%sudo ALL=(ALL:ALL) ALL+%sudo   ALL=(ALL:ALL) ALL
  
 # See sudoers(5) for more information on "#include" directives: # See sudoers(5) for more information on "#include" directives:
Ligne 483: Ligne 397:
 </code> </code>
  
-<WRAP center round important 60%>+<WRAP center round important>
 **Important** : Notez la présence de la ligne **%sudo ALL=(ALL) ALL**. Cette ligne possède le format **Qui Où = (En tant que qui) Quoi**. La ligne implique donc que les membres du groupe **sudo** peuvent exécuter à partir de n'importe quel hôte et en tant que n'importe quel utilisateur, toutes les commandes du système. Dans ce fichier donc, un groupe est référencé par un **%**. Un nom sans ce caractère est forcément un utilisateur. Pour éditer le fichier **/etc/sudoers**, il est **nécessaire** d'utiliser la commande **visudo**. **Important** : Notez la présence de la ligne **%sudo ALL=(ALL) ALL**. Cette ligne possède le format **Qui Où = (En tant que qui) Quoi**. La ligne implique donc que les membres du groupe **sudo** peuvent exécuter à partir de n'importe quel hôte et en tant que n'importe quel utilisateur, toutes les commandes du système. Dans ce fichier donc, un groupe est référencé par un **%**. Un nom sans ce caractère est forcément un utilisateur. Pour éditer le fichier **/etc/sudoers**, il est **nécessaire** d'utiliser la commande **visudo**.
 </WRAP> </WRAP>
  
-Créez le fichier **/etc/sudoers.d/ansible_users** qui permettra à **trainee** d'utiliser la commande sudo **sans** entrer son mot de passe :+Vérifez le contenu du fichier **/etc/sudoers.d/ansible_users** dans la VM **targeta** qui permettra à **trainee** d'utiliser la commande sudo **sans** entrer son mot de passe :
  
 <code> <code>
-root@targeta:~# vi ansible_users +root@targeta:~# cat /etc/sudoers.d/ansible_users 
-root@targeta:~# cat ansible_users +trainee ALL=(ALL)       NOPASSWD:ALL 
-trainee ALL=(ALL)   NOPASSWD:ALL +root@targeta:~# ls -l /etc/sudoers.d/ansible_users 
-root@targeta:~# chmod 440 ansible_users +-r--r----- 1 root root 31 janv. 29  2019 /etc/sudoers.d/ansible_users 
-root@targeta:~# mv ansible_users /etc/sudoers.d/ +
-root@targeta:~# exit+
 </code> </code>
  
Ligne 504: Ligne 416:
 root@targeta:~# exit root@targeta:~# exit
 déconnexion déconnexion
-trainee@targeta:~$  +trainee@targeta:~$ exit 
 +déconnexion 
 +Connection to 10.0.2.52 closed. 
 +[trainee@centos8 ~]$ 
 </code> </code>
  
-<WRAP center round important 60%>+<WRAP center round important>
 **Important** : Notez que trainee a pu exécuter la commande **su -** via sudo sans saisir son mot de passe. **Important** : Notez que trainee a pu exécuter la commande **su -** via sudo sans saisir son mot de passe.
 </WRAP> </WRAP>
  
 ----- -----
-<html> +Copyright © 2023 Hugh Norris.
-<div align="center"> +
-Copyright © 2020 Hugh NORRIS. +
-</div> +
-</html>+
Menu