Journal Toi aussi installe ton propre linuxfr en trois lignes de bash... et contribue!

Posté par . Licence CC by-sa
34
12
mar.
2014

Cher conlinuxien, chère conlinuxienne (que l'on oublie trop souvent!),

Je suis heureux de profiter de l'occasion qui m'est donnée pour… vous expliquer comment vous pouvez dès à présent installer votre propre instance de linuxfr en deux coups de cuiller à pot, pour que toi aussi tu puisses corriger toi-même les problèmes que tu soulèves. Et ne me dis pas que tu ne connais pas le ruby, je ne le connais pas non plus!

Ces quelques derniers jours je me suis amusé à jouer avec un truc bien à la mode, j'ai nommé les outils de gestion de serveurs. Dans le cas qui nous occupe, cher lecteur, chère lectrice, j'ai testé pour toi Ansible.

Si tu es pressé, je t'invite à aller voir directement du côté du dépôt git ansible-linuxfr.

Pour installer ton instance de LinuxFR, tu auras besoin d'un PC personnel sur lequel tu auras installé la suite kvm/libvirt/virtinst ainsi que ansible, et de 5G de disponible sur ton disque dur. Si la suite libvirt te gonfle, tu peux juste installer toi-même une machine virtuelle Debian Wheezy, c'est un peu moins automatisé mais ça marche aussi, et j'expliquerai pas.

Créer une nouvelle machine virtuelle avec le preseeding Debian

Si tu as une Debian Sid (ou assimilable), installe-donc libvirt, virtinst, ansible et git, puis ajoute-toi dans le groupe 'libvirt' pour pouvoir contrôler les machines virtuelles KVM:

$ sudo apt-get install qemu-kvm libvirt-bin virt-viewer
$ sudo apt-get install virtinst ansible git
$ sudo adduser $USER libvirt

Clone ensuite le dépôt git qui contient la configuration Ansible :

$ git clone https://github.com/nud/ansible-linuxfr.git

Maintenant, tu peux installer ta machine virtuelle. Pour les besoins de l'exemple, nous allons l'appeler "dlfp-dev".

$ cd ansible-linuxfr
$ ./preseed/install.py dlfp-dev

Par la magie du preseeding de Debian, une nouvelle machine sera installée. Parce que je suis paresseux, tu auras juste un utilisateur appelé "root" et dont le mot de passe est "root". Après tout c'est une machine de développement, pas une machine de prod'!

Utilise le terminal en ta possession pour vérifier l'adresse IP que la nouvelle machine a reçu avec ifconfig. Elle doit ressembler à 192.168.122.X où X est un numéro entre 2 et 254 comme tu peux t'en douter. Appelons cette addresse $IP.

Pour te simplifier la vie, ajoutes déjà la nouvelle machine dans ton /etc/hosts:

$ sudo -s
# echo "$IP dlfp.lo" >> /etc/hosts

Provisionner la machine avec Ansible

Passons maintenant aux choses sérieuses: la configuration de la machine et l'installation des différents services. La configuration actuelle installe nginx, linuxfr.org et img-linuxfr.org avec une configuration la plus proche possible de celle utilisée sur le "vrai" linuxfr.org.

Rajoute l'adresse IP de ta machine dans le fichier "hosts" du dépôt Ansible:

$ cd ansible-linuxfr
$ echo "$IP" >> hosts

Maintenant, lance la configuration:

$ ansible-playbook -k -i hosts site.yml

Saisis le mot de passe "root" quand on te le demande, et va te faire un café, car ça prend un certain temps, pour ne pas dire un temps certain.

Quand c'est fini, pointe ton navigateur sur "dlfp.lo" (ou sur $IP si comme moi tu as zappé l'étape du /etc/hosts). C'est prêt, tu as devant les yeux ta propre instance de linuxfr.org ! Tu vas pouvoir toi aussi contribuer et devenir le meilleur copain de nono< et des co-utilisateurs et co-utilisatrices de linuxfr.

Si par ailleurs, lors de tes essais tu te rends compte que ça foire et que tu corriges le problème, n'hésite pas à me le dire ! J'intégrerai avec joie le correctif. Si tu es un administrateur ou nono<, n'hésite surtout pas à cloner le dépôt pour lui donner une meilleure visibilité, voire, soyons fous, à centraliser le dépôt avec le reste !

  • # Fait

    Posté par (page perso) . Évalué à 10.

    Si tu es un administrateur ou nono<, n'hésite surtout pas à cloner le dépôt pour lui donner une meilleure visibilité, voire, soyons fous, à centraliser le dépôt avec le reste !

    Bonne idée, le fork est là : https://github.com/linuxfrorg/ansible-linuxfr.

  • # Faut arrêter de jouer avec /etc/hosts

    Posté par . Évalué à 7.

    Ça fait un bout de temps qu'on a inventé quelque chose de plus moderne : mDNS.

    Donc, dans la VM on :

    apt-get install avahi-daemon
    

    puis il ne restera qu'à se diriger directement vers "dlfp-dev.local" dans son navigateur, dans son ssh, dans son ping, dans son…

    • [^] # Re: Faut arrêter de jouer avec /etc/hosts

      Posté par (page perso) . Évalué à 4.

      dans son string?

    • [^] # Re: Faut arrêter de jouer avec /etc/hosts

      Posté par (page perso) . Évalué à 3.

      Je ne connaissais pas. Merci à toi.

    • [^] # Re: Faut arrêter de jouer avec /etc/hosts

      Posté par . Évalué à 4. Dernière modification le 13/03/14 à 09:54.

      Certes, mais ça implique de modifier la config de l'environnement de développement du dépôt linuxfr.org, qui utilise dlfp.lo, et je voulais éviter autant que possible toute déviation par rapport au dlfp officiel…

      Et ma connaissance de ruby et de rails étant inexistante, je ne sais pas comment faire pour avoir une config dynamique qui n'imposerait pas la modification "par machine" d'un fichier suivi dans le git (le but est quand même de faciliter le développement donc il faut que le dépôt soit propre).

      Ça veut dire aussi: patches accepted pour ceux qui savent comment faire :-) Une étape en moins dans la todo ça serait génial.

    • [^] # Re: Faut arrêter de jouer avec /etc/hosts

      Posté par . Évalué à 4.

      Malheureux, ce logicel a été écrit par Lennart !

      Pourquoi pas installer systemd, tant qu'on y est ?

      Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

  • # wiki?

    Posté par . Évalué à 3.

    Merci pour ce journal,ça serait bien de le passer dans le wiki.
    Comme ça le/la prochain-e étudiant-e commençant linux et qui tombe pas hasard ici pourra directement contribuer.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.