MID-Server-Docker-Image für Linux erstellen

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 11 Minuten Lesedauer
  • Stellen Sie containerisierte MID-Server unter Linux bereit, indem Sie ein Docker-Image mit den bereitgestellten Rezepten erstellen. Der containerisierte MID-Server verwendet ein Docker-Image des MID-Servers, mit dem Sie MID-Server schnell skalieren können.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Setup-Indikator für KonfigurationsphaseSicherstellen, dass vom MID Server eine Verbindung zu Elementen inner- und außerhalb Ihres Netzwerks hergestellt werden kannMID Server auf einem Linux- oder Windows-Host herunterladen und installierenMID Server konfigurierenSicherheit des MID Servers konfigurierenSicherstellen, dass vom MID Server eine Verbindung zu Elementen inner- und außerhalb Ihres Netzwerks hergestellt werden kannMID Server auf einem Linux- oder Windows-Host herunterladen und installierenMID Server konfigurierenSicherheit des MID Servers konfigurieren

    Voraussetzungen:

    Der Host muss verwenden Docker-Engine und Befehlszeilenschnittstelle (CLI) 20.10.4 oder höher .

    Aktualisieren Sie die Bibliothek auf die neueste verfügbare Version oder mindestens die höchste Version mit einer Sicherheitskorrektur. Wenn identifizierte Probleme Teil einer transitiven Abhängigkeit sind, suchen Sie nach einer Version der abhängigen Bibliothek, die eine neuere transitive Version enthält. Wenn die transitive Abhängigkeit nicht durch ein Upgrade der abhängigen Bibliothek aktualisiert werden kann, sollten Sie erwägen, die Abhängigkeit auszuschließen und direkt eine sichere Version einzubeziehen.

    Hinweis:
    Überprüfen Sie die Docker-Verfügbarkeit, indem Sie den Docker-Versionsbefehl als Administrator ausführen. Siehe Dokumentation zum Docker-Versionsbefehl Weitere Informationen finden Sie unter .

    Prozedur

    1. Laden Sie die Linux Docker-Rezept-ZIP-Datei von der Downloadseite des MID-Servers herunter, und überprüfen Sie ihre Signatur.
      Weitere Informationen zur Downloadseite des MID-Servers und zur Signaturverifizierung finden Sie unter MID-Server-Dateien herunterladen .
    2. Entpacken Sie die ZIP-Datei in einen Ordner.
    3. Wahlweise: Sie können das aktuelle Verzeichnis in den neuen Ordner ändern.
    4. Um ein Image zu erstellen, führen Sie den Build-Befehl aus: > Docker-Build-<path-to-docker-recipe> [ --Tag <docker-tag> ]

      Weitere Informationen zum Befehl finden Sie unter Dokumentation zum Docker-Build-Befehl . Der Pfad zur Docker-Datei kann ein relativer Pfad oder das aktuelle Verzeichnis sein, wenn sich die Datei im Docker-Rezeptverzeichnis befindet.

      Das Standard-Image-Tag wird standardmäßig in der .env-Datei mit bereitgestellt DOCKER_TAG Parameter. Sie können diesen Parameter exportieren, bevor Sie einen Docker-Befehl ausführen, indem Sie den folgenden Befehl ausführen: > $(grep DOCKER_TAG .env) exportieren . Sie können ersetzen <docker-tag> Mit DOCKER_TAG Wert in allen folgenden Befehlen.

      Der Build-Befehl verwendet die folgenden Build-Argumente:

      Eigenschaft Beschreibung
      MID_INSTALLATION_URL Der Link zum Herunterladen von MID-Server Installationsdatei. Standardmäßig ist er auf den Download-Link für die ZIP-Datei für die Linux 64-Bit-Installation festgelegt, die auf bereitgestellt wird MID-Server Download-Seite.
      MID_INSTALLATION_FILE Der Name eines lokalen MID-Server Installationsdatei. Der Standardwert ist leer. Wenn dieser Parameter nicht leer ist, verwendet das Rezept die lokale Datei, anstatt sie vom Installationsserver herunterzuladen. Dieser Parameter verwendet nur den Dateinamen, nicht den vollständigen Pfad. Vor dem Build muss die lokale Datei in kopiert werden Asset/ Unterordner des Rezeptverzeichnisses. MID-Server Releases vor Rome Werden nicht unterstützt.

      Beispiel: > Docker Build <path-to-dockerfile> --build-arg MID_INSTALLATION_FILE=<mid.installation.file.name>) --Tag <docker-tag>

      MID_SIGNATURE_VERIFICATION Die Signatur von MID-Server Installationsdatei muss verifiziert werden. Der Standardwert ist „WAHR“. Bei „WAHR“ überprüft der Build-Prozess immer die digitale Signatur des MID-Server Installationsdatei, ob sie vom Remote-Server oder einer lokalen Datei heruntergeladen wird. Andernfalls wird die Signaturverifizierung übersprungen.

      Beispiel: > Docker-Build-<path-to-dockerfile> --build-arg MID_SIGNATURE_VERIFICATION=false --Tag-<docker-tag>

      USER_ID UND GROUP_ID

      Wenn nicht angegeben, erstellt Docker standardmäßig eine   MID-Server Anwender mit Anwender-ID = 1001 und Gruppen-ID = 1001. Sie können eine anwenderdefinierte Anwender-ID und Gruppen-ID an einen Container übergeben, indem Sie die    Build-Argumente USER_ID und GROUP_ID verwenden. Docker erstellt einen Anwender für  MID-Server Mit der angegebenen Anwender-ID und Gruppen-ID Innerhalb des Containerbilds alle Dateien unter MID-Server Installationsordner sind Eigentum dieses Anwenders und der Stammgruppe (ID=0).

      Wenn das Image auf der Kubernetes-Plattform bereitgestellt wird, dies MID-Server Anwender wird der Containeranwender, der den MID-Server ausführt.

      Wenn das Image auf einer OpenShift- Plattform bereitgestellt wird, kann OpenShift eine beliebige Anwender-ID ohne Administrator als Container-Anwender zuweisen, der den ausführt MID-Server. Dieser Anwender gehört jedoch immer zur Stammgruppe.

      In beiden Fällen hat der Containeranwender vollständigen Zugriff auf MID-Server Dateien. Auf diese Weise kann dasselbe Image sowohl in Kubernetes als auch in OpenShift bereitgestellt werden.

    5. Wahlweise: Nachdem das Image erfolgreich erstellt wurde, können Sie das Image auflisten, das mit dem folgenden Befehl erstellt wurde: > Docker-Image LS

    Nächste Maßnahme

    Um Speicherplatz zu sparen, führen Sie die folgenden Befehle aus, um die freistehenden Bilder zu entfernen, wenn nicht verwendete Bilder oder Zwischenbilder vorhanden sind:
    $ docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
    Zum Beispiel vor dem Entfernen von freistehenden Bildern der Befehl docker-Image-LS Zeigt möglicherweise etwas Ähnliches an:
    REPOSITORY                                TAG                                           IMAGE ID       CREATED              SIZE
    mid                                       trackdiscocopper-10-09-2020_10-14-2021_2200   4542b6ab34af   21 seconds ago       1.01GB
    <none>                                    <none>                                        1cdae087a970   About a minute ago   1.38GB
    
    Nachdem Sie die freistehenden Bilder entfernt haben, den Befehl docker-Image-LS Zeigt Folgendes an:
    REPOSITORY                                TAG                                           IMAGE ID       CREATED              SIZE
    mid                                       trackdiscocopper-10-09-2020_10-14-2021_2200   4542b6ab34af   About a minute ago   1.01GB
    

    Starten Sie den containerisierten MID-Server

    Der containerisierte MID-Server verwendet ein Docker-Image des MID-Servers, mit dem Sie MID-Server schnell skalieren können. MID-Server werden mit Orchestration-Tools wie Docker Swarm bereitgestellt.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Voraussetzungen:

    Prozedur

    1. Sobald das Image verfügbar ist, starten Sie den neuen MID-Server mit dem Docker-Befehl „Ausführen“, und geben Sie Optionen für eine Umgebungsdatei oder eine Umgebungsvariable an: docker-Ausführung –-env-file <env_file_name_here> <Docker_Tag oder image_ID>
      Hinweis:
      Übergeben Sie mit diesem Befehl keine vertraulichen Daten, da Sicherheitsschwachstellen auftreten können. Um vertrauliche Daten zu übergeben, verwenden Sie die Verfahren Übergeben Sie vertrauliche Daten an einen containerisierten MID-Server mit Docker-Geheimnissen Und Übergeben Sie vertrauliche Daten an einen containerisierten MID-Server mit Kubernetes-Geheimnissen.

      Weitere Informationen finden Sie auf den Docker-Dokumentationsseiten für Der LS-Befehl des Docker-Images , Der Docker-Ausführungsbefehl , Und Gibt Optionen für eine Umgebungsdatei oder eine Umgebungsvariable an . Die Umgebungsdatei ist eine einfache Textdatei im Format Name=Wert. Wenn eine Variable sowohl in der Umgebungsdatei als auch in angegeben ist --env Option hat die in der Befehlszeile definierte Variable Vorrang.

      Bereitstellungsanforderungen sind zwar die empfohlene Methode zum Starten containerisierter MID-Server, können aber alternativ mit Umgebungsvariablen konfiguriert werden. Wenn der Container zum ersten Mal gestartet wird, verwendet das Initialisierungsskript die Umgebungsvariablen und konfiguriert die MID-Server-Anwendung mit den folgenden Umgebungsvariablen:
      MID_INSTANCE_URL
      Diese Variable legt den Konfigurationsparameter „url“ fest.
      MID_INSTANCE_USERNAME
      Diese Variable legt den Konfigurationsparameter „mid.instance.username’ fest.
      MID_INSTANCE_PASSWORD
      Diese Variable legt den Konfigurationsparameter „mid.instance.password’ fest.
      MID_SERVER_NAME
      Diese Variable legt den Konfigurationsparameter „Name“ fest.
      MID_PROXY_HOST
      Diese Variable legt den Konfigurationsparameter „mid.proxy.host’ fest. Diese Variable ist nicht obligatorisch und nur erforderlich, wenn ein Proxy eingerichtet wird.
      MID_PROXY_PORT
      Diese Variable legt den Konfigurationsparameter „mid.proxy.port’ fest.
      MID_PROXY_USERNAME
      Diese Variable legt den Konfigurationsparameter „mid.proxy.username’ fest.
      MID_PROXY_PASSWORD
      Diese Variable legt den Konfigurationsparameter „mid.proxy.password’ fest.
      MID_SECRETS_FILE
      Diese Variable gibt den vollständigen geheimen Dateinamen an, der vertrauliche Daten wie Passwörter oder Zertifikat enthält.
      MID_MUTUAL_AUTH_PEM_FILE
      Diese Variable gibt den vollständigen Dateinamen der Client-Zertifikatdatei an, die für das Setup der automatischen Validierung verwendet wird.
    2. Wahlweise: Um eine Liste von Containern anzuzeigen, führen Sie den Docker-Container-LS-Befehl aus: docker-Container LS [-a]

    Übergeben Sie vertrauliche Daten an einen containerisierten MID-Server mit Docker-Geheimnissen

    Sie können containerisierte MID-Server mit Konfigurationsparametern konfigurieren, die über Umgebungsvariablen oder geheime Dateien übergeben werden.

    Vorbereitungen

    Erforderliche Rolle: Docker Swarm-Administrator

    Warum und wann dieser Vorgang ausgeführt wird

    Sie können vertrauliche Daten, z. B. Passwörter oder Zertifikate, mit an einen containerisierten MID-Server übergeben Docker-Geheimnis . Setup und Start Docker-Swarm Bevor Sie dieses Verfahren verwenden.

    Stellen Sie beim Erstellen von Bereitstellungen sicher, dass die Replikate auf 1 festgelegt sind.

    Prozedur

    1. Platzieren Sie die sensiblen Daten in mid-secrets.properties
    2. Erstellen Sie ein Docker-Geheimnis mit dem Befehl zum Erstellen des Docker-Geheimnisses: docker-Geheimnis MID-Secrets erstellen mid-secrets.properties

      Der erste Mid-Geheimnisse Stellt das Geheimnis im Docker-Swarm dar, während das zweite mid-secrets.properties Parameter stellt den Dateipfad zum Lesen des Geheimnisses im Dateisystem des Hostcomputers dar. Sie können alle erstellten Geheimnisse auflisten, indem Sie den Befehl ausführen docker-Geheimnisliste .

      Weitere Informationen zum geheimen Docker-Befehl finden Sie unter Die geheime Docker-Dokumentation .

    3. Aktualisieren Sie MID_SECRETS_FILE Umgebungsvariable mit dem Pfad zur geheimen Datei im Container.
      Der Standardpfad für Docker-Swarm-Geheimnisse unter Linux ist /Run/Secrets/mid-secrets.properties .
    4. Stellen Sie den MID-Server-Image-Container mit dem Befehl zum Erstellen des Docker-Service in Swarm bereit: docker-Service erstellen --Name MID-Service --Secret mid-secrets.properties --env-file Mid.env <Docker-Tag oder image-ID>

      Stellen Sie sicher, dass --Secret-Kennzeichnung Wird bereitgestellt, damit der Containerservice den angegebenen Geheimnissen zugeordnet werden kann.

    Übergeben Sie vertrauliche Daten an einen gegenseitig authentifizierten containerisierten MID-Server mit Docker-Geheimnissen

    Sie können containerisierte MID-Server mit Konfigurationsparametern konfigurieren, die über Umgebungsvariablen oder geheime Dateien übergeben werden.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Erforderliche Rolle: Docker Swarm-Administrator

    Warum und wann dieser Vorgang ausgeführt wird

    Wenn Zertifikatbasierte Authentifizierung Ist auf aktiviert Instanz , Der MID-Server kann für konfiguriert werden automatische Validierung mit einem Client-Zertifikat für gegenseitige Authentifizierung (PEM-Datei). Dies kann durch Festlegen des vollständigen Pfads zur PEM-Zertifikatdatei im Container mit erfolgen MID_MUTUAL_AUTH_PEM_FILE Umgebungsvariable. Sie können beispielsweise die Variable auf aktualisieren MID_MUTUAL_AUTH_PEM_FILE= /Run/secrets/certificate.pem In Mid.Umgebung Datei.

    Sie können die PEM-Zertifikatdatei mit Docker oder an einen Container übergeben Kubernetes Geheimnis. Im Folgenden finden Sie einen Beispielbefehl zum Übergeben der PEM-Zertifikatdatei an einen Container: docker-Service erstellen --Name MID-Service --Secret mid-secrets.properties --Secret <certificate-secret-name> --env-file Mid.env <Docker-Tag oder image-ID>

    Das gegenseitige PEM-Zertifikat wird während der Initialisierung auf dem MID-Server installiert. MID-Server stellt dann eine Verbindung zur Instanz her und validiert automatisch. Wenn der MID-Server eine Verbindung mit der Instanz herstellt und die gegenseitige Authentifizierung erfolgreich aktiviert ist, werden Sie M Beobachten Sie einige der folgenden Einträge im MID-Agent-Protokoll:

    • Anwenderdefiniertes Zertifikat wurde im MID-Schlüsselspeicher installiert
    • MID für die Verwendung der gegenseitigen Authentifizierung konfiguriert

    Prozedur

    1. Bereiten Sie das PEM-Paket für die gegenseitige Authentifizierung vor.
    2. Erstellen Sie ein Docker-Geheimnis mit dem Befehl zum Erstellen des Docker-Geheimnisses: docker-Secret – Mutual-auth-Secret-<mutual-auth-pem-file-on-local-filesystem> erstellen.

      Sie können alle erstellten Geheimnisse auflisten, indem Sie den Befehl ausführen docker-Geheimnisliste .

    3. Aktualisieren Sie MID_MUTUAL_AUTH_PEM_FILE Umgebungsvariable mit dem Pfad zur geheimen Datei im Container.

      Der Standardpfad für Docker-Swarm-Geheimnisse unter Linux ist /Run/Secrets/<mutual-auth-pem-file-name> .

    4. Stellen Sie den MID-Server-Image-Container mit dem Befehl „Erstellen“ des Docker-Service in Swarm bereit: d ocker-Service erstellen --Name MID-Service --Secret Mutual-auth-Secret --env-file Mid.env <Docker-Tag oder image-ID>

      Stellen Sie sicher, dass --Secret Kennzeichnung wird angegeben, damit der Containerservice den angegebenen Geheimnissen zugeordnet werden kann.

    5. Stellen Sie den containerisierten MID-Server auf dem Pod mit bereit Bereitstellung.yml Und führen Sie den folgenden Befehl aus: Kubectl create -f Deployment.yml

    Übergeben Sie vertrauliche Daten an einen containerisierten MID-Server mit Kubernetes-Geheimnissen

    Sie können containerisierte MID-Server mit Konfigurationsparametern konfigurieren, die über Umgebungsvariablen oder geheime Dateien übergeben werden.

    Vorbereitungen

    Erforderliche Rolle: Kubernetest-Administrator

    Setup und Start Kubernertes-Cluster Bevor Sie dieses Verfahren verwenden. Weitere Informationen zu Kubernetes-Geheimnissen finden Sie unter Dokumentation zu Kubernertes-Geheimnissen .

    Hinweis:
    Kubernetes funktioniert nicht direkt mit einem lokalen Image. Laden Sie das MID-Server-Image in eine öffentliche Registrierung hoch, oder richten Sie eine lokale Registrierung ein. Siehe Die offizielle Docker-Anweisung Beim Erstellen einer Docker-Registrierung.

    Stellen Sie beim Erstellen von Bereitstellungen sicher, dass die Replikate auf 1 festgelegt sind.

    Prozedur

    1. Platzieren Sie die sensiblen Daten entsprechend in mid-secrets.properties.
    2. Erstellen Sie ein Kubernetes-Geheimnis mit dem folgenden Befehl: Kubectl erstellt ein generisches MID-Secret --from-file=mid-secrets.properties
    3. Wahlweise: Sie können alle erstellten Geheimnisse auflisten, indem Sie den folgenden Befehl ausführen: Kubectl – Geheimnisse abrufen
    4. Aktualisieren Sie MID_SECRETS_FILE Umgebungsvariable mit dem Pfad zur geheimen Datei im Container.
    5. Erstellen Sie eine Bereitstellung mit dem folgenden Beispiel -YML- Inhalt:
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: basic-example
      spec:
        selector:
          matchLabels:
            app: MIDServerManagement
            provider: ServiceNow
        replicas: 1
        template:
          metadata:
            labels:
              app: MIDServerManagement
              provider: ServiceNow
          spec:
            containers:
              - name: basic-example-container
                imagePullPolicy: IfNotPresent
                image: "mid:imageTag"
                env:
                  - name: MID_INSTANCE_URL
                    value: " https://exampleinstance.service-now.com/"
                  - name: MID_INSTANCE_USERNAME
                    value: "mid_server_user_name”
                  - name: MID_SECRETS_FILE
                    value: "/opt/snc_mid_server/secrets/mid-secrets.properties“
                  - name: MID_SERVER_NAME
                    value: "Basic-Example-MID"
                volumeMounts:
                  - mountPath: "/opt/snc_mid_server/secrets"
                    name: "mid-mount-secret"
                    readOnly: true
            volumes:
            - name: "mid-mount-secret"
              secret:
                secretName: "mid-secret"
      
      Hinweis:
      Es gibt viele Möglichkeiten, eine Bereitstellung oder einen Pod zu erstellen. Weitere Informationen finden Sie unter Kubernetes-Bereitstellungsanweisungen .  
    6. Stellen Sie den containerisierten MID-Server mit „Deployment.yml“ auf dem Pod bereit, und führen Sie den folgenden Befehl aus: Kubectl create -f Deployment.yml

    Übergeben Sie vertrauliche Daten an einen gegenseitig authentifizierten containerisierten MID-Server mit Kubernetes-Geheimnissen

    Sie können containerisierte MID-Server mit Konfigurationsparametern konfigurieren, die über Umgebungsvariablen oder geheime Dateien übergeben werden.

    Vorbereitungen

    Erforderliche Rolle: Kubernetest-Administrator

    Voraussetzungen:

    Wenn Zertifikatbasierte Authentifizierung Ist auf aktiviert Instanz , Der MID-Server kann für konfiguriert werden automatische Validierung mit einem Client-Zertifikat für gegenseitige Authentifizierung (PEM-Datei). Dies kann durch Festlegen des vollständigen Pfads zur PEM-Zertifikatdatei im Container mit erfolgen MID_MUTUAL_AUTH_PEM_FILE Umgebungsvariable. Sie können die PEM-Zertifikatdatei mit an einen Container übergeben Kubernetes Geheimnis.

    Das gegenseitige PEM-Zertifikat wird während der Initialisierung auf dem MID-Server installiert. MID-Server stellt dann eine Verbindung zur Instanz her und validiert automatisch. Wenn der MID-Server eine Verbindung mit der Instanz herstellt und die gegenseitige Authentifizierung erfolgreich aktiviert ist, werden Sie M Beobachten Sie einige der folgenden Einträge im MID-Agent-Protokoll:

    • Anwenderdefiniertes Zertifikat wurde im MID-Schlüsselspeicher installiert
    • MID für die Verwendung der gegenseitigen Authentifizierung konfiguriert

    Prozedur

    1. Bereiten Sie das PEM-Paket für die gegenseitige Authentifizierung vor.
    2. Erstellen Sie ein Kubernetes-Geheimnis mit dem folgenden Befehl: Kubectl erstellt ein generisches Geheimnis für gegenseitige Authentifizierung – Secret --from-file=<mutual-auth-pem-file>
    3. Wahlweise: Sie können alle erstellten Geheimnisse überprüfen, indem Sie den folgenden Befehl ausführen: Kubectl – Geheimnisse abrufen
    4. Aktualisieren Sie MID_MUTUAL_AUTH_PEM_FILE Umgebungsvariable mit dem Pfad zur geheimen Datei im Container.
    5. Erstellen Sie eine Bereitstellung mit dem folgenden Beispiel-YML-Inhalt:
      6.	apiVersion: apps/v1
      7.	kind: Deployment
      8.	metadata:
      9.	  name: mutual-auth-example
      10.	spec:
      11.	  selector:
      12.	    matchLabels:
      13.	      app: MIDServerManagement
      14.	      provider: ServiceNow
      15.	  replicas: 1
      16.	  template:
      17.	    metadata:
      18.	      labels:
      19.	        app: MIDServerManagement
      20.	        provider: ServiceNow
      21.	    spec:
      22.	      containers:
      23.	        - name: mutual-auth -container
      24.	          imagePullPolicy: IfNotPresent
      25.	          image: "mid:imageTag”
      26.	          env:
      27.	            - name: MID_INSTANCE_URL
      28.	              value: "https://exampleinstance.service-now.com/"
      29.	            - name: MID_INSTANCE_USERNAME
      30.	              value: "mid_server_user_name”
      31.	            - name: MID_SERVER_NAME
      32.	              value: "Mutual-Auth-Deployment-MID"
      33.	            - name: MID_MUTUAL_AUTH_PEM_FILE
      34.	              value: "/opt/snc_mid_server/mutual-auth/yourpemfile.pem"
      35.	          volumeMounts:
      36.	            - mountPath: "/opt/snc_mid_server/mutual-auth"
      37.	              name: "mid-mount-mutual-auth"
      38.	              readOnly: true
      39.	      volumes:
      40.	      - name: "mid-mount-mutual-auth"
      41.	        secret:
      42.	          secretName: "mid-mutual-auth-secret"
      
    6. Stellen Sie den containerisierten MID-Server auf dem Pod mit bereit Bereitstellung.yml Und führen Sie den folgenden Befehl aus: Kubectl create -f Deployment.yml