Installation de la HTML5 Gateway Docker¶
Importation de l'image Docker¶
Avant de pouvoir créer un conteneur HTML5 Gateway Docker, il est nécessaire d'importer l'image Docker.
Pour se faire, lancer un shell depuis lequel les commandes Docker vous sont disponibles ainsi que le fichier cleanroom-html5-4.6.1-33-v2.tgz. Depuis le shell exécutez la commande suivante en adaptant le chemin vers le fichier TGZ s'il ne se trouve pas dans le répertoire courant :
1 | |
Contrôlez ensuite que l'importation a bien réussi avec la commande suivante :
1 | |
La sortie attendue est la suivante, si ce n'est pas le cas alors l'importation a échouée :
1 2 3 4 5 6 | |
Sortie complète
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | |
Configuration du conteneur¶
Variables d'environnement¶
Variables pour un déploiement par appairage¶
| Nom | Obligatoire | Valeur par défaut | Commentaire |
|---|---|---|---|
ENV_MEDIATION |
OUI | Utilisé pour la connexion avec appairage. Indication nom DNS ou adresse IP de connexion à l'interface Web d'une plateforme cyberelements Cleanroom. |
|
ENV_TOKEN |
OUI | Utilisé pour la connexion avec appairage. Indication du jeton d'appairage à utiliser pour la connexion au Mediation Controller. |
|
ENV_NO_CHECK_CERT |
NON | false |
Utilisé pour la connexion avec appairage. Désactivation ou non du contrôle du certificat Web du Mediation Controller, utile avec cyberelements Cleanroom lors d'un accès via adresse IP ou lorsque le certificat Web n'est pas un certificat reconnu avec les autorités de certification publiques par défaut. Valeurs acceptées : true ou false. |
Variables pour un déploiement manuel¶
| Nom | Obligatoire | Valeur par défaut | Commentaire |
|---|---|---|---|
ENV_GW_CERT_NAME |
OUI | Utilisé pour la connexion avec configuration manuelle. Nom du fichier de certificat pour la connexion au Routeur SSL. |
|
ENV_GW_CERT_PASSWORD |
OUI | Utilisé pour la connexion avec configuration manuelle. Mot de passe du fichier de certificat pour la connexion au Routeur SSL. |
|
ENV_SSL_ROUTER_IP |
OUI | Utilisé pour la connexion avec configuration manuelle. Adresse IP ou nom DNS du Routeur SSL vers lequel la HTML5 Gateway se connectera. |
|
ENV_SSL_ROUTER_PORT |
NON | 443 |
Utilisé pour la connexion avec configuration manuelle. Port du Routeur SSL vers lequel la HTML5 Gateway se connectera. |
Variables diverses¶
| Nom | Obligatoire | Valeur par défaut | Commentaire |
|---|---|---|---|
ENV_DISABLE_RSYSLOG |
NON | false |
Désactivation du service rsyslog.Valeurs acceptées : true ou false. |
Volumes¶
| Volume | Commentaire |
|---|---|
/etc/ipdiva/ |
Volume de configuration de la HTML5 Gateway. Nous recommandons de le monter sur un volume nommé ou sur le système de fichiers de la machine hôte. |
/opt/certificates/ |
Volume contenant le ou les certificats de la HTML5 Gateway lors d'une configuration sans utilisation de l'appairage. |
/var/log/ |
Volume contenant les logs de la HTML5 Gateway. |
Ports¶
| Port | Commentaire |
|---|---|
8080 |
Port d'écoute du service HTML5. |
Déploiement de la HTML5 Gateway Docker¶
Déploiement avec appairage¶
Prérequis
Avant de déployer la HTML5 Gateway Docker, il est nécessaire d'obtenir un jeton d'appairage.
Le déploiement décrit ci-après utilisera l'ensemble des volumes disponibles (mise à part /opt/certificates/ qui n'est pas utile dans ce contexte) et exposera l'ensemble des ports.
Les volumes seront montés sur le système de fichiers de la machine hôte avec comme emplacement HTML5_GATEWAY_REP. A l'intérieur de celui-ci se trouvent les sous-répertoires suivants :
- config
- log
Vous pouvez personnaliser les variables des commandes qui suivront :
| Valeur personnalisée | Variable | Commentaire |
|---|---|---|
DOCKER_NAME |
Nom du conteneur Docker. | |
HTML5_GATEWAY_REP |
Emplacement sur le système de fichier pour monter les volumes. | |
ENV_MEDIATION_VALUE |
Valeur de la variable d'environnement ENV_MEDIATION. |
|
ENV_TOKEN_VALUE |
Valeur de la variable d'environnement ENV_TOKEN. |
|
ENV_NO_CHECK_CERT_VALUE |
Valeur de la variable d'environnement ENV_NO_CHECK_CERT. |
Créez l'arborescence requis pour le montage des volumes sur le système de fichiers :
1 2 | |
Et enfin démarrez un nouveau conteneur :
1 2 3 4 5 6 7 8 | |
La visualisation des logs du conteneur peut être obtenu avec la commande suivante :
1 | |
Déploiement manuel¶
Prérequis
Avant de déployer la HTML5 Gateway Docker, il est nécessaire d'avoir à disposition le certificat requis pour la HTML5 Gateway.
Le déploiement décrit ci-après utilisera l'ensemble des volumes disponibles et exposera l'ensemble des ports.
Les volumes seront montés sur le système de fichiers de la machine hôte avec comme emplacement MANUAL_REP. A l'intérieur de celui-ci se trouvent les sous-répertoires suivants :
- config
- log
- certificates
Vous pouvez personnaliser les variables des commandes qui suivront :
| Valeur personnalisée | Variable | Commentaire |
|---|---|---|
MANUAL_NAME |
Nom du conteneur Docker. | |
MANUAL_REP |
Emplacement sur le système de fichier pour monter les volumes. | |
ENV_GW_CERT_NAME_VALUE |
Valeur de la variable d'environnement ENV_GW_CERT_NAME. |
|
ENV_GW_CERT_PASSWORD_VALUE |
Valeur de la variable d'environnement ENV_GW_CERT_PASSWORD. |
|
ENV_SSL_ROUTER_IP_VALUE |
Valeur de la variable d'environnement ENV_SSL_ROUTER_IP. |
|
ENV_SSL_ROUTER_PORT_VALUE |
Valeur de la variable d'environnement ENV_SSL_ROUTER_PORT. |
Créez l'arborescence requis pour le montage des volumes sur le système de fichiers :
1 2 3 | |
Placez ensuite les certificats pour la HTML5 Gateway et le service d'enregistrement dans MANUAL_REP/certificates.
Finalement démarrez un nouveau conteneur :
1 2 3 4 5 6 7 8 9 10 | |
La visualisation des logs du conteneur peut être obtenu avec la commande suivante :
1 | |
Configuration du Mediation Controller¶
Pour que la nouvelle HTML5 Gateway Docker soit opérationnelle, il reste encore a paramétrer le Serveur Mediation Controller via un accès SSH ou console et les droits root.
Ce dernier paramétrage est requis afin de permettre au Mediation Controller de communiquer avec le service HTML5.
Cependant ce paramétrage varie en fonction de l'emplacement de la HTML5 Gateway Docker :
Le schéma global correspond à ceci :
flowchart LR
subgraph DMZ
direction TB
HTML5(HTML5 Gateway Docker)
MED(Mediation Controller)
end
subgraph LAN
GW(Edge Gateway)
end
MED -.-> |Connection to HTML5 service ; TCP 8080| HTML5
HTML5 --> |TLS Tunnel| MED
MED ~~~ GW
GW --> |TLS Tunnel| MED
GW ~~~ MED
linkStyle 0 stroke:#d22,color;
Dans ce contexte, il sera nécessaire d'ajouter dans le fichier /etc/ipdiva/httpd/commonParameters.extra.conf ou de le créer les informations données ci-dessous.
Une personnalisation du paramétrage est disponible :
| Valeur personnalisée | Variable | Commentaire |
|---|---|---|
HTML5_URL_DMZ |
URL paramétrée lors de la déclaration de la HTML5 Gateway dans la console d'administration. | |
HTML5_IP_DMZ |
Nom DNS ou adresse IP du serveur Docker sur lequel la HTML5 Gateway Docker est active. | |
HTML5_PORT_DMZ |
Port publié par le serveur Docker pour la HTML5 Gateway Docker. |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Le schéma global correspond à ceci :
flowchart LR
subgraph DMZ
direction TB
MED(Mediation Controller)
end
subgraph LAN
HTML5(HTML5 Gateway Docker)
GW(Edge Gateway)
end
MED -.- | Connection to HTML5 service ; through TLS Tunnel| GW -.-> |Connection to HTML5 service ; TCP 8080| HTML5
HTML5 --> |TLS Tunnel| MED
GW --> |TLS Tunnel| MED
linkStyle 0,1 stroke:#d22,color;
Dans ce contexte, il sera nécessaire d'ajouter dans le fichier /etc/ipdiva/httpd/commonParameters.extra.conf ou de le créer les informations données ci-dessous.
Une personnalisation du paramétrage est disponible :
| Valeur personnalisée | Variable | Commentaire |
|---|---|---|
HTML5_URL_LAN |
URL paramétrée lors de la déclaration de la HTML5 Gateway dans la console d'administration. | |
GW_NAME_LAN |
Nom de la Edge Gateway utilisée pour se connecter au service HTML5. Le caractère | placé en fin de ligne doit obligatoirement être conservé. | |
ORGANIZATION_NAME_LAN |
Nom de l'organisation à laquelle la Edge Gateway se connecte. | |
HTML5_IP_LAN |
Nom DNS ou adresse IP du serveur Docker sur lequel la HTML5 Gateway Docker est active. | |
HTML5_PORT_LAN |
Port publié par le serveur Docker pour la HTML5 Gateway Docker. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Astuce
Cette configuration peut aussi être utilisée dans la situation suivante où une Edge Gateway Docker et une HTML5 Gateway Docker fonctionnent dans un même réseau Docker :
flowchart LR
subgraph DMZ
direction TB
MED(Mediation Controller)
end
subgraph LAN
subgraph docker[Docker Server]
HTML5([HTML5 Gateway Docker])
GW([Edge Gateway])
end
end
MED -.- | Connection to HTML5 service ; through TLS Tunnel| GW -.-> |Connection to HTML5 service ; TCP 8080 through Docker network| HTML5
HTML5 --> |TLS Tunnel| MED
GW --> |TLS Tunnel| MED
linkStyle 0,1 stroke:#d22,color;
Exemple
Dans cet exemple va être réalisé le déploiement sur un même serveur Docker d'une Edge Gateway et d'une HTML5 Gateway.
Les informations de l'infrastructure utilisée pour l'exemple sont les suivantes :
- Serveur Mediation Controller
- Adresse IP Web :
10.0.10.10 - Nom d'organisation :
my-organization-name - Jeton pour Edge Gateway :
YJ5N-JN05-N5LS-N26H-7JHA-HZ9R-BGJF-MAVH - Jeton pour HTML5 Gateway :
ATCW-OMVR-0RY4-LW1M-D9G9-H5VF-WPX5-YCXF - URL d'accès au service HTML5 :
HTML5_DOCKER
- Adresse IP Web :
- Serveur Docker
- Nom du réseau Docker :
cyberelements-cleanroom-network - Edge Gateway
- Nom :
my-edge-gateway-docker - Emplacement racine sur le système de fichiers :
/opt/my-edge-gateway-docker
- Nom :
- HTML5 Gateway
- Nom :
my-html5-gateway-docker - Emplacement racine sur le système de fichiers :
/opt/my-html5-gateway-docker
- Nom :
- Nom du réseau Docker :
Tout d'abbord sur le serveur Docker il est nécessaire de créer l'arborescence pour le montage des volumes Docker :
1 2 3 4 5 6 | |
Puis créer un réseau Docker de type bridge afin que les deux conteneurs puissent communiquer entre-eux :
1 | |
Ensuite vient le démarrage du conteneur Edge Gateway, à noter que l'exemple réalise une connexion par appairage dont l'accès au Mediation Controller se fait via son adresse IP, le non contrôle du certificat est ajouté. De plus, le paramètre --network est ajouté pour spécifier l'utilisation du réseau Docker précédemment créé :
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Puis vient le démarrage du conteneur HTML5 Gateway, à noter que l'exemple réalise une connexion par appairage dont l'accès au Mediation Controller se fait via son adresse IP, le non contrôle du certificat est ajouté. De plus, le paramètre --network est ajouté pour spécifier l'utilisation du réseau Docker précédemment créé et du fait que l'accès au service HTML5 passera par le réseau Docker, la publication du port 8080 n'est pas nécessaire :
1 2 3 4 5 6 7 8 | |
Finalement il reste le paramétrage du fichier /etc/ipdiva/httpd/commonParameters.extra.conf sur le ou les serveurs Mediation Controller, ce dernier verrait l'ajout de la section suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Avant d'appliquer le nouveau paramétrage, un contrôle que la nouvelle configuration n'entraine pas d'erreurs bloquantes pour le serveur Web Apache2 est nécessaire.
Pour cela exécutez la commande suivante :
1 | |
Si le retour est Syntax OK alors les modifications peuvent être appliquées avec la commande ci-dessous. Sinon contrôlez votre configuration du fichier /etc/ipdiva/httpd/commonParameters.extra.conf.
1 | |