Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1777 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Résolu] Administrer un parc de machines (script, ssh, sudo, ubuntu)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Administrer un parc de machines (script, ssh, sudo, ubuntu)

n°1210845
thamieu
Posté le 14-04-2010 à 11:38:54  profilanswer
 

Bonjour,
 
Je souhaite écrire de manière automatisée dans /etc sur un ensemble de machines.
Ces machines tournent sous Ubuntu, le compte root est désactivé donc.
 
Ca commence mal me direz-vous, heureusement je dispose pour chaque système
- d'un compte sudoer local (le même sur toutes les machines).
- d'un serveur ssh (bien qu'aucune clé ssh ne soit encore en place).
 
Question :
Comment déployer un fichier de conf dans le /etc de toutes ses machines, sans laisser traîner de mot de passe en clair dans un script ou sur le résal, sans avoir à prendre la main sur chacun des postes ?
 
Par défaut, sudo ne tolère pas être exécuté à travers ssh, (sudo: no tty present and no askpass program specified), donc là, j'ai l'impression de devoir au minimum refaire la conf de sudo sur chacun des postes.
 
J'espère qu'il y a parmis vous des gens plus rusés que moi, ou ça risque d'être laborieux.


Message édité par thamieu le 15-04-2010 à 15:03:44
mood
Publicité
Posté le 14-04-2010 à 11:38:54  profilanswer
 

n°1210864
Andres_Ini​esta
Posté le 14-04-2010 à 12:17:28  profilanswer
 

Tu peux regarder du côté de puppet ou cfengine pour le déploiement de fichiers.

n°1210936
guepe
J'ai du noir sur la truffe ?
Posté le 14-04-2010 à 14:55:12  profilanswer
 

rdist est fait pour ca ! Et bien sur authentification par clefs ssh ;-)


---------------
Un blog qu'il est bien
n°1210969
thamieu
Posté le 14-04-2010 à 16:06:57  profilanswer
 

Merci pour vos réponses.
 
Puppet et cfengine ne répondent pas à mon besoin immédiat : j'ai uniquement besoin de transférer un fichier, ou d'écrire dedans.
Rdist me semble plus approprié, mais ça demande quelques manip' qui me sont justement nécessaire pour écrire dans /etc j'regarde ça.
 
Pour exécuter sudo à travers ssh, j'ai trouvé la solution dans le man.

Citation :

-t      Force pseudo-tty allocation.  This can be used to execute arbi‐
             trary screen-based programs on a remote machine, which can be
             very useful, e.g. when implementing menu services.  Multiple -t
             options force tty allocation, even if ssh has no local tty.


 
Cependant, j'ai un problème avec sudo, sur les machines distantes :

Code :
  1. $ sudo -i echo server=$ip > /etc/ocsinventory/ocsinventory-agent.cfg
  2. -bash: /etc/ocsinventory/ocsinventory-agent.cfg: Permission non accordée


 
En revanche, si je décompose la commande en plusieurs étapes, cela fonctionne :

Code :
  1. $ sudo -i
  2. root@ubuntu-karmic:~# echo server=$ip > /etc/ocsinventory/ocsinventory-agent.cfg
  3. root@ubuntu-karmic:~# cat /etc/ocsinventory/ocsinventory-agent.cfg
  4. server=$ip


 
Le problème c'est qu'en scriptant avec ssh, la décomposition ne fonctionne pas, un terminal s'ouvre et ni le echo ni le exit n'ont lieu  :

Code :
  1. $ ssh -t remoteusr@ubuntu-karmic "sudo -i; echo server=$ip > /etc/ocsinventory/ocsinventory-agent.cfg; exit"
  2. remoteusr@ubuntu-karmic's password:
  3. Password:
  4. root@ubuntu-karmic:~#


 
Pourtant, la syntaxe me semble correcte et le man me confirme que sudo devrait accepter une commande directement après le -i.

Citation :

