Déploiement des instances¶

Attention, le dĂ©ploiement ne doit ĂȘtre lancĂ© que si TOUS les services ont Ă©tĂ© testĂ©s et rĂ©pondent des 404 aux adresses prĂ©vues.

Cela signifie notamment, niveau infrastructure, que les entrées DNS, le/les certificats et les frontaux HTTP (haproxy et/ou nginx) sont déjà en place.

Avant de dĂ©ployer une instance, il faut prĂ©parer 2 fichiers de configuration :

- le fichier modele.zip pour la configuration spécifique wcs

- le fichier recipe.json pour la configuration des instances sur les différents services

Préparation, création du fichier «modele.zip»¶

Le fichier de dĂ©ploiement ci-dessous mentionne un fichier template, modele.zip, nĂ©cessaire au paramĂ©trage de W.C.S lors du dĂ©ploiement. Ce fichier zip doit ĂȘtre placĂ© dans /var/lib/wcs/skeletons, il doit contenir un fichier site-options.cfg et un fichier config.json, voir les exemples ci-dessous.

Pour config.json :

{
    "debug": {
        "error_email": "admin@yourdomain.com"
    },
    "emails": {
        "from": "noreply@yourdomain.com"
    },
    "language": {
        "language": "fr"
    },
    "misc": {
        "charset": "utf-8",
        "homepage-redirect-url": "{{ portal_url }}"
    },
    "postgresql": {
        "createdb-connection-params": {
            "database": "postgres",
            "host": "your.postgres.db.host",
            "port": "5432",
            "user": "yourdbuser",
            "password": "yourdbpassword"
        },
        "database-template-name": "wcs_%s",
        "host": "your.postgres.db.host",
        "port": "5432",
        "user": "yourdbuser",
        "password": "yourdbpassword" }
}

L‘utilisateur postgres mentionnĂ© doit avoir le droit de crĂ©er une base de donnĂ©e.

Pour site-options.cfg :

[options]
default-to-global-view = true

workflow-resubmit-action = false
workflow-functions-only = true

formdef-captcha-option = false

default_position = 48.8336428;2.3233045

give-all-permissions-to-first-role = true

settings-disabled-screens = storage, identification, session, theme, template, users, smtp
disabled-workflow-actions = aggregationemail, jumponsubmit
disabled-fields = ranked-items, table, table-select, tablerows

disable-python-expressions = true
forbid-python-expressions = true
forbid-new-python-expressions = true
disable-jsonp-sources = true
disable-workflow-form-to-workflow-data = true
disable-internal-statistics = true

Préparation, création du fichier «recipe»¶

CrĂ©ation d’un fichier de dĂ©ploiement recipe-macollectivite-prod.json (note : fichier dĂ©jĂ  disponible sur l’infra de prĂ©-prod); la ligne « password Â» est Ă  complĂ©ter.

{
    "variables": {
        "hobo": "hobo-moncompte.macollectivite.fr",
        "authentic": "connexion-moncompte.macollectivite.fr",
        "combo": "moncompte.macollectivite.fr",
        "combo_agent": "agents-moncompte.macollectivite.fr",
        "passerelle": "passerelle-moncompte.macollectivite.fr",
        "wcs": "demarches-moncompte.macollectivite.fr"
    },
    "steps": [
        {"create-hobo": {
            "url": "https://${hobo}/"
        }},
        {"create-superuser": {
             "email": "admin+macollectivite@entrouvert.com",
             "password": "..."
        }},
        {"create-authentic": {
            "url": "https://${authentic}/",
            "title": "Connexion"
        }},
        {"set-idp": { }},
        {"create-combo": {
            "url": "https://${combo}/",
            "title": "Compte citoyen",
            "template_name": "portal-user"
        }},
        {"create-combo": {
            "url": "https://${combo_agent}/",
            "slug": "portal-agent",
            "title": "Portail agent",
            "template_name": "portal-agent"
        }},
        {"create-wcs": {
            "url": "https://${wcs}/",
            "title": "Démarches",
            "template_name": "modele.zip"
        }},
        {"create-passerelle": {
            "url": "https://${passerelle}/",
            "title": "Passerelle"
        }},
        {"set-theme": {
            "theme": "publik"
        }}
    ]
}

 

 

Lancement du déploiement¶

On utilise la commande «cook» proposĂ©e par le logiciel «hobo». Cette commande doit impĂ©rativement ĂȘtre exĂ©cutĂ©e par l’utilisateur «hobo», on utilise donc sudo -u hobo 
 :

# sudo -u hobo hobo-manage cook /chemin/vers/recipe-macollectivite-prod.json -v 2

Vérification du déploiement¶

A la fin du dĂ©ploiement, les logiciels Publik Django packagĂ©s doivent avoir dĂ©ployĂ© les instances dans PostgreSQL (schĂ©mas visibles dans chaque base) mais surtout crĂ©e le rĂ©pertoire contenant la configuration du site cible :

Ce qui est visible dans la plateforme de prĂ©-production doit l’ĂȘtre sur la plate-forme de production, donc on doit voir ceci (en retirant les preprod-) :

# ls -ld /var/lib/*/tenants/*
drwxr-xr-x 3 authentic-multitenant authentic-multitenant   120 Jul 12 15:19 /var/lib/authentic2-multitenant/tenants/connexion-preprod-moncompte.macollectivite.fr
drwxr-xr-x 5 combo                 combo                   156 Jul 21 00:25 /var/lib/combo/tenants/agents-preprod-moncompte.macollectivite.fr
drwxr-xr-x 5 combo                 combo                  4096 Jul 20 10:38 /var/lib/combo/tenants/preprod-moncompte.macollectivite.fr
drwxr-xr-x 3 hobo                  hobo                     81 Apr 18 10:42 /var/lib/hobo/tenants/hobo-preprod-moncompte.macollectivite.fr
drwxr-xr-x 3 passerelle            passerelle              107 Jul 10 18:19 /var/lib/passerelle/tenants/passerelle-preprod-moncompte.macollectivite.fr
drwxr-xr-x 22 wcs                  wcs                    4096 Jul 10 18:19 /var/lib/wcs/tenants/demarches-preprod-moncompte.macollectivite.fr

Note : w.c.s. créé directement une base de donnĂ©es dĂ©diĂ©e wcs_demarches_moncompte_macollectivite_fr accompagnĂ©e de son dossier dans /var/lib/wcs/tenants

Si les rĂ©pertoires sont prĂ©sents, alors :
  • https://moncompte.macollectivite.fr : doit afficher une page « Votre installation de Combo fonctionne (
) Le site est actuellement vide (
) Â»,
  • https://agents-moncompte.macollectivite.fr : mĂȘme chose,
  • https://connexion-moncompte.macollectivite.fr : doit proposer une page de connexion avec un design proche de la prĂ©-prod,
  • https://passerelle-moncompte.macollectivite.fr : doit re-diriger vers le site connexion-moncompte prĂ©cĂ©dent,
  • https://hobo-moncompte.macollectivite.fr : mĂȘme chose, redirection vers connexion-moncompte,
  • https://demarches-moncompte.macollectivite.fr : doit rediriger vers https://moncompte.macollectivite.fr/.