다음을 통해 공유


게이트웨이 플러그 인 개발

Windows Admin Center 게이트웨이 플러그 인을 통해 도구 또는 솔루션의 UI에서 대상 노드로 API 통신을 수행할 수 있습니다. Windows Admin Center는 대상 노드에서 실행할 게이트웨이 플러그 인의 명령과 스크립트를 릴레이하는 게이트웨이 서비스를 호스트합니다. 게이트웨이 서비스를 확장하여 기본 프로토콜 이외의 프로토콜을 지원하는 사용자 지정 게이트웨이 플러그 인을 포함할 수 있습니다.

이러한 게이트웨이 플러그 인은 기본적으로 Windows Admin Center에 포함됩니다.

  • PowerShell 게이트웨이 플러그 인
  • WMI 게이트웨이 플러그 인

REST처럼 PowerShell 또는 WMI 이외의 프로토콜과 통신하려는 경우 고유한 게이트웨이 플러그 인을 빌드할 수 있습니다. 게이트웨이 플러그 인은 기존 게이트웨이 프로세스에서 별도의 AppDomain에 로드되지만 권한에 대해 동일한 수준의 권한 상승을 사용합니다.

참고 항목

다른 확장 유형에 익숙하지 않으신가요? 확장성 아키텍처 및 확장 유형에 대해 자세히 알아보세요.

중요

Windows Admin Center SDK 및 개발자 도구는 Windows Admin Center 현대화 게이트웨이와 호환되는 게이트웨이 플러그 인 개발을 지원하도록 아직 업데이트되지 않았습니다. 해당 가이드를 따르면 확장은 현대화된 게이트웨이와 호환되지 않습니다.

현대화된 게이트웨이용 게이트웨이 플러그 인을 개발하거나 기존 게이트웨이 플러그 인을 업그레이드하려는 경우 wacextensionrequest@microsoft.com(으)로 이메일을 보내주세요.

사용자 환경 준비하기

아직 준비하지 않은 경우 모든 프로젝트에 필요한 종속성 및 전역 필수 구성 요소를 설치하여 환경을 준비합니다.