The -i (simulate initial login) option runs the shell
                   specified in the passwd(5) entry of the target user as a
                   login shell.  This means that login-specific resource files
                   such as .profile or .login will be read by the shell.  If a
                   command is specified, it is passed to the shell for
                   execution.  Otherwise, an interactive shell is executed.


Une idée pour indiquer l'adresse du serveur ocs à mes agents déjà installés mais jamais configurés ?


Message édité par thamieu le 14-04-2010 à 16:10:47
n°1210972
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 14-04-2010 à 16:10:24  profilanswer
 

utilise fabric : http://docs.fabfile.org/0.9.0/
 
ça a été conçu pour ça (et plus encore)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1210995
bardiel
Debian powa !
Posté le 14-04-2010 à 17:49:59  profilanswer
 

En uploadant un script bash, et en le faisant exécuter ça ne marche pas ? :o


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1211004
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 14-04-2010 à 19:05:28  profilanswer
 

bardiel a écrit :

En uploadant un script bash, et en le faisant exécuter ça ne marche pas ? :o


 [:malicia]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1211112
thamieu
Posté le 15-04-2010 à 09:58:14  profilanswer
 

Si vous avez le moyen de passer le mot de passe à sudo sans qu'il n'apparaisse en clair, je prends :o

n°1211120
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 15-04-2010 à 10:06:47  profilanswer
 

thamieu a écrit :

Si vous avez le moyen de passer le mot de passe à sudo sans qu'il n'apparaisse en clair, je prends :o


 
utilise fabric :spamafote:


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1211125
o'gure
Modérateur
Multi grognon de B_L
Posté le 15-04-2010 à 10:10:43  profilanswer
 

black_lord a écrit :

utilise fabric :spamafote:


Tu commences à radoter :o

Spoiler :

oui, y a une raison, je sais [:whatde]


---------------
Relax. Take a deep breath !
mood
Publicité
Posté le 15-04-2010 à 10:10:43  profilanswer
 

n°1211153
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 15-04-2010 à 11:12:58  profilanswer
 

o'gure a écrit :


Tu commences à radoter :o

Spoiler :

oui, y a une raison, je sais [:whatde]



 
ça va encore m'agacer  [:bakk43]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1211191
bardiel
Debian powa !
Posté le 15-04-2010 à 12:12:30  profilanswer
 


et scp, connais pas ? :pfff:  
en ayant déjà les clés des machines distantes ou encore mieux si dès le départ on a une authentification à clé publique, on peut très bien scripter l'envoi d'un script ( :pt1cable: ), même si pour faire "propre" il faudrait plutôt taper x fois la commande :

scp monscript.sh machinedist_x:/etc/ocsinventory/ocsinventory-agent.cfg


 
après j'ai bien vu ça, mais bon impose l'installation d'expect et le mot de passe en clair dans le script :/


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1211197
o'gure
Modérateur
Multi grognon de B_L
Posté le 15-04-2010 à 13:15:25  profilanswer
 

bardiel a écrit :

on peut très bien scripter l'envoi d'un script ( :pt1cable: ), même si pour faire "propre" il faudrait plutôt taper x fois la commande :

scp monscript.sh machinedist_x:/etc/ocsinventory/ocsinventory-agent.cfg



On peut effectivement réinventer la roue sans arrêt et refuser d'utiliser les beaux packages déjà prêt :

Citation :

Package: fabric
Priority: optional
Section: net
Installed-Size: 132
Maintainer: Chris Lamb <lamby@debian.org>
Architecture: all
Version: 0.9.0-2
Depends: python (>= 2.5), python-support (>= 0.90.0), python-paramiko (>= 1.6), python-pkg-resources
Filename: pool/main/f/fabric/fabric_0.9.0-2_all.deb
Size: 35990
MD5sum: c31c63674b732a8b4f12a1699b504312
SHA1: dc86fbb98c87850c1f7b30b1cb06e415ec776d17
SHA256: ea96988e1973c893e4bb7a14f4ba8bacdb8a7b13435baa50b3ee36cfd5d85d90
Description: Simple Pythonic remote deployment tool
 Fabric is designed to upload files and run shell commands on a number of
 servers in parallel or serially. These commands are grouped in tasks (which
 are regular Python functions) and specified in a 'fabfile.'
 .
 It is similar to Capistrano, except it's implemented in Python and doesn't
 expect you to be deploying Rails applications.
