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

La doc

Recopie des données de l’ancien site

A faire.