18/05/2012
201205181000 ml150 poudriere pkgng
Welcome ml150
J'ai l'honneur de vous présenter mon nouveau dédié, un joli HP ML150 G3 de récupération. Il ne tient pas la comparaison avec les machines actuelles mais comparé à ce bon vieux Kimsufi première génération, c'est le jour et la nuit. Petit aperçu:dsx@ml150>sysctl hw.model hw.ncpu hw.physmem kern.disks hw.model: Intel(R) Xeon(R) CPU 5110 @ 1.60GHz hw.ncpu: 4 hw.physmem: 2125123584 kern.disks: da1 da0 ada1 ada0 dsx@ml150>zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT zroot 696G 1.84G 694G 0% 1.00x ONLINE - zscsi 278G 2.55G 275G 0% 1.00x ONLINE -
FreeBSD 9.0, ZfsOnRoot, poudriere et pkgng sont de la partie. J'en profite pour remercier bapt pour tout son travail qui rend FreeBSD si beau, si poilu, si soyeux.
Des petits nouveaux ont fait leur appartition:
- zail: jail but zfs
- orke: un blog statique en markdown, awk, shell
- mohawk2: l'utilisation de la libevent2 et une profonde réécriture justifient ce changement de majeur
Installation
J'ai suivi cet excellent article en simplifiant le découpage (étape 6). Parfois on en vient à se demander à quoi peut bien servir un installeur :)
Configuration
Comme d'habitude, je vais user (et abuser) des jails. Une ipv4, un block ipv6/64, une jail par service (ns, smtp, proxy, www), un /etc/pf.conf pour contrôler le tout.
poudriere et pkgng
Après quelques semaines d'utilisation, plus question de me passer de ce duo de choc ! L'un construit les 'packages', l'autre les installe. Le tout est clairement expliqué ici. Pour ma part, je n'ai pas installé l'arbre des ports, j'ai récupéré le tgz de poudriere:
- se logguer en anonymous sur http://fossil.etoilebsd.net/poudriere
- cliquer sur 'Files'
- cliquer sur le lien entre crochets (par exemple [9879991a62])
- cliquer sur le lien 'Tarball'
poudriere étant composé de scripts shell, un simple make install fait l'affaire. Je ne vais pas détailler le contenu de /usr/local/etc/poudriere.conf ni celui de /root/etc/poudriere_ports.conf (qui contient uniquement la liste des packages à générer).
Une fois l'arbre des ports (poudriere ports -c) et la jail (poudriere jails -c -j 90amd64 -v 9.0-RELEASE -a amd64) créés, on peut commencer la construction de nos packages. Le premier sera bien évidemment pkgng :) Il suffit de ne préciser aucune option dans /usr/local/etc/poudriere.d/90amd64-make.conf, d'avoir un /root/etc/poudriere_ports.conf comportant une seule entrée:# cat /root/etc/poudriere_ports.conf ports-mgmt/pkgng # poudriere ports -u # poudriere bulk -f /root/etc/poudriere_ports.conf -j 90amd64 # pkg_add /poudriere_data/packages/90amd64-default/Latest/pkng.tbzNotre hôte est désormais pkgngisé. Garder une copie de /poudriere_data/packages/90amd64-default/Latest/pkng.tbz peut être utile (pour installer pkgng sur une autre machine ou dans une jail par exemple). On peut enfin préciser que tous nos packages seront au format pkng:
# echo 'WITH_PKGNG' >> /usr/local/etc/poudriere.d/90amd64-make.confL'hôte doit se mettre à jour à partir de /poudriere_data/packages/90amd64-default:
# echo 'packagesite: file:///poudriere_data/packages/90amd64-default' >> /usr/local/etc/pkg.confIl est temps de passer aux choses sérieures:
# cat /root/etc/poudriere_ports.conf ports-mgmt/pkg ports-mgmt/poudriere security/sudo sysutils/tmux editors/vim-lite net/rsync dns/nsd dns/dnsmasq devel/libevent2 devel/fossil www/nginx mail/dovecot2 mail/dovecot2-pigeonhole # poudriere ports -u # poudriere bulk -f /root/etc/poudriere_ports.conf -j 90amd64 # pkg update # pkg upgradePour mettre à disposition tous ces beaux packages, il nous faut un serveur http léger, performant, à la syntaxe claire (oui je prosel et alors ?)
# cat /home/dsx/etc/poudriere.mohawk
mime_type {
bz2 application/x-bzip2
gz application/x-gzip
gzip application/x-gzip
tar application/x-tar
tgz application/x-compressed
xz application/x-compressed
zip application/x-compressed
}
vhost default {
listen on lo1
rootdir /poudriere_data/packages/90amd64-default
}
Jails
Je n'étais pas très content de mk_template et mk_jail. Bienvenue à zail (jail but zfs, à prononcer avec un cheveu sur la langue ou un poil dans la main), un script sans prétention mais qui fait le travail:
- création d'un ou plusieur dataset zfs
- détar de base.txz
- configuration minimale
- snapshot du ou des datasets
- clone du ou des datasets
- configuration minimale
# ./zail template -f zail.conf [ snip création template mode debug ] # ./zail template -f zail.conf -D [ snip création du template ] # ./zail jail -f zail.conf -n www [ snip création jail 'ww' basée sur le template zail.conf mode debug ] # ./zail jail -f zail.conf -n www -D [ snip création de la jail ]
- dns: toujours le couple nsd pour bsdsx.fr et dnsmasq pour les jails
- smtp/imap: toujours le couple sendmail/dovecot
- proxy: nginx, what else ?
- www: mohawk, what else ?
Bien sûr, toutes ces jails sont pkgngisées :)
Blog
L'idée m'est venue alors que je codais zail. Du statique, pas (encore) de commentaires, minimaliste. Les plus curieux jetteront un oeil à l'archive. Le principe est assez simple:
- un répertoire racine comprenant tous les fichiers de l'archive
- un sous répertoire 'src', comprenant les sources des billets au format 'markdown'
- un sous répertoire 'document_root', créé par 'orke'
###### YYYYMMDDhhmm tag1 tag2 ... tagn # Titre du billet
Mohawk
Grande nouveauté: la dépendance à libevent2. Ce choix a été motivé par le fait d'être un peu plus portable et de simplifier le code de gestion des évènements (qui n'était pas un modèle du genre dans mohawk 1). Un autre logiciel partage cette dépendance: tmux. Cette nouvelle version amène son lot d'amélioration: listen par vhost, clone de vhost etc. Je ne détaille pas plus, je dois mettre à jour le site web.
Conclusion
J'espère que cette nouvelle machine me rendra autant de bons et loyaux services que ce vénérable kimsufi. Je souhaite 'bon vent, belle mer'.
Update: merci bapt pour toutes les remarques :) J'espère avoir tout fixé.
Update 2: bapt vient de simplifier le téléchargement de poudriere: poudriere current
11/05/2012
201205111842 kimsufi
Au revoir kimsufi
D'ici 7 jours, je quitterai mon valeureux kimsufi. Que soient ici remerciés son disque dur, son processeur Celeron et son giga de ram qui, pendant plus de 3 ans, ne m'ont jamais trahi. Petite pensée particulière à la jail devel sans qui mohawk n'aurait pas vu le jour.
La semaine à suivre ne sera pas un modèle de haute disponibilité, d'avance toutes mes excuses. L'aventure continue avec ml150, orke, zail et un nouveau mohawk gonflé à bloc.
![Validate my Atom 1.0 feed [Valid Atom 1.0]](/valid-atom.png)
![Validate my RSS feed [Valid RSS]](/valid-rss-rogers.png)