Homepage: http://fabfile.org/


---------------
Relax. Take a deep breath !
n°1211199
bardiel
Debian powa !
Posté le 15-04-2010 à 13:41:26  profilanswer
 

oui t'as raison, pourquoi installer un logiciel (fabric) ainsi qu'un environnement (python, même si installé par défaut sur Ubuntu, peut ne pas l'être...), pour faire ce que l'on a déjà (scp) :o


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1211202
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 15-04-2010 à 13:58:19  profilanswer
 

bardiel a écrit :


et scp, connais pas ? :pfff:
en ayant déjà les clés des machines distantes ou encore mieux si dès le départ on a une authentification à clé publique, on peut très bien scripter l'envoi d'un script ( :pt1cable: ), même si pour faire "propre" il faudrait plutôt taper x fois la commande :

scp monscript.sh machinedist_x:/etc/ocsinventory/ocsinventory-agent.cfg

 

après j'ai bien vu ça, mais bon impose l'installation d'expect et le mot de passe en clair dans le script :/

 
bardiel a écrit :

oui t'as raison, pourquoi installer un logiciel (fabric) ainsi qu'un environnement (python, même si installé par défaut sur Ubuntu, peut ne pas l'être...), pour faire ce que l'on a déjà (scp) :o

 

bah ouais, j'y connais rien, c'est pas mon taff et j'y connais que dalle en unix [:cosmoschtroumpf] d'ailleurs 132k à installer c'est vraiment trop lourd pour gagner des heures de boulot  [:pingouino] en plus ça utilise SSH & le sftp. Vindiou, faudrait revenir à telnet & rcp  [:tomatookc] avant on savait vivre  [:_xxx_]

 

Et puis expect c'est tellllllleement naturel à utiliser [:klem3i1]

 

Bref, des mecs comme toi ça lancerait des fusées avec des élastiques...  [:seblomb:1]

Message cité 2 fois
Message édité par black_lord le 15-04-2010 à 13:58:45

---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1211203
o'gure
Modérateur
Multi grognon de B_L
Posté le 15-04-2010 à 14:04:32  profilanswer
 

bardiel a écrit :

pour faire ce que l'on a déjà (scp) :o


Pour le faire simplement et se faciliter le dévelopement/déploiement. Ca me semble suffir comme raison.
Ton script tu vas bien devoir te le coltiner pour gérer l'ensemble des machines et la gestion des privilèges. Autant se servir de primitives éprouvées au lieu de perdre du temps à réinventer un moteur entier.

Message cité 1 fois
Message édité par o'gure le 15-04-2010 à 14:05:00

---------------
Relax. Take a deep breath !
n°1211227
thamieu
Posté le 15-04-2010 à 15:02:09  profilanswer
 

bardiel a écrit :


et scp, connais pas ? :pfff:  
en ayant déjà les clés des machines distantes ou encore mieux si dès le départ on a une authentification à clé publique, on peut très bien scripter l'envoi d'un script ( :pt1cable: ), même si pour faire "propre" il faudrait plutôt taper x fois la commande :

scp monscript.sh machinedist_x:/etc/ocsinventory/ocsinventory-agent.cfg


 
après j'ai bien vu ça, mais bon impose l'installation d'expect et le mot de passe en clair dans le script :/


 

black_lord a écrit :


 
 
 
bah ouais, j'y connais rien, c'est pas mon taff et j'y connais que dalle en unix [:cosmoschtroumpf] d'ailleurs 132k à installer c'est vraiment trop lourd pour gagner des heures de boulot  [:pingouino] en plus ça utilise SSH & le sftp. Vindiou, faudrait revenir à telnet & rcp  [:tomatookc] avant on savait vivre  [:_xxx_]  
 
Et puis expect c'est tellllllleement naturel à utiliser [:klem3i1]
 
Bref, des mecs comme toi ça lancerait des fusées avec des élastiques...  [:seblomb:1]

Pendant un instant j'ai cru que 132k c'était ton salaire :sweat:  
 

o'gure a écrit :


Pour le faire simplement et se faciliter le dévelopement/déploiement. Ca me semble suffir comme raison.
Ton script tu vas bien devoir te le coltiner pour gérer l'ensemble des machines et la gestion des privilèges. Autant se servir de primitives éprouvées au lieu de perdre du temps à réinventer un moteur entier.

Moi qui n'ai fait qu'un peu de bash, il me paraissait aussi plus pratique de résoudre ça à coups de ssh/scp et expect.
J'aurai mis le temps, mais ce fabric m'a l'air d'être un outil très très pratique. Par contre le coup du env.user est très sioux :/
 
Voilà donc comment écrire mon fichu fichier dans /etc :
 
Installation de fabric (la version des dépôts ubuntu est très ancienne)

Citation :


# apt-get install python-setuptools
# easy_install -U fabric


 
Ecriture du script fabfile.py

Citation :


from fabric.api import env, sudo
 
env.hosts = ['user@host']
 
def ocsagent():
    sudo("echo server=255.255.255.255 > /etc/ocsinventory/ocsinventory-agent.cfg" )


 
Exécution

Citation :


$ /usr/local/bin/fab ocsagent


 
J'avais brièvement essayé rdist mais il me semble qu'il ne gérait pas sudo comme je le voulais.
En tout cas merci pour vos réponses qui en plus de m'aider à me dépatouiller me font découvrir des outils qui risquent fort de me faciliter la tâche plus d'une fois.

n°1211275
bardiel
Debian powa !
Posté le 15-04-2010 à 17:06:07  profilanswer
 

petite question quand même :D : c'était (c'est) pour combien de machines clientes ? (que la prochaine fois que je/on vois la question, je/on penche aussi pour une solution identique si plus de x machines)
 
au passage, pour l'exécution c'est bien fabfile ocsagent et pas fab ocsagent ? :pt1cable:  
 
et merci pour le code pour les suivants :sol:  
 
@black_lord : telnet, c'était mieux avant [:plusun] (copyrithé ? :whistle: )
et expect, oui c'est naturel :D (comment ça t'as pas 10 interpréteurs sur ta machine Linux ? :sweat: )

