Outils pour utilisateurs

Outils du site


issue128:labo_linux

1

One of our Computer Recycling volunteers has been pining for some intellectual stimulation a bit different from our usual assemble/disassemble/troubleshoot PCs. The volunteer had picked up a book on Linux System Administration - hoping to learn more about managing systems. It's a bit beyond the scope of what we typically do, but after thinking about it for a bit, I figured it could help the person open up some new opportunities. The workstation the volunteer often sat at runs Windows 10. Although we could have set up a complete development environment and virtual server within Windows 10, the individual wanted to work in Linux, so we set up a dual-boot environment. At first, we'd planned on installing Linux Mint 18.2 (I'd previously made a multi-boot USB key using the Windows version of the YUMI tool), but Linux Mint couldn't see the hard drive, it detected only the USB key. My second instinct was to try Kubuntu (because we're used to Xubuntu, and it's sometimes nice to investigate a different set of software), but Kubuntu seemed to freeze booting from the key. Unity has never been my favourite desktop environment, but, to the surprise of both of us, it ran very well on the machine, and had no issues detecting and partitioning the hard drive - in fact it was one of the smoothest installations I've done in awhile.

Un de nos bénévoles de Computer Recycling recherchait une démarche intellectuelle un peu différente de celle de nos monteurs-démonteurs-dépanneurs habituels. Ce bénévole avait récupéré un livre sur L'administration système de Linux, dans l'espoir d'en apprendre plus sur la gestion des systèmes. C'est un peu en dehors de ce que nous faisons habituellement, mais après y avoir réfléchi un peu, j'ai pensé que cela pourrait aider cette personne à trouver de nouvelles opportunités. Le poste de travail sur lequel il travaille souvent tourne sous Windows 10. Nous aurions pu configurer un environnement de développement complet dans un serveur virtuel sous Windows 10, mais l'utilisateur souhaitait travailler sur Linux, nous avons donc configuré un environnement à double amorçage.

Au départ, nous avions prévu d'installer Linux Mint 18.2 (j'avais précédemment fait une clé USB multi-boot en utilisant la version Windows de l'outil YUMI), mais Linux Mint ne reconnaissait pas le disque dur, il détectait seulement la clé USB. Ma deuxième idée a été d'essayer Kubuntu (parce que nous sommes habitués à Xubuntu, et il est parfois agréable d'étudier un ensemble de logiciels différent), mais Kubuntu a semblé geler le démarrage à partir de la clé. Unity n'a jamais été mon environnement de bureau préféré, mais, à la surprise de tous les deux, il fonctionnait très bien sur la machine, et n'avait aucun problème à détecter et à partitionner le disque dur. En fait, c'était l'une des installations les plus fluides que j'ai faites depuis un certain temps.

The hardware: • Gigabyte Z68P-DS3 motherboard • Intel Core i5-2400 CPU (4 cores) • 4GB DDR3 RAM • 400GB Western Digital WD4000AAKS-0 • NVidia Quadro FX580 (512MB) video card • Dell SP2309W 23“ LCD Monitor running at 2048×1152 Hardly impressive by today's standards, but considering we still build Core 2 Duo and Core 2 Quad systems, it's got a bit more power than some of the systems we still use in Computer Recycling. After Ubuntu installed, we installed all the updates, the proprietary NVidia driver, and set up a non-administrative account for the volunteer. Next, we downloaded an ISO of Ubuntu Server and installed Virtualbox. At this point, I encouraged the volunteer to get a notebook for us to write down the usernames and passwords for all the accounts we'd set up and were about to set up. We jotted down the volunteer login for the Ubuntu desktop environment, then we proceeded to install Ubuntu server in Virtualbox.

Le matériel: • carte mère Gigabyte Z68P-DS3. • CPU Intel Core i5-2400 (4 coeurs). • Mémoire 4GB DDR3. • Disque 400GB Western Digital WD4000AAKS-0. • Carte vidéo NVidia Quadro FX580 (512MB). • Ecran Dell SP2309W 23” LCD de résolution 2048×1152.

C'est peu impressionnant par rapport aux normes actuelles, mais étant donné que nous continuons à construire des systèmes Core 2 Duo et Core 2 Quad, il avait un peu plus de puissance que certains des systèmes que nous utilisons encore chez Computer Recycling.

Après l'installation d'Ubuntu, nous avons installé toutes les mises à jour, le pilote propriétaire NVidia, et mis en place un compte non administratif pour le bénévole. Ensuite, nous avons téléchargé un ISO d'Ubuntu Server et installé Virtualbox.

2

One of the adjustments we made was to set up the server's network adapter in “bridged” mode. In bridged mode, we'd be able to access the Ubuntu server session from the same subnet. We gave the server a name, and jotted down the administrative username and password (for the server, not the desktop). During the server setup, we chose to install SSH, but not LAMP. We could have installed LAMP, but I knew installing afterwords is a simple matter of running tasksel again. As it turns out, that was a good idea because, on first try, we couldn't SSH into the server, this was when we discovered we needed to set the network adapter to bridged mode. Next, we updated the server software; this proved to be a bit more challenging since the network we're on has a captive portal page. For those who don't know, a captive portal page is a sign-on page that prevents access to a network (Internet in this case) until a person performs some action dictated by the page (in our case entering a username and password). On the desktop, this isn't an issue; we simply open Firefox, load the page, and sign on. On Ubuntu server, it's a bit more of an issue since we had no browser installed. So, for a brief moment, I added the server to a network without a captive portal so we could download w3m (a text-based browser). Then I plugged the system back into the captive-portal enabled network. To simplify logging into the captive portal page, I wrote a very simple bash script: #!/bin/bash w3m http://portalpage/

L'un des réglages que nous avons faits a été de configurer la carte réseau du serveur en mode « bridge ». Avec ce mode, nous devrions être en mesure d'accéder à la session du serveur Ubuntu à partir du même sous-réseau. Nous avons donné un nom au serveur et noté le nom de l'utilisateur d'administration et son mot de passe (pour le serveur, pas pour l'ordinateur de bureau). Lors de la configuration du serveur, nous avons choisi d'installer SSH, mais pas LAMP. Nous aurions pu installer LAMP, mais je savais que l'installer plus tard serait simplement de lancer de nouveau tasksel. Et il s'est avéré que c'était une bonne idée parce que, au premier essai, nous ne pouvions pas ouvrir de session SSH vers le serveur, c'est à ce moment que nous avons découvert que nous avions besoin de mettre la carte réseau en bridge.

Ensuite, nous avons mis à jour le logiciel serveur ; cela s'est avéré être un peu plus difficile puisque le réseau sur lequel nous travaillons comporte un portail captif. Pour ceux qui ne le savent pas, un portail captif est une page de connexion qui empêche l'accès à un réseau (Internet dans ce cas) jusqu'à ce qu'une personne effectue une action dictée par la page (dans notre cas, entrer un nom d'utilisateur et un mot de passe). Sur l'ordinateur de bureau, ce n'est pas un problème ; Nous ouvrons simplement Firefox, chargeons la page et nous nous connectons. Sur le serveur Ubuntu, c'est un peu plus un problème car nous n'avions pas de navigateur installé. Ainsi, pendant un bref instant, j'ai ajouté le serveur à un réseau sans portail captif afin que nous puissions télécharger w3m (un navigateur textuel). Puis j'ai rebranché le système dans le réseau captif. Pour simplifier la connexion à la page du portail captif, j'ai écrit un script bash très simple :

#!/bin/bash

w3m http://portalpage/

The portal page URL is rather complex, and while the volunteer could have typed w3m http://portalpage/ (the URL was really much longer), it seemed easier to just type something like ./portal.sh (the bash script name). The script was a success and we were able to get past the portal page, but one of the gotchas of w3m is having to press ENTER to get into and exit each field (username and password). After this, we ran updates on the server and installed the LAMP stack using tasksel. During the LAMP installation, we wrote down the mysql root password. Over the virtual server, we wanted to give the volunteer complete control. We also exported the server appliance so the volunteer could eventually work on the same server environment on another machine if they chose. Exporting the server also provided a kind of backup for the server if it got messed up (though we also snapshotted and cloned the server appliance). Of course, until that appliance is moved to another drive, it's not a real backup.

L'URL de la page du portail est plutôt complexe, et même si le bénévole aurait pu écrire w3m http://portalpage/ (l'URL était en fait beaucoup plus longue), il semblait plus simple de taper quelque chose comme ./portal.sh (le nom du script bash). Le script a réussi et nous avons pu passer la page du portail, mais l'un des trucs de w3m est qu'il faut appuyer sur ENTREE pour entrer et sortir de chaque champ (nom d'utilisateur et mot de passe).

Après cela, nous avons exécuté des mises à jour sur le serveur et installé la pile de logiciels LAMP en utilisant tasksel. Au cours de l'installation de LAMP, nous avons noté le mot de passe d'administration de mysql. En plus du serveur virtuel, nous voulions donner le contrôle complet au bénévole. Nous avons également exporté la machine serveur afin que le volontaire puisse éventuellement travailler sur le même environnement de serveur sur une autre machine s'il le souhaitait. L'exportation du serveur a également fourni une sorte de sauvegarde pour le serveur au cas où ça se passerait mal (bien que nous ayons également fait un snapshot et un clone du serveur). Bien sûr, tant que cette machine virtuelle n'est pas déplacée sur un autre disque, ce n'est pas une véritable sauvegarde.

Back on the desktop computer, we installed Atom for editing code and Filezilla for transferring files. At this point, we had a brief discussion about permissions and the location of the default index.html on Apache. I'm used to using vi for small edits - I haven't actually used Atom - but it seems to be well liked. At this point the volunteer is practising SSHing into the server and executing simple *NIX commands: cd, cp, ls, pwd, less. We had a look at the default Apache web page, modified the index.html, moved it to another file, and created an index.php with the phpinfo() function to show PHP was working on the server. The following day we sat down and reviewed logging in to MySQL and running a few commands against a sample employees database you can download from the MySQL web site: https://dev.mysql.com/doc/employee/en/. Introducing MySQL at this point was probably a bit too much for the volunteer because, when I left and came back from lunch, I found the volunteer at a bash prompt trying commands, but failing because they didn’t include spaces between commands and their arguments. It's a start, but we probably need to create some visuals to help understand everything that's going on. I’m not a programmer, database expert, nor scripting expert, but one of the things I love about Linux is that, with a bit of looking around (and some help from a mentor), anyone can learn a bit about running a server, learning to program, or working with databases.

De retour sur l'ordinateur de bureau, nous avons installé Atom pour éditer le code et Filezilla pour le transfert des fichiers. À ce stade, nous avons eu une brève discussion sur les permissions et l'emplacement du fichier index.html par défaut sur Apache. J'ai l'habitude d'utiliser vi pour les petites modifications (en fait, je n'ai jamais utilisé Atom, mais il semble être bien aimé).

À ce stade, le bénévole s'entraîne à faire du SSH sur le serveur et exécute des commandes *NIX simples : cd, cp, ls, pwd, less. Nous avons regardé la page Web par défaut d'Apache, modifié le fichier index.html, l'avons déplacé vers un autre fichier et créé un index.php avec la fonction phpinfo() pour montrer que PHP fonctionnait sur le serveur.

Le jour suivant, nous avons tranquillement vérifié la connexion à MySQL et en exécutant quelques commandes sur une base de données d'employés de démonstration que vous pouvez télécharger sur le site Web de MySQL : https://dev.mysql.com/doc/employee/en/. Introduire MySQL à ce moment-là était probablement un peu trop pour le bénévole parce que, revenant de ma pause déjeuner, j'ai trouvé le bénévole devant une ligne bash essayant les commandes, mais celles-ci échouaient car elles ne comportaient pas d'espaces entre les commandes et leurs arguments.

C'est un début, mais nous devons probablement créer des visuels pour aider à comprendre tout ce qui se passe. Je ne suis ni programmeur, ni expert en bases de données, ni expert en script, mais l'une des choses que j'aime chez Linux est que, avec un peu de recherche (et un peu d'aide d'un expert), tout le monde peut apprendre un peu comment faire tourner un serveur, programmer ou travailler avec des bases de données.

issue128/labo_linux.txt · Dernière modification : 2018/01/16 15:56 de andre_domenech