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 [2021/03/21 12:17] adminelearning:workbooks:debian:6:avance:l130:part1 [2023/08/25 01:25] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
  
-Version : **2021.01**.+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     * Contenu du Module
     * Qu'est-ce Ansible ?     * Qu'est-ce Ansible ?
Ligne 26: Ligne 26:
   * ne nécessite ni l'utilisation d'un agent ni l'utilisation d'un service sur les cibles,   * ne nécessite ni l'utilisation d'un agent ni l'utilisation d'un service sur les cibles,
   * 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**.
 +
 +{{ :elearning:workbooks:debian:6:avance:l130:ansible-overview.png?nolink&600 |}}
  
 =====LAB #1 - Installation d'Ansible===== =====LAB #1 - Installation d'Ansible=====
  
-Pour obtenir la dernière version d'Ansible, il convient d'utiliser **pip**. Installez pip avec la commande suivante :+Connectez-vous à la à **centos8** à partir de votre gateway dans notre cloud :
  
-<Code:bash+<code
-trainee@ansible:~$ su - +trainee@traineeXX:~$ ssh -l trainee 10.0.2.45 
-Mot de passe : fenestros +The authenticity of host '10.0.2.45 (10.0.2.45)' can't be established. 
-root@ansible:~# apt-get update +ECDSA key fingerprint is SHA256:Q7T/CP0SLiMbMAIgVzTuEHegYS/spPE5zzQchCHD5Vw. 
-... +Are you sure you want to continue connecting (yes/no)? yes 
-root@ansible:~# apt-get install python3-pip +Warning: Permanently added '10.0.2.45' (ECDSA) to the list of known hosts. 
-... +trainee@10.0.2.45's password:  
-root@ansible:~# pip3 -V +Activate the web console with: systemctl enable --now cockpit.socket 
-pip 9.0.from /usr/lib/python3/dist-packages (python 3.5+ 
-root@ansible:~# pip3 list+Last login: Sun Mar  6 12:00:35 2022 from 10.0.2.1 
 +[trainee@centos8 ~]$  
 +</code> 
 + 
 +Pour obtenir la dernière version d'Ansible, il convient d'utiliser **python3-pip**. Installez python3-pip avec la commande **dnf** : 
 + 
 +<code>  
 +[trainee@centos8 ~]$ su - 
 +Password: fenestros 
 + 
 +[root@centos8 ~]dnf update 
 +Last metadata expiration check: 0:19:03 ago on Tue 08 Mar 2022 10:30:01 EST. 
 +Dependencies resolved. 
 +Nothing to do
 +Complete! 
 + 
 +[root@centos8 ~]dnf -install python3-pip 
 +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! 
 + 
 +[root@centos8 ~]# pip3 -V 
 +pip 9.0.from /usr/lib/python3.6/site-packages (python 3.6
 + 
 +[root@centos8 ~]# 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. 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) +blivet (3.4.0
-bcrypt (3.1.6+Brlapi (0.6.7
-Brlapi (0.6.5+chardet (3.0.4
-cffi (1.11.5+chrome-gnome-shell (0.0.0) 
-chardet (2.3.0) +configobj (5.0.6)
-cryptography (1.7.1)+
 cupshelpers (1.0) cupshelpers (1.0)
-httplib2 (0.9.2) +dasbus (1.2) 
-idna (2.2) +dbus-python (1.2.4
-Jinja2 (2.10+decorator (4.2.1
-keyring (10.1+docutils (0.14
-keyrings.alt (1.3+ethtool (0.14) 
-louis (3.0.0) +gpg (1.13.1
-MarkupSafe (1.1.0) +html5lib (0.999999999) 
-paramiko (2.4.2) +idna (2.5) 
-pip (9.0.1+iniparse (0.4) 
-pyasn1 (0.1.9+initial-setup (0.3.81.7) 
-pycparser (2.19+isc (2.0) 
-pycrypto (2.6.1) +langtable (0.0.51
-pycups (1.9.73+libcomps (0.1.16) 
-pycurl (7.43.0) +lxml (4.2.3) 
-pygobject (3.22.0) +nftables (0.1
-PyNaCl (1.3.0+ntplib (0.3.3) 
-pysmbc (1.0.15.6) +ordered-set (2.0.2) 
-python-apt (1.4.0b3+perf (0.1) 
-python-debian (0.1.30+pexpect (4.3.1) 
-python-debianbts (2.6.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) pyxdg (0.25)
-PyYAML (3.13+PyYAML (3.12
-reportbug (7.1.7+requests (2.20.0) 
-requests (2.12.4) +requests-file (1.4.3
-SecretStorage (2.3.1) +requests-ftp (0.3.1) 
-setuptools (33.1.1) +rpm (4.14.3
-six (1.10.0) +schedutils (0.6) 
-urllib3 (1.19.1) +selinux (2.9) 
-wheel (0.29.0) +sepolicy (1.1) 
-</Code>+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) 
 + 
 +[root@centos8 ~]# python3 -m pip install --upgrade pip 
 +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 packages: pip 
 +Successfully installed pip-21.3.1 
 +</code> 
 + 
 +Dernièrement, mettez à jour Python vers la version 3.8 : 
 + 
 +<code> 
 +[root@centos8 ~]# dnf module -y install python38 
 +</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 137: 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** : 
- 
-<code> 
-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 #2 - Configuration de ssh et de sudo===== =====LAB #2 - Configuration de ssh et de sudo=====
Ligne 168: Ligne 191:
 ====2.1 - ssh==== ====2.1 - 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 195: 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 216: 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 237: 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 259: 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 288: 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 330: 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>
Ligne 348: Ligne 365:
  
 <code> <code>
 +trainee@targeta:~$ su -
 +Mot de passe : fenestros
 root@targeta:~# cat /etc/sudoers root@targeta:~# cat /etc/sudoers
 # #
Ligne 357: 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 368: 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 378: 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 399: 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 © 2021 Hugh NORRIS. +
-</div> +
-</html>+
Menu