Instalacja HTML5 Gateway Docker¶
Import obrazu Docker¶
Zanim będziesz mógł utworzyć kontener HTML5 Gateway Docker, musisz zaimportować obraz Docker. W tym celu otwórz powłokę, w której dostępne są polecenia Docker oraz plik cleanroom-html5-4.6.1-33-v2.tgz. W powłoce wykonaj następujące polecenie, dostosowując ścieżkę do pliku TGZ, jeśli nie znajduje się on w bieżącym katalogu:
1 | |
Następnie sprawdź poniższym poleceniem, czy import się udał:
1 | |
Oczekiwane wyjście jest następujące. Jeśli tak nie jest, import się nie udał:
1 2 3 4 5 6 | |
Pełne wyjście
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 | |
Konfiguracja kontenera¶
Zmienne środowiskowe¶
Zmienne dla wdrożenia przez pairing¶
| Nazwa | Obowiązkowa | Wartość domyślna | Komentarz |
|---|---|---|---|
ENV_MEDIATION |
TAK | Używane do połączenia przez pairing. Wskazuje nazwę DNS lub adres IP do połączenia z interfejsem webowym platformy CyberElements Bastion. |
|
ENV_TOKEN |
TAK | Używana do połączenia przez pairing. Wskazuje token pairing, który ma zostać użyty do połączenia z Mediation Controller. |
|
ENV_NO_CHECK_CERT |
NIE | false |
Używane do połączeń przez pairing. Wyłącza sprawdzanie certyfikatu webowego Mediation Controller lub nie; przydatne w CyberElements Bastion, gdy dostęp odbywa się przez adres IP lub gdy certyfikat webowy nie jest certyfikatem uznawanym przez domyślne publiczne urzędy certyfikacji. Akceptowane wartości: true lub false. |
Zmienne dla wdrożenia ręcznego¶
| Nazwa | Obowiązkowa | Wartość domyślna | Komentarz |
|---|---|---|---|
ENV_GW_CERT_NAME |
TAK | Używana do połączenia z konfiguracją ręczną. Nazwa pliku certyfikatu do połączenia z SSL Router. |
|
ENV_GW_CERT_PASSWORD |
TAK | Używana do połączenia z konfiguracją ręczną. Hasło pliku certyfikatu do połączenia z SSL Router. |
|
ENV_SSL_ROUTER_IP |
TAK | Używane do połączenia z konfiguracją ręczną. Adres IP lub nazwa DNS SSL Router, z którym połączy się HTML5 Gateway. |
|
ENV_SSL_ROUTER_PORT |
NIE | 443 |
Używane do połączenia z konfiguracją ręczną. Port SSL Router, z którym połączy się HTML5 Gateway. |
Różne zmienne¶
| Nazwa | Obowiązkowa | Wartość domyślna | Komentarz |
|---|---|---|---|
ENV_DISABLE_RSYSLOG |
NIE | false |
Wyłączenie usługi rsyslog.Dozwolone wartości: true lub false. |
Wolumeny¶
| Wolumen | Komentarz |
|---|---|
/etc/ipdiva/ |
Wolumin konfiguracji HTML5 Gateway. Zalecamy zamontowanie go na wolumenie nazwanym lub w systemie plików maszyny hosta. |
/opt/certificates/ |
Wolumin zawierający certyfikat lub certyfikaty HTML5 Gateway przy konfiguracji bez pairingu. |
/var/log/ |
Wolumin zawierający logi HTML5 Gateway. |
Porty¶
| Port | Komentarz |
|---|---|
8080 |
Port nasłuchu usługi HTML5. |
Wdrożenie HTML5 Gateway Docker¶
Wdrożenie z pairing¶
Wymagania wstępne
Przed wdrożeniem HTML5 Gateway Docker musisz uzyskać token pairingu.
Opisane poniżej wdrożenie wykorzystuje wszystkie dostępne wolumeny (poza /opt/certificates/, który w tym kontekście nie jest przydatny) i udostępnia wszystkie porty.
Woluminy zostaną zamontowane w systemie plików maszyny hosta w lokalizacji HTML5_GATEWAY_REP. Wewnątrz tej lokalizacji znajdują się następujące podkatalogi:
- config
- log
Możesz dostosować zmienne poniższych poleceń:
| Wartość dostosowana | Zmienna | Komentarz |
|---|---|---|
DOCKER_NAME |
Nazwa kontenera Docker. | |
HTML5_GATEWAY_REP |
Lokalizacja w systemie plików, w której zostaną zamontowane woluminy. | |
ENV_MEDIATION_VALUE |
Wartość zmiennej środowiskowej ENV_MEDIATION. |
|
ENV_TOKEN_VALUE |
Wartość zmiennej środowiskowej ENV_TOKEN. |
|
ENV_NO_CHECK_CERT_VALUE |
Wartość zmiennej środowiskowej ENV_NO_CHECK_CERT. |
Utwórz w systemie plików strukturę katalogów wymaganą do zamontowania wolumenów:
1 2 | |
Na koniec uruchom nowy kontener:
1 2 3 4 5 6 7 8 | |
Logi kontenera można wyświetlić za pomocą poniższego polecenia:
1 | |
Wdrożenie ręczne¶
Wymagania wstępne
Przed wdrożeniem HTML5 Gateway Docker musisz mieć certyfikat wymagany dla HTML5 Gateway.
Opisane poniżej wdrożenie wykorzystuje wszystkie dostępne wolumeny i udostępnia wszystkie porty.
Wolumeny zostaną zamontowane w systemie plików maszyny hosta w lokalizacji MANUAL_REP. W tej lokalizacji znajdują się następujące podkatalogi:
- config
- log
- certificates
Możesz dostosować zmienne poniższych poleceń:
| Wartość dostosowana | Zmienna | Komentarz |
|---|---|---|
MANUAL_NAME |
Nazwa kontenera Docker. | |
MANUAL_REP |
Lokalizacja w systemie plików, w której montowane są wolumeny. | |
ENV_GW_CERT_NAME_VALUE |
Wartość zmiennej środowiskowej ENV_GW_CERT_NAME. |
|
ENV_GW_CERT_PASSWORD_VALUE |
Wartość zmiennej środowiskowej ENV_GW_CERT_PASSWORD. |
|
ENV_SSL_ROUTER_IP_VALUE |
Wartość zmiennej środowiskowej ENV_SSL_ROUTER_IP. |
|
ENV_SSL_ROUTER_PORT_VALUE |
Wartość zmiennej środowiskowej ENV_SSL_ROUTER_PORT. |
Utwórz w systemie plików strukturę katalogów wymaganą do zamontowania wolumenów:
1 2 3 | |
Następnie umieść certyfikaty HTML5 Gateway i usługi nagrywania w MANUAL_REP/certificates.
Na koniec uruchom nowy kontener:
1 2 3 4 5 6 7 8 9 10 | |
Logi kontenera można wyświetlić za pomocą poniższego polecenia:
1 | |
Konfiguracja Mediation Controller¶
Aby nowy HTML5 Gateway Docker był sprawny, trzeba jeszcze skonfigurować serwer Mediation Controller przez dostęp SSH lub konsolowy z uprawnieniami root.
Ta ostatnia konfiguracja jest wymagana, aby Mediation Controller mógł komunikować się z usługą HTML5.
Ta konfiguracja zależy jednak od lokalizacji HTML5 Gateway Docker:
Schemat ogólny wygląda następująco:
flowchart LR
subgraph DMZ
direction TB
HTML5(HTML5 Gateway Docker)
MED(Mediation Controller)
end
subgraph LAN
GW(Edge Gateway)
end
MED -.-> |Połączenie z usługą HTML5 ; TCP 8080| HTML5
HTML5 --> |TLS Tunnel| MED
MED ~~~ GW
GW --> |TLS Tunnel| MED
GW ~~~ MED
linkStyle 0 stroke:#d22,color;
W tym kontekście trzeba będzie dodać podane poniżej informacje do pliku /etc/ipdiva/httpd/commonParameters.extra.conf lub utworzyć ten plik.
Ustawienia można dostosować:
| Wartość dostosowana | Zmienna | Komentarz |
|---|---|---|
HTML5_URL_DMZ |
URL skonfigurowany podczas deklarowania HTML5 Gateway w konsoli administracyjnej. | |
HTML5_IP_DMZ |
Nazwa DNS lub adres IP serwera Docker, na którym działa HTML5 Gateway Docker. | |
HTML5_PORT_DMZ |
Port publikowany przez serwer Docker dla HTML5 Gateway Docker. |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Schemat ogólny wygląda następująco:
flowchart LR
subgraph DMZ
direction TB
MED(Mediation Controller)
end
subgraph LAN
HTML5(HTML5 Gateway Docker)
GW(Edge Gateway)
end
MED -.- | Połączenie z usługą HTML5 ; przez tunel TLS| GW -.-> |Połączenie z usługą HTML5 ; TCP 8080| HTML5
HTML5 --> |TLS Tunnel| MED
GW --> |TLS Tunnel| MED
linkStyle 0,1 stroke:#d22,color;
W tym kontekście trzeba będzie dodać podane poniżej informacje do pliku /etc/ipdiva/httpd/commonParameters.extra.conf lub utworzyć ten plik.
Ustawienia można dostosować:
| Wartość dostosowana | Zmienna | Komentarz |
|---|---|---|
HTML5_URL_LAN |
URL skonfigurowany podczas deklarowania HTML5 Gateway w konsoli administracyjnej. | |
GW_NAME_LAN |
Nazwa Edge Gateway używanego do połączenia z usługą HTML5. Znak kreski pionowej na końcu wiersza musi zostać zachowany. | |
ORGANIZATION_NAME_LAN |
Nazwa organizacji, z którą łączy się Edge Gateway. | |
HTML5_IP_LAN |
Nazwa DNS lub adres IP serwera Docker, na którym działa HTML5 Gateway Docker. | |
HTML5_PORT_LAN |
Port publikowany przez serwer Docker dla HTML5 Gateway Docker. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Wskazówka
Tę konfigurację można też zastosować w następującej sytuacji, w której Edge Gateway Docker i HTML5 Gateway Docker działają w tej samej sieci 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 -.- | Połączenie z usługą HTML5 ; przez tunel TLS| GW -.-> |Połączenie z usługą HTML5 ; TCP 8080 przez sieć Docker| HTML5
HTML5 --> |TLS Tunnel| MED
GW --> |TLS Tunnel| MED
linkStyle 0,1 stroke:#d22,color;
Przykład
W tym przykładzie wdrożymy Edge Gateway i HTML5 Gateway na tym samym serwerze Docker.
Infrastruktura użyta w przykładzie jest następująca:
- Serwer Mediation Controller
- Adres IP webowy:
10.0.10.10 - Nazwa organizacji:
my-organization-name - Token dla Edge Gateway:
YJ5N-JN05-N5LS-N26H-7JHA-HZ9R-BGJF-MAVH - Token dla HTML5 Gateway:
ATCW-OMVR-0RY4-LW1M-D9G9-H5VF-WPX5-YCXF - URL dostępu do usługi HTML5:
HTML5_DOCKER
- Adres IP webowy:
- Serwer Docker
- Nazwa sieci Docker:
cyberelements-cleanroom-network - Edge Gateway
- Nazwa:
my-edge-gateway-docker - Lokalizacja główna w systemie plików:
/opt/my-edge-gateway-docker
- Nazwa:
- HTML5 Gateway
- Nazwa:
my-html5-gateway-docker - Lokalizacja główna w systemie plików:
/opt/my-html5-gateway-docker
- Nazwa:
- Nazwa sieci Docker:
Najpierw na serwerze Docker musisz utworzyć strukturę katalogów do montowania woluminów Docker:
1 2 3 4 5 6 | |
Następnie utwórz sieć Docker typu bridge, aby oba kontenery mogły się ze sobą komunikować:
1 | |
Następnie uruchom kontener Edge Gateway. Zwróć uwagę, że w przykładzie połączenie jest nawiązywane przez pairing, z dostępem do Mediation Controller przez jego adres IP i bez sprawdzania certyfikatu. Dodatkowo dodano parametr --network, aby wskazać użycie wcześniej utworzonej sieci Docker:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Następnie uruchom kontener HTML5 Gateway. Zwróć uwagę, że w przykładzie połączenie jest nawiązywane przez pairing, z dostępem do Mediation Controller przez jego adres IP i bez sprawdzania certyfikatu. Dodatkowo dodano parametr --network, aby wskazać użycie wcześniej utworzonej sieci Docker, a ponieważ dostęp do usługi HTML5 będzie odbywał się przez sieć Docker, publikowanie portu 8080 nie jest konieczne:
1 2 3 4 5 6 7 8 | |
Na koniec trzeba skonfigurować plik /etc/ipdiva/httpd/commonParameters.extra.conf na serwerze lub serwerach Mediation Controller. Należy dodać następującą sekcję:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Przed zastosowaniem nowej konfiguracji musisz sprawdzić, czy nie powoduje ona blokującego błędu serwera webowego Apache2.
Aby to zrobić, wykonaj następujące polecenie:
1 | |
Jeśli odpowiedzią jest Syntax OK, zmiany można zastosować poniższym poleceniem. W przeciwnym razie sprawdź konfigurację swojego pliku /etc/ipdiva/httpd/commonParameters.extra.conf.
1 | |