PROJET AUTOBLOG


mathieui’s blog

Site original : mathieui’s blog

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Faire une image ArchLinux pour Hetzner Cloud

dimanche 4 février 2018 à 13:17

L’hébergeur allemand Hetzner a sorti récemment une offre "cloud" qui permet de provisionner des machines virtuelles de différentes tailles très rapidement (et à pas très cher).

Malheureusement, les seules images disque par défaut sont des versions spécifiques de Debian, Ubuntu, Fedora et CentOS. Comme je suis toujours plus à mes aises sous Arch (et que je m’arrache moins de cheveux comme ça), j’ai donc regardé comment faire pour m’y retrouver.

C’est assez simple puisqu’Hetzner permet de monter des images ISO sur le serveur (depuis une liste prédéfinie), et de démarrer dessus. Contrairement à pas mal d’autres fournisseurs, ce ne sont pas des images "rescue" spéciales, mais simplement les livecd d’installation des distributions. Il y a bien évidemment une console web qui permet d’interagir avec un TTY, ce qui permet d’installer Arch.

L’installation est tout à fait standard, il faut juste suivre la procédure habituelle. Il ne faut juste pas oublier de lancer resize2fs -s /dev/sda1 si on utilise syslinux (puisque le FS est en ext4 64 bits par défaut). De plus, il faut bien sûr régler le DHCP (avec systemd-networkd, par exemple), sinon le serveur n’a pas de réseau.

[Match]
Name=ens3

[Network]
DHCP=yes

Enfin, ajouter ses clefs ssh à /root/.ssh/authorized_keys, activer ssh avec systemctl afin de pouvoir se connecter, et c’est tout bon. Il ne reste plus qu’à faire un snapshot de la VM et le garder en stock (pour environ 20 centimes par mois) afin de la réutiliser.

hetzner

Making an Archlinux image for Hetzner Cloud

dimanche 4 février 2018 à 13:17

German server host Hetzner added recently a "cloud" offering which allows very fast VM provisioning of various sizes (and quite cheaply).

Sadly, most default images (numbering four at the time of writing) are specific versions of Debian, Ubuntu, Fedora, and CentOS. Since I’m always feeling better when using Arch (and losing less hair like that), I looked into having Arch on it.

It's quite easy since Hetzner allows ISO image mounting on the server (from a pre-established list), and boot on it instead of the disk. As opposed to many other providers, those are not specific "rescue" images, but raw install live cds of distros. There's of course a web console that can interact with a TTY, which allows installing Arch.

The install is standard, you only have to follow the usual steps. But if you use syslinux, you have to remember to run resize2fs -s /dev/sda1 since the filesystem is 64bit ext4 by default. You also have to setup DHCP (with systemd-networkd for example), otherwise the server is networkless.

[Match]
Name=ens3

[Network]
DHCP=yes

Finally, remember to add ssh keys to /root/.ssh/authorized_keys, enable ssh with systemdctl to be able to connect, and everything should be ready. You only have to make a VM snapshot and keep it (for around €.20/month) in order to reuse it.

hetzner

Migration de service

dimanche 9 avril 2017 à 16:17

Il y a bientôt 3 ans de ça, j’avais cédé à une offre promotionelle d’online qui vendait des serveurs dédiés à 2€ HT/mois, ce qui est quand même un tarif assez exceptionnel. Le serveur ne m’a pas servi à grand chose, si ce n’est à héberger mon pix sur une bonne connexion à une époque où je n’avais pas encore 200Mbps en upload chez moi, ainsi qu’à des backups.

Il y a quelques jours, online a annoncé qu’ils allaient mettre hors service cette gamme de serveurs d’ici le 1er mai, et donc que je devais faire quelque chose, en me mettant à disposition une dedibox SC avec frais d’installation offerts. Cela dit, payer ensuite 12€/mois au lieu de 2€40 ne m’enchante pas (même si bien sûr, le processeur VIA U2250 et ses 2Go de ram/160Go de HDD font pâle figure face à la configuration de la SC bien que minimale). C’est pour ça que j’ai choisi plutôt de partir sur un serveur C1 chez scaleway (ARMv7 quad-core, 2Go de ram, SSD de 50 Go) à +-3€/mois.

