Distribuire un gateway in Windows o Linux per la soluzione preconfigurata di connected factoryDeploy a gateway on Windows or Linux for the connected factory preconfigured solution

Il software necessario per distribuire un gateway nella soluzione preconfigurata del factory connesso presenta due componenti:The software required to deploy a gateway for the connected factory preconfigured solution has two components:

  • Il proxy OPC stabilisce una connessione con l'hub IoT.The OPC Proxy establishes a connection to IoT Hub. Il proxy OPC attende quindi messaggi di comando e controllo dal browser OPC integrato eseguito nel portale della soluzione di connected factory.The OPC Proxy then waits for command and control messages from the integrated OPC Browser that runs in the connected factory solution portal.
  • Il Server di pubblicazione OPC si connette ai server UA OPC locali esistenti e da qui inoltra i messaggi relativi ai dati di telemetria all'hub IoT.The OPC Publisher connects to existing on-premises OPC UA servers and forwards telemetry messages from them to IoT Hub.

Entrambi i componenti sono open source e disponibili come origine in GitHub e come contenitori di Docker:Both components are open-source and are available as source on GitHub and as Docker containers:

GitHubGitHub DockerHubDockerHub
Server di pubblicazione OPCOPC Publisher Server di pubblicazione OPCOPC Publisher
Proxy OPCOPC Proxy Proxy OPCOPC Proxy

Per questi componenti non è necessario alcun indirizzo IP pubblico o hole nel firewall del gateway.No public-facing IP address or holes in the gateway firewall are required for either component. Il Proxy OPC e il server di pubblicazione OPC usano solo le porte in uscita 443, 5671 e 8883.The OPC Proxy and OPC Publisher use only outbound ports 443, 5671, and 8883.

Le procedure descritte in questo articolo illustrano come distribuire un gateway usando Docker in Windows o Linux.The steps in this article show you how to deploy a gateway using Docker on either Windows or Linux. Il gateway abilita la connettività alla soluzione preconfigurata di connected factory.The gateway enables connectivity to the connected factory preconfigured solution.

Nota

Il software gateway in esecuzione nel contenitore Docker è Azure IoT Edge.The gateway software that runs in the Docker container is Azure IoT Edge.

Distribuzione in WindowsWindows deployment

Nota

Se non si ha ancora un dispositivo gateway, Microsoft consiglia di acquistare un gateway commerciale da uno dei partner.If you don't yet have a gateway device, Microsoft recommends you buy a commercial gateway from one of their partners. Vedere il catalogo dei dispositivi Azure per IoT per un elenco di dispositivi gateway compatibili con la soluzione di connected factory.Visit the [Azure IoT device catalog] for a list of gateway devices compatible with the connected factory solution. Seguire le istruzioni fornite con il dispositivo per configurare il gateway.Follow the instructions that come with the device to set up the gateway. In alternativa, usare le istruzioni seguenti per configurare manualmente uno dei gateway esistenti.Alternatively, use the following instructions to manually set up one of your existing gateways.

Installare DockerInstall Docker

Installare Docker per Windows nel dispositivo gateway basato su Windows.Install [Docker for Windows] on your Windows-based gateway device. Durante la configurazione di Docker per Windows, selezionare un'unità sul computer host da condividere con Docker.During Windows Docker setup, select a drive on your host machine to share with Docker. Lo screenshot seguente illustra la condivisione dell'unità D nel sistema Windows:The following screenshot shows sharing the D drive on your Windows system:

Installare Docker

Creare quindi una cartella denominata docker nella radice dell'unità condivisa.Then create a folder called docker in the root of the shared drive. È anche possibile eseguire questo passaggio dal menu Settings (Impostazioni) dopo avere installato Docker.You can also perform this step after installing docker from the Settings menu.