Citation :

Bref, des mecs comme toi ça lancerait des fusées avec des élastiques...


oui, avec des modèles très gros format [:bakk20]  

Spoiler :

chuis pu là [:tang]


 
je proposais surtout l'utilisation de scp car :
1- (quasi-) universelle, que l'on est un client ubuntu, un serveur Debian (encore heureux :whistle: ), une SuSE (et pas Suze), une Gentoo (ou un Sabayon), etc...
2- scriptable (oui bon, je reconnais faut le vouloir :bounce: )
je pense qu'il vaut mieux un tournevis (et le format de vis) disponible partout qu'une vis made in Machin utilisable avec un tournevis uniquement de la marque Bidule®™, enfin bon après on va pas polémiquer dessus, chacun fait comme il l'entend :o (et heureusement d'ailleurs)


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1211432
thamieu
Posté le 16-04-2010 à 11:40:37  profilanswer
 

Nombre de machines  encore indéterminé. Testé avec une.
J'vais bientôt voir comment ça se passe pour déclarer un identifiant commun à une liste de machines, sans avoir à ajouter un user@ devant chaque adresse.
 
Pour l'exécution c'est fab ocsagent, où ocsagent est le nom d'une fonction qui se trouve dans un fichier fabfile.py.
 
Et puis fabric ça me semble aussi universel que scp.

