• [^] # Re: c'est pas parce que c'est pas bien pour la prod qu'il faut tout jeter non plus

    Posté par . En réponse au journal Docker, la plateforme à la mode. Évalué à 10. Dernière modification le 07 mars 2015 à 15:46.

    Pour tous les besoins que tu évoques, LXC fait bien l'affaire (Docker aussi, mais comme j'utilise essentiellement LXC c'est de lui dont je vais parler).

    Sur une Ubuntu 14.04 LTS, créer rapidement un conteneur Debian Wheezy (ou autre) se résume à :

    $ sudo apt-get install lxc
    $ sudo lxc-create -n monconteneur -t download -- -d debian -r wheezy -a amd64
    $ sudo lxc-start -n monconteneur
    $ sudo lxc-ls -f # relever l'IP du conteneur
    

    Maintenant si on souhaite y mettre un serveur SSH :

     $ sudo lxc-console -n monconteneur # se connecter en root
     # apt-get install python openssh-server
    

    Et passer le relai à un outil tel qu'Ansible pour déployer toute la configuration :

     $ echo IP >> inventory
     $ vim monplaybook.yml
     $ ansible-playbook -i inventory monplaybook.yml -e "ansible_ssh_user=root" -k
    

    Après toute la création du conteneur LXC peut également se faire depuis Ansible, et cela sera encore plus facile avec le module prévu à cet effet qui a été mergé depuis peu : https://github.com/ansible/ansible-modules-extras/pull/123

    L'avantage ici c'est de séparer les responsabilités : la techno s'occupant du conteneur n'est pas lié à la techno s'occupant du build, c'est Ansible/Puppet/Salt qui s'en occupe et les recettes/playbooks peuvent s'appliquer aussi bien à des machines physiques, du KVM, de l'HyperV, du LXC, ou de l'OpenVZ, peu importe au fond, chacun son rôle, le couplage entre tout ce beau monde est plus faible.

    Pour le conteneur en lui même, on peut en faire un tar et le passer au collègue si on le souhaite. Mais on préfèrera reconstruire l'environnement de A à Z de manière identique sur la machine cible avec Ansible (on utilisera le même outil pour construire l'environnement de dev, de preprod et de prod).

    Aujourd'hui déployer une application complexe tel qu'un ERP avec son SGBD, une réplication du SGBD (pour du failover), du reverse proxy, la mise en place des backups, de la supervision et tout le toutim, c'est fun et rapide avec un outil comme celui-ci.