Configurare il gatewayConfigure the gateway

  1. È necessaria la stringa di connessione iothubowner della distribuzione della soluzione di connected factory di Azure IoT Suite per completare la distribuzione del gateway.You need the iothubowner connection string of your Azure IoT Suite connected factory deployment to complete the gateway deployment. Nel portale di Azure passare all'hub IoT nel gruppo di risorse creato quando si è distribuita la soluzione di connected factory.In the [Azure portal], navigate to your IoT Hub in the resource group created when you deployed the connected factory solution. Fare clic su Criteri di accesso condiviso per accedere alla stringa di connessione iothubowner:Click Shared access policies to access the iothubowner connection string:

    Trovare la stringa di connessione dell'hub IoT

    Copiare il valore di Stringa di connessione - chiave primaria.Copy the Connection string--primary key value.

  2. Configurare il gateway per l'hub IoT eseguendo i due moduli del gateway una sola volta da un prompt dei comandi con:Configure the gateway for your IoT Hub by running the two gateway modules once from a command prompt with:

    docker run -it --rm -h <ApplicationName> -v //D/docker:/build/src/GatewayApp.NetCore/bin/Debug/netcoreapp1.0/publish/CertificateStores -v //D/docker:/root/.dotnet/corefx/cryptography/x509stores microsoft/iot-gateway-opc-ua:2.1.1 <ApplicationName> "<IoTHubOwnerConnectionString>"

    docker run -it --rm -v //D/docker:/mapped microsoft/iot-gateway-opc-ua-proxy:1.0.2 -i -c "<IoTHubOwnerConnectionString>" -D /mapped/cs.db

    • <ApplicationName> è il nome da dare al server di pubblicazione OPC UA nel formato publisher.<nome di dominio completo>.<ApplicationName> is the name to give to your OPC UA Publisher in the format publisher.<your fully qualified domain name>. Ad esempio, se la rete factory viene chiamata myfactorynetwork.com, il valore di ApplicationName è publisher.myfactorynetwork.com.For example, if your factory network is called myfactorynetwork.com, the ApplicationName value is publisher.myfactorynetwork.com.
    • <IoTHubOwnerConnectionString> è la stringa di connessione iothubowner copiata nel passaggio precedente.<IoTHubOwnerConnectionString> is the iothubowner connection string you copied in the previous step. Questa stringa di connessione viene usata solo in questo passaggio e non è necessaria nei successivi.This connection string is only used in this step, you don’t need it in the following steps:

      La cartella D:\docker di cui è stato eseguito il mapping (argomento -v) verrà usata più avanti per rendere permanenti i due certificati X.509 usati dai moduli del gateway.You use the mapped D:\docker folder (the -v argument) later to persist the two X.509 certificates that the gateway modules use.

