Archives pour l'étiquette puppet

Feedback du Paris meetup : Docker en Production

Dans cette présentation, Jérôme Petazzoni donne plusieurs réponses aux grandes questions classiques associées au déploiement avec Docker.

J’ai retenu :

Totalement béotien j’ai noté les éléments suivant que je vous invite explorer de votre coté :
  • run –net=host pour utiliser la pile réseau du host hébergeant le / les containers sans jouer avec les bridges. Attention les processus dans les containers peuvent ouvrir des ports < 1000 comme tout processus root. Cela permet également au container d’accéder aux services du réseau local comme D-bus. Cela peut conduire à des processus du container étant capable de faire des choses inattendues comme redémarrer votre ordinateur.
  • Pas de Docker Hub dédié, sur site, dans l’enceinte d’un réseau priver mais c’est une demande des grands comptes donc cela va arriver rapidement.
  • Plus généralement Docker rentrant dans une phase de maturité la roadmap de l’équipe va s’orienter vers la satisfaction des clients, ceux qui achète du service mais ..
  • Les contributions des utilisateurs sont très nombreuses. Plus de 100 contrib en permanence en backlog que l’équipe doit approuver. L’équipe ne néglige pas cet apport et reste concentrer pour valider correctement chaque contrib, grosse ou petite.
  • J’ai retenu que docker offre tout les outils pour subdiviser une machine virtuelle type AWS EC2 et en partager les ressources. Parfait pour créer des sansbox ou des préprod / dev à moindre coût.
  • Les links et les variables d’environnement sont ce qu’il a de plus facile à mettre en place pour du service discovery à froid. La limitation c’est que cela est innaplicable pour déplacer un container et lui faire découvrir son environnement à chaud.
  • Le service discovery via DNS ou /etc/hosts à encore de beau jour devant eux. C’est hyper old school mais maîtrisé
  • J’ai rien compris aux ambassadors, aux licornes montées par des chats armée de golden gun … rendez moi les barbus.
  • Puppet c’est bon pour les hôtes Docker moins pour les containers eux même
  • Puppet reste une solution d’orchestration du déploiement de vos container utilisable pour des infra sous la barres des 100 puppet clients. Au delà d’autre outils s’impose. Bref ne pas jeter puppet tout de suite mais je pressens que la zone de confort doit être réduite avec lui comme avec tout les CM dans le cas docker.
  • Mesos c’est très intéressant et j’aimerais vraiment explorer au moins d’un point de vue théorique l’assemblage Mesos, Marathon et Docker pour une infra scalable verticalement et horizontalement à chaud et dynamiquement.
  • Le monitoring et la mesure de la performance me semble être le grand far west … les règles restent à inventer. L’auto discovery de zabbix est peut-être une piste pour monitorer les applications en container depuis le host sous-jacent.

Mise à jour

Toujours pas possible d’utiliser docker nativement avec debian wheezy avec les repositorys classique, privilégier Ubuntu pour les adorateurs de .deb

Donc sur wheery c’est possible avec les backports.

Puppet story

Puppet 0.25 vs 0.24

Puppet Client 0.25 présent sur Ubuntu Lucid 10.4 n’est pas compatible avec un Puppet master en version 0.24 présent sur Ubuntu Karmic 9.4.

Le symptôme est le suivant : le puppet master semble ne jamais recevoir la demande de certificat. Coté client cela donne

sudo puppetd --waitforcert 60 --test info: Creating a new SSL key for h3-desktop warning: peer certificate won't be verified in this SSL session warning: peer certificate won't be verified in this SSL session info: Creating a new SSL certificate request for h3-desktop warning: peer certificate won't be verified in this SSL session warning: peer certificate won't be verified in this SSL session warning: peer certificate won't be verified in this SSL session warning: peer certificate won't be verified in this SSL session notice: Did not receive certificate warning: peer certificate won't be verified in this SSL session notice: Did not receive certificate

Sur le serveur cela donne

sudo puppetca --list No certificates to sign

L’avertissement était clair

Dans la Release Notes l’avertissement était clair :

Newer clients may not work with older servers and vice-versa. Where possible backwards-compatibility is maintained but it’s not always totally successful. The best approach is to ensure your master and clients are the same version. When upgrading it is also recommended that you upgrade your master first.

Solution, backport

Dans /etc/apt/source.list on ajoute

deb http://ubuntu.mirror.rafal.ca/ubuntu/ karmic-security main restricted deb-src
http://ubuntu.mirror.rafal.ca/ubuntu/ karmic-security main restricted deb
http://ubuntu.mirror.rafal.ca/ubuntu/ karmic-security universe deb-src
http://ubuntu.mirror.rafal.ca/ubuntu/ karmic-security universe deb
http://ubuntu.mirror.rafal.ca/ubuntu/ karmic-security multiverse deb-src
http://ubuntu.mirror.rafal.ca/ubuntu/ karmic-security multiverse

Et puis zou

apt-get update
aptitude -t karmic install puppet

Juste faire attention à pas tout péter à la prochaine mise à jour