Après avoir installé rancheros sur une VM j’ai installé rancher. Maintenant je tente la mise en place d’un premier service, ce sera un serveur dokuwiki !
C’est le premier service web mais j’espère qu’il y en aura d’autres et je vais donc placer un load-balancer dans la stack. En fonction du nom de serveur demandé il redirigera vers le bon conteneur. Le conteneur n’aura pas besoin d’exposer de port sur l’hôte.
Je vais utiliser l’orchestrateur de rancher, cattle. Peut-être que j’essaierai Mesos, Swarm ou Kubernetes plus tard…
Création du service
Dokuwiki est proposé dans le catalogue d’applications de rancher. Comme ce qui existe ne correspond pas exactement à mon besoin je vais très fortement m’en inspirer pour créer ma configuration.
Tout d’abord le fichier docker_compose.yml :
recettes-server:
expose:
- 80/tcp
labels:
io.rancher.sidekicks: recettes-data
hostname: ${dokuwiki_hostname}
image: ununseptium/dokuwiki-docker
volumes_from:
- recettes-data
recettes-data:
labels:
io.rancher.container.start_once: 'true'
entrypoint:
- /bin/true
hostname: recettesdata
image: ununseptium/dokuwiki-docker
volumes:
- /var/www/html/data
- /var/www/html/lib/plugins
Le fichier rancher-compose.yml :
.catalog:
name: Dokuwiki
version: 2016-06-26a
description: |
DokuWiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database.
minimum_rancher_version: v0.56.0
maintainer: "Thomas Montfort <moi@example.com>"
uuid: dokuwiki-0
questions:
- variable: "dokuwiki_hostname"
description: "Dokuwiki hostname"
label: "Hostname:"
required: true
default: "dw.montfort.fr"
type: "string"
recettes-server:
scale: 1
retain_ip: true
health_check:
port: 80
interval: 30000
unhealthy_threshold: 3
strategy: recreate
response_timeout: 2000
healthy_threshold: 2
recettes-data:
scale: 1
retain_ip: true
Et enfin le fichier de réponses, answers.txt :
dokuwiki_hostname=dw.montfort.fr
Utilisation de la ligne de commande
Il faut ensuite télécharger et installer la commande rancher. La configuration se fait avec :
rancher config
On peut spécifier plusieurs configurations pour plusieurs serveurs différents :
rancher -c ~/.rancher/perso.json config
On peut créer le service avec la commande :
rancher up
Dans mon cas la création se fera dans l’environnement de prod et la stack web :
rancher -c ~/.rancher/perso.json --env prod up --stack web
Création du load balancer
Recopie des données de l’ancien site
A faire.