Eseguire il gatewayRun the gateway

  1. Riavviare il gateway usando i comandi seguenti:Restart the gateway using the following commands:

    docker run -it --rm -h <ApplicationName> --expose 62222 -p 62222:62222 -v //D/docker:/build/src/GatewayApp.NetCore/bin/Debug/netcoreapp1.0/publish/Logs -v //D/docker:/build/src/GatewayApp.NetCore/bin/Debug/netcoreapp1.0/publish/CertificateStores -v //D/docker:/shared -v //D/docker:/root/.dotnet/corefx/cryptography/x509stores -e _GW_PNFP="/shared/publishednodes.JSON" microsoft/iot-gateway-opc-ua:2.1.1 <ApplicationName>

    docker run -it --rm -v //D/docker:/mapped microsoft/iot-gateway-opc-ua-proxy:1.0.2 -D /mapped/cs.db

  2. Per motivi di sicurezza, i due certificati X.509 resi permanenti nella cartella D:\docker contengono la chiave privata.For security reasons, the two X.509 certificates persisted in the D:\docker folder contain the private key. Limitare l'accesso a questa cartella alle credenziali usate per eseguire il contenitore Docker, in genere Administrators.Limit access to this folder to the credentials (typically Administrators) you use to run the Docker container. Fare clic con il pulsante destro del mouse sulla cartella D:\docker, scegliere Properties (Proprietà), quindi Security (Sicurezza) e infine Edit (Modifica).Right-click the D:\docker folder, choose Properties, then Security, and then Edit. Assegnare ad Administrators (Amministratori) il controllo completo e rimuovere tutti gli altri utenti:Give Administrators full control and remove everyone else:

    Concedere autorizzazioni alla condivisione Docker

  3. Verificare la connettività di rete.Verify network connectivity. Al prompt dei comandi immettere il comando ping publisher.<your fully qualified domain name> per effettuare il ping del gateway.From a command prompt, enter the command ping publisher.<your fully qualified domain name> to ping your gateway. Se la destinazione non è raggiungibile, aggiungere l'indirizzo IP e il nome del gateway al file hosts nel gateway.If the destination is unreachable, add the IP address and name of your gateway to the hosts file on your gateway. Il file hosts si trova nella cartella Windows\System32\drivers\etc.The hosts file is located in the Windows\System32\drivers\etc folder.

  4. Provare quindi a connettersi al server di pubblicazione usando un client OPC UA locale in esecuzione nel gateway.Next, try to connect to the publisher using a local OPC UA client running on the gateway. L'URL dell'endpoint OPC UA è opc.tcp://publisher.<your fully qualified domain name>:62222.The OPC UA endpoint URL is opc.tcp://publisher.<your fully qualified domain name>:62222. Se non si ha un client OPC UA, è possibile scaricare e usare un client OPC UA open source.If you don't have an OPC UA client, you can download and use an [open-source OPC UA client].

  5. Dopo avere completato correttamente questi test locali, passare alla pagina Connect your own OPC UA Server (Connetti il server OPC UA) nel portale della soluzione di connected factory.When you have successfully completed these local tests, browse to the Connect your own OPC UA Server page in the connected factory solution portal. Immettere l'URL dell'endpoint del server di pubblicazione (tcp://publisher.<your fully qualified domain name>:62222) e fare clic su Connect (Connetti).Enter the publisher endpoint URL (tcp://publisher.<your fully qualified domain name>:62222) and click Connect. Viene visualizzato un avviso relativo al certificato. Fare clic su Proceed (Continua).You get a certificate warning, then click Proceed. Viene quindi visualizzato un errore che informa che il server di pubblicazione non considera attendibile il client Web UA.Next you get an error that the publisher doesn’t trust the UA Web Client. Per risolvere questo errore, copiare il certificato del client Web UA dalla cartella D:\docker\Rejected Certificates\certs alla cartella D:\docker\UA Applications\certs nel gateway.To resolve this error, copy the UA Web Client certificate from the D:\docker\Rejected Certificates\certs folder to the D:\docker\UA Applications\certs folder on the gateway. Non è necessario riavviare il gateway.You do not need to restart of the gateway. Ripetere questo passaggio.Repeat this step. Ora è possibile connettersi al gateway dal cloud e aggiungere i server OPC UA alla soluzione.You can now connect to the gateway from the cloud, and you are ready to add OPC UA servers to the solution.

Aggiungere i server OPC UAAdd your OPC UA servers

  1. Passare alla pagina Connect your own OPC UA Server (Connetti il server OPC UA) nel portale della soluzione di connected factory.Browse to the Connect your own OPC UA Server page in the connected factory solution portal. Seguire gli stessi passaggi della sezione precedente per stabilire una relazione di trust tra il portale della soluzione di connected factory e il server OPC UA.Follow the same steps as in the preceding section to establish trust between the connected factory portal and the OPC UA server. Questo passaggio stabilisce una relazione di trust reciproco dei certificati dal portale della soluzione di connected factory al server OPC UA e crea una connessione.This step establishes a mutual trust of the certificates from the connected factory portal and the OPC UA server and creates a connection.

  2. Passare all'albero di nodi OPC UA del server OPC UA, fare clic con il pulsante destro del mouse sui nodi OPC e scegliere publish (Pubblica).Browse the OPC UA nodes tree of your OPC UA server, right-click the OPC nodes, and select publish. Perché la pubblicazione possa funzionare in questo modo, il server OPC UA e il server di pubblicazione devono essere nella stessa rete.For publishing to work this way, the OPC UA server and the publisher must be on the same network. In altre parole, se il nome di dominio completo del server di pubblicazione è publisher.mydomain.com, il nome di dominio completo del server OPC UA deve essere, ad esempio, myopcuaserver.mydomain.com. Se la configurazione in uso è diversa, è possibile aggiungere manualmente nodi al file publishesnodes.json presente nella cartella D:\docker.In other words, if the fully qualified domain name of the publisher is publisher.mydomain.com then the fully qualified domain name of the OPC UA server must be, for example, myopcuaserver.mydomain.com. If your setup is different, you can manually add nodes to the publishesnodes.json file found in the D:\docker folder. Il file publishesnodes.json viene generato automaticamente alla prima pubblicazione riuscita di un nodo OPC.The publishesnodes.json file is automatically generated on the first successful publish of an OPC node.

  3. I dati di telemetria ora passano dal dispositivo gateway.Telemetry now flows from the gateway device. È possibile visualizzare i dati di telemetria nella visualizzazione Factory Locations (Posizioni factory) del portale della soluzione di connected factory in New Factory (Nuova factory).You can view the telemetry in the Factory Locations view of the connected factory portal under New Factory.

Distribuzione in LinuxLinux deployment

Nota

Se non si ha ancora un dispositivo gateway, Microsoft consiglia di acquistare un gateway commerciale da uno dei partner.If you don't yet have a gateway device, Microsoft recommends you buy a commercial gateway from one of their partners. Vedere il catalogo dei dispositivi Azure per IoT per un elenco di dispositivi gateway compatibili con la soluzione di connected factory.Visit the [Azure IoT device catalog] for a list of gateway devices compatible with the connected factory solution. Seguire le istruzioni fornite con il dispositivo per configurare il gateway.Follow the instructions that come with the device to set up the gateway. In alternativa, usare le istruzioni seguenti per configurare manualmente uno dei gateway esistenti.Alternatively, use the following instructions to manually set up one of your existing gateways.

Installare Docker nel dispositivo gateway Linux.[Install Docker] on your Linux gateway device.

Configurare il gatewayConfigure the gateway

  1. È necessaria la stringa di connessione iothubowner della distribuzione della soluzione di connected factory di Azure IoT Suite per completare la distribuzione del gateway.You need the iothubowner connection string of your Azure IoT Suite connected factory deployment to complete the gateway deployment. Nel portale di Azure passare all'hub IoT nel gruppo di risorse creato quando si è distribuita la soluzione di connected factory.In the [Azure portal], navigate to your IoT Hub in the resource group created when you deployed the connected factory solution. Fare clic su Criteri di accesso condiviso per accedere alla stringa di connessione iothubowner:Click Shared access policies to access the iothubowner connection string:

    Trovare la stringa di connessione dell'hub IoT

    Copiare il valore di Stringa di connessione - chiave primaria.Copy the Connection string--primary key value.

  2. Configurare il gateway per l'hub IoT eseguendo i due moduli del gateway una sola volta da una shell con:Configure the gateway for your IoT Hub by running the two gateway modules once from a shell with:

    sudo docker run -it --rm -h <ApplicationName> -v /shared:/build/src/GatewayApp.NetCore/bin/Debug/netcoreapp1.0/publish/ -v /shared:/root/.dotnet/corefx/cryptography/x509stores microsoft/iot-gateway-opc-ua:2.1.1 <ApplicationName> "<IoTHubOwnerConnectionString>"

    sudo docker run --rm -it -v /shared:/mapped microsoft/iot-gateway-opc-ua-proxy:1.0.2 -i -c "<IoTHubOwnerConnectionString>" -D /mapped/cs.db

    • <ApplicationName> è il nome dell'applicazione OPC UA creata dal gateway nel formato publisher.<nome di dominio completo>.<ApplicationName> is the name of the OPC UA application the gateway creates in the format publisher.<your fully qualified domain name>. Ad esempio, publisher.microsoft.com.For example, publisher.microsoft.com.
    • <IoTHubOwnerConnectionString> è la stringa di connessione iothubowner copiata nel passaggio precedente.<IoTHubOwnerConnectionString> is the iothubowner connection string you copied in the previous step. Questa stringa di connessione viene usata solo in questo passaggio e non è necessaria nei successivi.This connection string is only used in this step, you don’t need it in the following steps:

      La cartella /shared (argomento -v) verrà usata più avanti per rendere permanenti i due certificati X.509 usati dai moduli del gateway.You use the /shared folder (the -v argument) later to persist the two X.509 certificates that the gateway modules use.

Eseguire il gatewayRun the gateway

  1. Riavviare il gateway usando i comandi seguenti:Restart the gateway using the following commands:

    sudo docker run -it -h <ApplicationName> --expose 62222 -p 62222:62222 --rm -v /shared:/build/src/GatewayApp.NetCore/bin/Debug/netcoreapp1.0/publish/Logs -v /shared:/build/src/GatewayApp.NetCore/bin/Debug/netcoreapp1.0/publish/CertificateStores -v /shared:/shared -v /shared:/root/.dotnet/corefx/cryptography/x509stores -e _GW_PNFP="/shared/publishednodes.JSON" microsoft/iot-gateway-opc-ua:2.1.1 <ApplicationName>

    sudo docker run -it -v /shared:/mapped microsoft/iot-gateway-opc-ua-proxy:1.0.2 -D /mapped/cs.db

  2. Per motivi di sicurezza, i due certificati X.509 resi permanenti nella cartella /shared contengono la chiave privata.For security reasons, the two X.509 certificates persisted in the /shared folder contain the private key. Limitare l'accesso a questa cartella alle credenziali usate per eseguire il contenitore Docker.Limit access to this folder to the credentials you use to run the Docker container. Per impostare le autorizzazioni solo per root, usare il comando della shell chmod sulla cartella.To set the permissions for root only, use the chmod shell command on the folder.

  3. Verificare la connettività di rete.Verify network connectivity. Dalla shell immettere il comando ping publisher.<your fully qualified domain name> per effettuare il ping del gateway.From a shell, enter the command ping publisher.<your fully qualified domain name> to ping your gateway. Se la destinazione non è raggiungibile, aggiungere l'indirizzo IP e il nome del gateway al file hosts nel gateway.If the destination is unreachable, add the IP address and name of your gateway to your hosts file on your gateway. Il file hosts si trova nella cartella /etc.The hosts file is located in the /etc folder.

  4. Provare quindi a connettersi al server di pubblicazione usando un client OPC UA locale in esecuzione nel gateway.Next, try to connect to the publisher using a local OPC UA client running on the gateway. L'URL dell'endpoint OPC UA è opc.tcp://publisher.<your fully qualified domain name>:62222.The OPC UA endpoint URL is opc.tcp://publisher.<your fully qualified domain name>:62222. Se non si ha un client OPC UA, è possibile scaricare e usare un client OPC UA open source.If you don't have an OPC UA client, you can download and use an [open-source OPC UA client].

  5. Dopo avere completato correttamente questi test locali, passare alla pagina Connect your own OPC UA Server (Connetti il server OPC UA) nel portale della soluzione di connected factory.When you have successfully completed these local tests, browse to the Connect your own OPC UA Server page in the connected factory solution portal. Immettere l'URL dell'endpoint del server di pubblicazione (tcp://publisher.<your fully qualified domain name>:62222) e fare clic su Connect (Connetti).Enter the publisher endpoint URL (tcp://publisher.<your fully qualified domain name>:62222) and click Connect. Viene visualizzato un avviso relativo al certificato. Fare clic su Proceed (Continua).You get a certificate warning, then click Proceed. Viene quindi visualizzato un errore che informa che il server di pubblicazione non considera attendibile il client Web UA.Next you get an error that the publisher doesn’t trust the UA Web Client. Per risolvere questo errore, copiare il certificato del client Web UA dalla cartella /shared/Rejected Certificates/certs alla cartella /shared/UA Applications/certs nel gateway.To resolve this error, copy the UA Web Client certificate from the /shared/Rejected Certificates/certs folder to the /shared/UA Applications/certs folder on the gateway. Non è necessario riavviare il gateway.You do not need to restart of the gateway. Ripetere questo passaggio.Repeat this step. Ora è possibile connettersi al gateway dal cloud e aggiungere i server OPC UA alla soluzione.You can now connect to the gateway from the cloud, and you are ready to add OPC UA servers to the solution.

Aggiungere i server OPC UAAdd your OPC UA servers

  1. Passare alla pagina Connect your own OPC UA Server (Connetti il server OPC UA) nel portale della soluzione di connected factory.Browse to the Connect your own OPC UA Server page in the connected factory solution portal. Seguire gli stessi passaggi della sezione precedente per stabilire una relazione di trust tra il portale della soluzione di connected factory e il server OPC UA.Follow the same steps as in the preceding section to establish trust between the connected factory portal and the OPC UA server. Questo passaggio stabilisce una relazione di trust reciproco dei certificati dal portale della soluzione di connected factory al server OPC UA e crea una connessione.This step establishes a mutual trust of the certificates from the connected factory portal and the OPC UA server and creates a connection.

  2. Passare all'albero di nodi OPC UA del server OPC UA, fare clic con il pulsante destro del mouse sui nodi OPC e scegliere publish (Pubblica).Browse the OPC UA nodes tree of your OPC UA server, right-click the OPC nodes, and select publish. Perché la pubblicazione possa funzionare in questo modo, il server OPC UA e il server di pubblicazione devono essere nella stessa rete.For publishing to work this way, the OPC UA server and the publisher must be on the same network. In altre parole, se il nome di dominio completo del server di pubblicazione è publisher.mydomain.com, il nome di dominio completo del server OPC UA deve essere, ad esempio, myopcuaserver.mydomain.com. Se la configurazione in uso è diversa, è possibile aggiungere manualmente nodi al file publishesnodes.json presente nella cartella /shared.In other words, if the fully qualified domain name of the publisher is publisher.mydomain.com then the fully qualified domain name of the OPC UA server must be, for example, myopcuaserver.mydomain.com. If your setup is different, you can manually add nodes to the publishesnodes.json file found in the /shared folder. Il file publishesnodes.json viene generato automaticamente alla prima pubblicazione riuscita di un nodo OPC.The publishesnodes.json is automatically generated on the first successful publish of an OPC node.

  3. I dati di telemetria ora passano dal dispositivo gateway.Telemetry now flows from the gateway device. È possibile visualizzare i dati di telemetria nella visualizzazione Factory Locations (Posizioni factory) del portale della soluzione di connected factory in New Factory (Nuova factory).You can view the telemetry in the Factory Locations view of the connected factory portal under New Factory.

Passaggi successiviNext steps

Per altre informazioni sull'architettura della soluzione preconfigurata di connected factory, vedere Procedura dettagliata per la soluzione preconfigurata di connected factory.To learn more about the architecture of the connected factory preconfigured solution, see Connected factory preconfigured solution walkthrough.

Informazioni sull'implementazione di riferimento del modulo di pubblicazione OPC.Learn about the OPC Publisher reference implementation.