J’y ai donc bougé mon pix, mais également un gitea et un miroir de mon blog pour tests. La nouveauté c’est qu’il sera sous archlinux et non centos, et donc bien plus agréable à administrer :). J’en ai profité pour commencer à écrire des roles ansible pour mes services, afin de ne pas me fatiguer la prochaine fois (disponibles sur le gitea susmentionné). À suivre : une conf monit pour monitorer le serveur, et faire marcher buildbot avec gitea/gogs si ce n’est pas déjà possible.

Service migration

dimanche 9 avril 2017 à 16:17

Almost three years ago, I fell for a discounted offer at online, which was selling dedicated servers for €2/month (plus tax), which is really cheap. I didn’t get much use from it, except hosting my pix on a good connection at a time where I didn’t have a 200Mb/s upload on my home connection, and doing small backups.

A few days ago, online announced that they were going to phase out those servers on the 1st of May, and that I should move from it ASAP, while giving me access to a free (until 1st May) dedibox SC. That said "free installation" when going from a €2.40 server to a €12 one doesn’t please me a lot (even if of course the performance and server quality doesn’t have much in common, I don’t even know where they found the VIA U2250 processors in the €2 box). That is why I chose to move instead to a C1 server at scaleway, which is technically still online (ARMv7 quad-core, 2GB of RAM, 50GB SSD) at around €3/month).

I have already moved my pix, but also a gitea, and a blog mirror for testing. Since I put archlinux instead of centos on it, it will be much more pleasant to use, so I will probably do more things with it. I also used the occasion to start writing ansible roles for my services, in order to have a painless migration next time (available on the formentioned gitea). Next up: a monit configuration for those same services, and managing to make buildbot work with gitea/gogs webhooks.

Pelican et internationalisation

dimanche 9 avril 2017 à 14:22

Depuis que ce blog utilise Pelican, je me suis mis à rédiger la plupart de mes articles (quand j’en ai le temps et la motivation) en anglais et en français. Pelican gère l’internationalisation par défaut, pour peu qu’on ait choisi un thème qui le prenne en charge (j’utilise pour ma part le thème SoMA2 dont c’est le cas). Mais par défaut il est impossible de générer un flux RSS par langue et par tag/catégorie ; j’avais également essayé de mettre des tags différents par langue, mais cela ne marche pas.

À la dernière (et première) rencontre XMPP à Paris, j’ai pu rencontrer Jean-Baptiste qui a une expérience certaine dans le domaine, et qui m’a fait remarquer que c’était possible via des subsites. Et m’a proposé plutôt qu’une bière en échange de la solution, que j’écrive un article pour décrire le processus. Après avoir eu la piste, ce n’est pas bien compliqué, mais chose promise, chose dûe.

1 - Ajout du plugin i18n_subsites

Le plus simple est de cloner le dépôt pelican_plugins qui contient tous les plugins possibles, afin de récupérer le plugin voulu. Le plus simple est de faire ça dans le dossier qui contient le blog.

git clone https://github.com/getpelican/pelican-plugins.git

Ensuite, il faut configurer le blog pour utiliser le plugin, donc éditer pelicanconf.py et y ajouter ces lignes :

PLUGIN_PATHS = ['pelican-plugins']
PLUGINS = ['i18n_subsites']

Puis il suffit de configurer les langues que vous voulez faire apparaître sur votre site (ici je mets ma configuration, très complexe) :

I18N_SUBSITES = {
    'en': {
        'SITENAME': 'mathieui’s blog',
    },
    'fr': {
        'SITENAME': 'mathieui’s blog',
    }
}

Et… Voilà, c’est tout, le blog est configuré, il va :

  • Générer un sous-dossier en/ et un fr/ dans le dossier de sortie de pelican
  • Mettre également à la racine la langue définie comme langue par défaut dans votre configuration
  • Générer des flux RSS spécifiques par langue dans les sous-dossiers correspondants

2 - Configuration nginx

Cette étape est bien sûr optionelle, mais comme tous mes articles étaient disponibles au même niveau en rajoutant -fr dessus, le fait de passer aux subsites a cassé tous les liens qui y menaient.

J’ai donc rajouté une simple directive nginx qui permet de faire comme si ils n’avaient pas bougé, sans avoir à retoucher à Pelican.

location ~ /(.+)-fr.html {
    try_files $uri /fr/$1.html;
}