게이트웨이 플러그 인 만들기(C# 라이브러리)

사용자 지정 게이트웨이 플러그 인을 만들려면 Microsoft.ManagementExperience.FeatureInterfaces 네임스페이스에서 IPlugIn 인터페이스를 구현하는 새 C# 클래스를 만듭니다.

참고 항목

이전 버전의 SDK에서 사용할 수 있는 IFeature 인터페이스는 이제 사용되지 않는 것으로 플래그가 지정됩니다. 모든 게이트웨이 플러그 인 개발은 IPlugIn(또는 선택적으로 HttpPlugIn 추상 클래스)을 사용해야 합니다.

GitHub에서 예제 다운로드

사용자 지정 게이트웨이 플러그 인을 빠르게 시작하려면 Windows Admin Center SDK GitHub 사이트에서 샘플 C# 플러그 인 프로젝트의 복사본을 복제하거나 다운로드할 수 있습니다.

콘텐츠 추가

사용자 지정 API를 포함하도록 샘플 C# 플러그 인 프로젝트 프로젝트(또는 사용자 고유의 프로젝트)의 복제된 복사본에 새 콘텐츠를 추가한 다음, 다음 단계에서 사용할 사용자 지정 게이트웨이 플러그 인 DLL 파일을 빌드합니다.

테스트를 위한 플러그 인 배포

Windows Admin Center 게이트웨이 프로세스에 로드하여 사용자 지정 게이트웨이 플러그 인 DLL을 테스트합니다.

Windows Admin Center는 현재 컴퓨터의 애플리케이션 데이터 폴더에 있는 plugins 폴더의 모든 플러그 인을 찾습니다(Environment.SpecialFolder 열거형의 CommonApplicationData 값 사용). Windows 10에서 해당 위치는 C:\ProgramData\Server Management Experience입니다. plugins 폴더가 아직 없는 경우 폴더를 직접 만들 수 있습니다.

참고 항목

'StaticsFolder' 구성 값을 업데이트하여 디버그 빌드의 플러그 인 위치를 재정의할 수 있습니다. 로컬로 디버깅하는 경우, 해당 설정은 데스크톱 솔루션의 App.Config에 있습니다.

플러그 인 폴더 내부(이 예제에서는 C:\ProgramData\Server Management Experience\plugins이 됩니다)

  • 사용자 지정 게이트웨이 플러그 인 DLL에서 FeatureName 속성 값과 동일한 이름으로 새 폴더를 만듭니다(샘플 프로젝트에서 Name 는 '샘플 Uno').
  • 사용자 지정 게이트웨이 플러그 인 DLL 파일을 이 새 폴더에 복사합니다
  • Windows Admin Center 프로세스 재시작

Windows 관리자 프로세스가 다시 시작되면 http(s)://{domain|localhost}/api/nodes/{node}/features/{feature name}/{identifier}에 대하여 GET, PUT, PATCH, DELETE 또는 POST를 실행하여 사용자 지정 게이트웨이 플러그 인 DLL에서 API를 실행할 수 있습니다.

선택 사항: 디버깅을 위해 플러그 인에 연결

Visual Studio 2017의 디버그 메뉴에서 '프로세스에 연결'을 선택합니다. 다음 창에서 사용 가능한 프로세스 목록을 스크롤하고 SMEDesktop.exe 선택한 다음 '연결;을 클릭합니다. 디버거가 시작되면 기능 코드에 중단점을 배치한 다음 위의 URL 형식을 연습할 수 있습니다. 샘플 프로젝트(기능 이름: '샘플 Uno')의 경우 URL은 다음과 같습니다. "<http://localhost:6516/api/nodes/fake-server.my.domain.com/features/Sample%20Uno>"

Windows Admin Center SDK를 사용하여 도구 확장 생성하기

이제 사용자 지정 게이트웨이 플러그 인을 호출할 수 있는 도구 확장을 생성해야 합니다. 프로젝트 파일을 저장할 폴더를 만들거나 찾아 명령 프롬프트를 열고 해당 폴더를 작업 디렉터리로 설정합니다. 이전에 설치한 Windows Admin Center SDK를 사용해 다음 구문으로 새 확장을 생성합니다.

wac create --company "{!Company Name}" --tool "{!Tool Name}"
설명 예시
{!Company Name} 회사 이름(공백 포함) Contoso Inc
{!Tool Name} 도구 이름(공백 포함) Manage Foo Works

예제는 다음과 같습니다.

wac create --company "Contoso Inc" --tool "Manage Foo Works"

도구에 대해 지정한 이름을 사용하여 현재 작업 디렉터리 내에 새 폴더를 생성하고, 필요한 모든 템플릿 파일을 프로젝트에 복사하고, 회사 및 도구 이름으로 파일을 구성합니다.

다음으로 방금 만든 폴더로 디렉터리를 변경한 다음, 다음 명령을 실행하여 필요한 로컬 종속성을 설치합니다.

npm install

해당 작업이 완료되면 새 확장을 Windows Admin Center에 로드하는 데 필요한 모든 항목을 설정한 것입니다.

사용자 지정 게이트웨이 플러그 인에 도구 확장 연결

이제 Windows Admin Center SDK를 사용하여 확장을 만들었으므로 다음 단계에 따라 도구 확장을 사용자 지정 게이트웨이 플러그 인에 연결할 준비가 완료된 것입니다..

확장 빌드 및 테스트용 로드

다음으로, 확장을 빌드하고 Windows Admin Center에 테스트용으로 로드합니다. 명령 창을 열고 디렉터리를 원본 디렉터리로 변경하고 나면 빌드할 준비가 된 것입니다.

  • gulp를 사용하여 빌드 및 제공.

    gulp build
    gulp serve -p 4201
    

현재 사용 가능한 포트를 선택해야 합니다. Windows Admin Center가 실행 중인 포트를 사용하지 않도록 하세요.

로컬로 제공되는 프로젝트를 Windows Admin Center에 연결하여 테스트용으로 프로젝트를 Windows Admin Center의 로컬 인스턴스에 로드할 수 있습니다.

  • 웹 브라우저에서 Windows Admin Center 실행

  • 디버거 열기(F12)

  • 콘솔을 열고 다음 명령어를 입력합니다.

    MsftSme.sideLoad("http://localhost:4201")
    
  • 웹 브라우저를 새로 고칩니다.

이제 프로젝트 이름이 옆에 있는(테스트용 로드) 도구 목록에 프로젝트가 표시됩니다.

다른 버전의 Windows Admin Center SDK를 대상으로 지정

SDK 변경 및 플랫폼 변경으로 최신 상태로 확장을 유지하는 것은 쉽습니다. 다른 버전의 Windows Admin Center SDK를 대상으로 지정하는 방법을 알아봅니다.