n°1211439
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 16-04-2010 à 12:06:43  profilanswer
 

thamieu a écrit :

Nombre de machines  encore indéterminé. Testé avec une.
J'vais bientôt voir comment ça se passe pour déclarer un identifiant commun à une liste de machines, sans avoir à ajouter un user@ devant chaque adresse.
 
Pour l'exécution c'est fab ocsagent, où ocsagent est le nom d'une fonction qui se trouve dans un fichier fabfile.py.
 
Et puis fabric ça me semble aussi universel que scp.


 
tu settes le user dans ton fabfile.py
 
et fabric utilise scp (et ssh) via paramiko


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1212335
thamieu
Posté le 21-04-2010 à 09:29:43  profilanswer
 

black_lord a écrit :


 
tu settes le user dans ton fabfile.py
 
et fabric utilise scp (et ssh) via paramiko


Si je définis les variables ainsi, j'obtiens une erreur :

Citation :


env.user = ['user']
env.hosts = ['host1', 'host2']


Citation :


$ fab ocsagent
[frecb002633] sudo: echo server=freeserv2 > /etc/ocsinventory/ocsinventory-agent.cfg
Password for ['user']@host1:  
No handlers could be found for logger "paramiko.transport"


 
Il me faut définir explicitement l'utilisateur pour chaque machine, de cette manière :

Citation :


env.user = ['user']
env.hosts = ['user@host1', 'user@host2']


 
Ce n'est pas très confortable. Je préfèrerais mettre la liste des machines dans un fichier séparé, en ne définissant l'utilisateur qu'une seule fois.
Une idée ?

n°1212491
gug42
Posté le 21-04-2010 à 17:43:51  profilanswer
 

oczinventory/glpi ?

n°1212509
bardiel
Debian powa !
Posté le 21-04-2010 à 19:24:33  profilanswer
 

gug42 a écrit :

oczinventory/glpi ?


hmm, toi/lire messages précédents ?

 

le but de thamieu est justement d'uploader sur ses clients un fichiers de configuration pour OCS justement... à défaut d'une GPO (merci aux programmeurs de Microsoft de cette géniale invention), thamieu est obligé de scripter un fichier d'upload.

 

par contre même ainsi je pense qu'à chaque fois ton script va te demander le mot de passe pour chaque machine sur lequel le script agit. tu veux un gros élastique pour lancer ta fusée ? :D

Message cité 1 fois
Message édité par bardiel le 21-04-2010 à 19:24:52

---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1212523
thamieu
Posté le 21-04-2010 à 21:58:29  profilanswer
 

bardiel a écrit :


hmm, toi/lire messages précédents ?
 
le but de thamieu est justement d'uploader sur ses clients un fichiers de configuration pour OCS justement...à défaut d'une GPO (merci aux programmeurs de Microsoft de cette géniale invention), thamieu est obligé de scripter un fichier d'upload.


Toutafé. Mais comme mes machines ne sont intégrées à aucun annuaire, c'est pas des GPO qui m'aideront :o

bardiel a écrit :


par contre même ainsi je pense qu'à chaque fois ton script va te demander le mot de passe pour chaque machine sur lequel le script agit. tu veux un gros élastique pour lancer ta fusée ? :D

Nan, la solution de black lord est très efficace, elle demande le mot de passe pour le compte local de la 1ère machine et fournit le même mot de passe aux comptes locaux (du même nom) des machines suivantes.
 
Là c'que j'veux c'est
- utiliser la variable env.user sans me ramasser un message d'erreur imbitable
- utiliser une liste de machine plutôt que spécifier chaque nom entre apostrophes
 
J'pense qu'après j'aurai plus besoin d'élastique.

n°1212525
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 21-04-2010 à 22:23:42  profilanswer
 

thamieu a écrit :

Nan, la solution de black lord est très efficace,


 
évidemment  [:julm3]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1213067
el_barbone
too old for this shit ...
Posté le 24-04-2010 à 12:18:20  profilanswer
 

