Windows 컨테이너를 사용하는 IoT Edge용 PowerShell 스크립트
적용 대상: IoT Edge 1.1
Important
IoT Edge 1.1 지원 종료일은 2022년 12월 13일이었습니다. 이 제품, 서비스, 기술 또는 API가 지원되는 방법에 대한 정보는 Microsoft 제품 수명 주기를 확인하세요. 최신 버전의 IoT Edge로 업데이트하는 방법에 대한 자세한 내용은 업데이트 IoT Edge를 참조하세요.
Windows 디바이스에서 IoT Edge를 설치, 업데이트 또는 제거하는 PowerShell 스크립트를 이해합니다.
이 문서에 설명된 명령은 모든 IoT Edge 릴리스와 함께 릴리스되는 IoTEdgeSecurityDaemon.ps1
파일에서 가져옵니다. 스크립트의 최신 버전은 항상 aka.ms/iotedge-win 사용할 수 있습니다.
cmdlet을 사용하여 Invoke-WebRequest
명령을 실행하여 최신 스크립트 버전에 액세스할 수 있습니다. 예시:
. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
Deploy-IoTEdge
이 스크립트 또는 특정 릴리스에서 스크립트 버전을 다운로드하여 명령을 실행할 수도 있습니다. 예시:
. <path>\IoTEdgeSecurityDaemon.ps1
Deploy-IoTEdge
제공된 스크립트는 보안을 강화하기 위해 서명됩니다. 디바이스에 스크립트를 다운로드한 다음, 다음 PowerShell 명령을 실행하여 서명을 확인할 수 있습니다.
Get-AuthenticodeSignature "C:\<path>\IotEdgeSecurityDaemon.ps1"
서명이 확인되면 출력 상태가 유효 합니다.
Deploy-IoTEdge
Deploy-IoTEdge 명령은 IoT Edge 보안 디먼 및 해당 종속성을 다운로드하고 배포합니다. 배포 명령은 이러한 공통 매개 변수를 허용합니다. 전체 목록의 경우 명령을 Get-Help Deploy-IoTEdge -full
사용합니다.
매개 변수 | 허용되는 값 | 설명 |
---|---|---|
ContainerOs | Windows 또는 Linux | 컨테이너 운영 체제를 지정하지 않으면 Windows가 기본값입니다. Windows 컨테이너의 경우 IoT Edge는 설치에 포함된 Moby 컨테이너 엔진을 사용합니다. Linux 컨테이너의 경우 설치를 시작하기 전에 컨테이너 엔진을 설치해야 합니다. |
프록시 | Proxy URL | 디바이스가 인터넷에 연결하기 위해 프록시 서버를 통과해야 하는 경우 이 매개 변수를 포함합니다. 자세한 내용은 프록시 서버를 통해 통신하도록 IoT Edge 디바이스 구성을 참조하세요. |
OfflineInstallationPath | 디렉터리 경로 | 이 매개 변수가 포함된 경우 설치 관리자는 설치에 필요한 IoT Edge cab 및 VC 런타임 MSI 파일에 대해 나열된 디렉터리를 확인합니다. 디렉터리에 없는 모든 파일이 다운로드됩니다. 두 파일이 모두 디렉터리에 있는 경우 인터넷 연결 없이 IoT Edge를 설치할 수 있습니다. 이 매개 변수를 사용하여 특정 버전을 사용할 수도 있습니다. |
InvokeWebRequestParameters | 매개 변수 및 값의 해시 테이블 | 설치하는 동안 여러 웹 요청이 이루어집니다. 이 필드를 사용하여 해당 웹 요청에 대한 매개 변수를 설정합니다. 이 매개 변수는 프록시 서버에 대한 자격 증명을 구성하는 데 유용합니다. 자세한 내용은 프록시 서버를 통해 통신하도록 IoT Edge 디바이스 구성을 참조하세요. |
RestartIfNeeded | 없음 | 이 플래그를 사용하면 필요한 경우 메시지를 표시하지 않고 배포 스크립트가 컴퓨터를 다시 시작할 수 있습니다. |
Initialize-IoTEdge
Initialize-IoTEdge 명령은 디바이스 연결 문자열 및 작동 세부 정보를 사용하여 IoT Edge를 구성합니다. 이 명령에서 생성된 대부분의 정보는 iotedge\config.yaml 파일에 저장됩니다. 초기화 명령은 이러한 일반적인 매개 변수를 허용합니다. 전체 목록의 경우 명령을 Get-Help Initialize-IoTEdge -full
사용합니다.
매개 변수 | 허용되는 값 | 설명 |
---|---|---|
ManualConnectionString | None | Switch 매개 변수입니다. 기본값입니다. 프로비저닝 유형을 지정하지 않으면 연결 문자열을 사용하는 수동 프로비저닝이 기본값입니다. 디바이스를 수동으로 프로비전할 디바이스 연결 문자열 제공한다고 선언합니다. |
ManualX509 | None | Switch 매개 변수입니다. 프로비저닝 유형을 지정하지 않으면 연결 문자열을 사용하는 수동 프로비저닝이 기본값입니다. 디바이스를 수동으로 프로비전하기 위해 ID 인증서 및 프라이빗 키를 제공할 것이라고 선언합니다. |
DpsTpm | None | Switch 매개 변수입니다. 프로비저닝 유형을 지정하지 않으면 연결 문자열을 사용하는 수동 프로비저닝이 기본값입니다. DPS(Device Provisioning Service) 범위 ID와 DPS를 통해 프로비전할 디바이스의 등록 ID를 제공하겠다고 선언합니다. |
DpsSymmetricKey | None | Switch 매개 변수입니다. 프로비저닝 유형을 지정하지 않으면 연결 문자열을 사용하는 수동 프로비저닝이 기본값입니다. 증명을 위한 대칭 키와 함께 DPS(Device Provisioning Service) 범위 ID 및 DPS를 통해 프로비전할 디바이스의 등록 ID를 제공하겠다고 선언합니다. |
DpsX509 | None | Switch 매개 변수입니다. 프로비저닝 유형을 지정하지 않으면 연결 문자열을 사용하는 수동 프로비저닝이 기본값입니다. 증명을 위해 X.509 ID 인증서 및 프라이빗 키와 함께 DPS를 통해 프로비전할 DPS(Device Provisioning Service) 범위 ID 및 디바이스의 등록 ID를 제공하겠다고 선언합니다. |
DeviceConnectionString | IoT Hub에 등록된 IoT Edge 디바이스의 연결 문자열 작은따옴표 | 연결 문자열 사용하여 수동으로 프로비전하는 데 필요합니다. 스크립트 매개 변수에 연결 문자열을 제공하지 않을 경우 확인 메시지가 표시됩니다. |
IotHubHostName | 디바이스가 연결하는 IoT Hub의 호스트 이름입니다. | X.509 인증서를 사용하여 수동으로 프로비전하는 데 필요합니다 . {hub name}.azure-devices.net 형식을 사용합니다. |
DeviceId | IoT Hub에 등록된 디바이스 ID의 디바이스 ID입니다. | X.509 인증서를 사용하여 수동으로 프로비전하는 데 필요합니다 . |
ScopeId | IoT Hub와 연결된 Device Provisioning Service 인스턴스의 범위 ID입니다. | DPS 프로비저닝에 필요합니다 . 스크립트 매개 변수에 범위 ID를 제공하지 않으면 범위 ID를 입력하라는 메시지가 표시됩니다. |
RegistrationId | 디바이스에서 생성된 등록 ID | TPM 또는 대칭 키 증명을 사용하는 경우 DPS 프로비전에 필요합니다 . X.509 인증서 증명을 사용하는 경우 선택 사항 입니다. |
X509IdentityCertificate | 디바이스에서 X.509 디바이스 ID 인증서의 URI 경로입니다. | X.509 인증서 증명을 사용하는 경우 수동 또는 DPS 프로비저닝에 필요합니다. |
X509IdentityPrivateKey | 디바이스의 X.509 디바이스 ID 인증서 키에 대한 URI 경로입니다. | X.509 인증서 증명을 사용하는 경우 수동 또는 DPS 프로비저닝에 필요합니다. |
SymmetricKey | DPS를 사용할 때 IoT Edge 디바이스 ID를 프로비저닝하는 데 사용되는 대칭 키 | 대칭 키 증명을 사용하는 경우 DPS 프로비저닝에 필요합니다. |
ContainerOs | Windows 또는 Linux | 컨테이너 운영 체제를 지정하지 않으면 Windows가 기본값입니다. Windows 컨테이너의 경우 IoT Edge는 설치에 포함된 Moby 컨테이너 엔진을 사용합니다. Linux 컨테이너의 경우 설치를 시작하기 전에 컨테이너 엔진을 설치해야 합니다. |
DeviceCACertificate | 디바이스에서 X.509 디바이스 CA 인증서의 URI 경로입니다. | 파일에서도 C:\ProgramData\iotedge\config.yaml 구성할 수 있습니다. 자세한 내용은 IoT Edge 디바이스에서 인증서 관리를 참조하세요. |
DeviceCAPrivateKey | 디바이스의 X.509 디바이스 CA 프라이빗 키에 대한 URI 경로입니다. | 파일에서도 C:\ProgramData\iotedge\config.yaml 구성할 수 있습니다. 자세한 내용은 IoT Edge 디바이스에서 인증서 관리를 참조하세요. |
InvokeWebRequestParameters | 매개 변수 및 값의 해시 테이블 | 설치하는 동안 여러 웹 요청이 이루어집니다. 이 필드를 사용하여 해당 웹 요청에 대한 매개 변수를 설정합니다. 이 매개 변수는 프록시 서버에 대한 자격 증명을 구성하는 데 유용합니다. 자세한 내용은 프록시 서버를 통해 통신하도록 IoT Edge 디바이스 구성을 참조하세요. |
AgentImage | IoT Edge 에이전트 이미지 URI | 기본적으로 새 IoT Edge 설치는 IoT Edge 에이전트 이미지에 대한 최신 롤링 태그를 사용합니다. 이 매개 변수를 사용하여 이미지 버전에 대한 특정 태그를 설정하거나 사용자 고유의 에이전트 이미지를 제공합니다. 자세한 내용은 IoT Edge 태그 이해(Understand IoT Edge 태그)를 참조 하세요. |
사용자 이름 | 컨테이너 레지스트리 사용자 이름 | -AgentImage 매개 변수를 프라이빗 레지스트리의 컨테이너로 설정한 경우에만 이 매개 변수를 사용합니다. 레지스트리에 대한 액세스 권한이 있는 사용자 이름을 제공합니다. |
암호 | 보안 암호 문자열 | -AgentImage 매개 변수를 프라이빗 레지스트리의 컨테이너로 설정한 경우에만 이 매개 변수를 사용합니다. 레지스트리에 액세스하기 위한 암호를 제공합니다. |
Update-IoTEdge
매개 변수 | 허용되는 값 | 설명 |
---|---|---|
ContainerOs | Windows 또는 Linux | 컨테이너 OS를 지정하지 않으면 Windows가 기본값입니다. Windows 컨테이너의 경우 컨테이너 엔진이 설치에 포함됩니다. Linux 컨테이너의 경우 설치를 시작하기 전에 컨테이너 엔진을 설치해야 합니다. |
프록시 | Proxy URL | 디바이스가 인터넷에 연결하기 위해 프록시 서버를 통과해야 하는 경우 이 매개 변수를 포함합니다. 자세한 내용은 프록시 서버를 통해 통신하도록 IoT Edge 디바이스 구성을 참조하세요. |
InvokeWebRequestParameters | 매개 변수 및 값의 해시 테이블 | 설치하는 동안 여러 웹 요청이 이루어집니다. 이 필드를 사용하여 해당 웹 요청에 대한 매개 변수를 설정합니다. 이 매개 변수는 프록시 서버에 대한 자격 증명을 구성하는 데 유용합니다. 자세한 내용은 프록시 서버를 통해 통신하도록 IoT Edge 디바이스 구성을 참조하세요. |
OfflineInstallationPath | 디렉터리 경로 | 이 매개 변수가 포함된 경우 설치 관리자는 설치에 필요한 IoT Edge cab 및 VC 런타임 MSI 파일에 대해 나열된 디렉터리를 확인합니다. 디렉터리에 없는 모든 파일이 다운로드됩니다. 두 파일이 모두 디렉터리에 있는 경우 인터넷 연결 없이 IoT Edge를 설치할 수 있습니다. 이 매개 변수를 사용하여 특정 버전을 사용할 수도 있습니다. |
RestartIfNeeded | 없음 | 이 플래그를 사용하면 필요한 경우 메시지를 표시하지 않고 배포 스크립트가 컴퓨터를 다시 시작할 수 있습니다. |
Uninstall-IoTEdge
매개 변수 | 허용되는 값 | 설명 |
---|---|---|
Force | 없음 | 이 플래그는 이전 제거 시도가 실패한 경우 제거를 강제로 수행합니다. |
RestartIfNeeded | 없음 | 이 플래그를 사용하면 필요한 경우 제거 스크립트가 메시지를 표시하지 않고 컴퓨터를 다시 시작할 수 있습니다. |
다음 단계
다음 문서에서 이러한 명령을 사용하는 방법을 알아봅니다.