black_lord a écrit :


 
bah ouais, j'y connais rien, c'est pas mon taff et j'y connais que dalle en unix [:cosmoschtroumpf] d'ailleurs 132k à installer c'est vraiment trop lourd pour gagner des heures de boulot  [:pingouino] en plus ça utilise SSH & le sftp. Vindiou, faudrait revenir à telnet & rcp  [:tomatookc] avant on savait vivre  [:_xxx_]  
 
Et puis expect c'est tellllllleement naturel à utiliser [:klem3i1]
 
Bref, des mecs comme toi ça lancerait des fusées avec des élastiques...  [:seblomb:1]


 
PQ


---------------
En théorie, la théorie et la pratique sont identiques, en pratique, non.
n°1213068
el_barbone
too old for this shit ...
Posté le 24-04-2010 à 12:19:01  profilanswer
 

black_lord a écrit :


 
évidemment  [:julm3]


et la modestie [:whatde]


---------------
En théorie, la théorie et la pratique sont identiques, en pratique, non.
n°1227735
trueslash
(╯°□°)╯︵ MMM
Posté le 13-07-2010 à 10:33:41  profilanswer
 

je up, même si c'est résolu, désolé, j'ai un besoin similaire avec une trentaine de machine, fabric a l'air de faire ce dont j'ai besoin mais ya un truc qui me chiffonne c'est que j'aimerais que la maintenance puisse se faire de façon non synchro: je m'explique:

 

Si au moment où je lance fabric, ya que 32 machines sur 35 qui sont allumées. je voudrais que les opérations soient effectuées sur ces 32 machines et que l'opération soit reportée automatiquement sur les autres machines

 

Mieux encore, je voudrais pouvoir gérer une liste d'opération qui puissent être exécutées à la suite si j'installe un nouveau poste par exemple ou ignorées si déjà effectuées

 

A priori, je devrais pouvoir gérer ça avec du code Python et un crontab mais je me demandais si ça existait pas en natif :p


Message édité par trueslash le 13-07-2010 à 10:34:20
n°1227738
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 13-07-2010 à 10:37:19  profilanswer
 

ça n'existe pas en natif mais y'a des palliatifs.


Message édité par black_lord le 13-07-2010 à 10:37:35

---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1227739
trueslash
(╯°□°)╯︵ MMM
Posté le 13-07-2010 à 10:45:48  profilanswer
 

nickel, je vais pouvoir jouer avec ça ce week-end :)

 

Merci


Message édité par trueslash le 13-07-2010 à 10:46:05
n°1228998
trueslash
(╯°□°)╯︵ MMM
Posté le 22-07-2010 à 05:26:39  profilanswer
 

bon petite update, ça se passe plutôt pas mal pour moi, ya un truc qui me chiffone c'est le fait de ne pas pouvoir exécuterles commandes sur plusieurs machines en parallèle mais a priori, c'est en cours de dev: http://code.fabfile.org/issues/show/19#change-664
 
J'ai une tache qui prend entre une et deux heures à la louche donc je peux pas vraiment la faire tourner de façon séquentielle, enfin je vais voir si je peux pas le faire en tâche de fond.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Résolu] Administrer un parc de machines (script, ssh, sudo, ubuntu)

 

Sujets relatifs
configuration ubuntu serverMon Ubuntu ne trouve pas mon cd de boot de Windows
[NON RESOLU] Pilotage d'une carte relais via un hub USB / EthernetInstaller Ubuntu avec USB
[Résolu] Ajout d'une machine dans un domaine[ubuntu] Partage et droit de modification
Ubuntu 9.10 motherboard M4A77TD - spdif ?[Nagios] LAN de machines derrière une passerelle
Projet Machine virtuelles et ubuntuUbuntu 9.10 x86 (Pc std 32bits) et taille maximale de mémoire
Plus de sujets relatifs à : [Résolu] Administrer un parc de machines (script, ssh, sudo, ubuntu)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR