Azure Automation State Configuration

실습(IIS 설치를 DSC 이용해서) 

 

 

Azure에서 생성한 Vm에는  될듯, 

온프렘에서 가져온 VM에는 정상동작  ,,, 특히 리눅스 서버 

 

 

USERNAME=azureuser 

PASSWORD=$(openssl rand -base64 32) 

암호 랜덤하게, 혹은 직접 지정 

 

az vm create \ 

  --resource-group learn-146cf8c6-1dcd-4973-b034-4c96ed3a8f5f \ 

  --name myVM \ 

  --image win2016datacenter \ 

  --admin-username $USERNAME \ 

  --admin-password $PASSWORD 

 

 

완료  json 확인 

{ 

  "fqdns": "", 

  "id": "/subscriptions/37452974-4d56-4dd1-94ca-50d7633a524f/resourceGroups/learn-146cf8c6-1dcd-4973-b034-4c96ed3a8f5f/providers/Microsoft.Compute/virtualMachines/myVM", 

  "location": "westus", 

  "macAddress": "00-0D-3A-36-4A-A6", 

  "powerState": "VM running", 

  "privateIpAddress": "10.0.0.4", 

  "publicIpAddress": "104.42.134.56", 

  "resourceGroup": "learn-146cf8c6-1dcd-4973-b034-4c96ed3a8f5f", 

  "zones": "" 

} 

 

 

az vm open-port \ 

  --port 80 \ 

  --resource-group learn-146cf8c6-1dcd-4973-b034-4c96ed3a8f5f \ 

  --name myVM 

 

--------------------------  상태에서 공인아이피 80 포트 접근  아무것도 안열림 

 

 

 

애저포털에서 automation 계정만들고 

 

Azure Cloud Shell열기 

 

Pwsh 

 

code $HOME/MyDscConfiguration.ps1 

 

코드편집기 열림 ㅎㅎ ,  Ctrl S, Ctrl Q 

 

Configuration MyDscConfiguration { 

  Node "localhost" { 

    WindowsFeature MyFeatureInstance { 

      Ensure = 'Present' 

      Name = 'Web-Server' 

    } 

  } 

} 

 

 

Import-AzureRmAutomationDscConfiguration ` 

    -AutomationAccountName "오토메이션이름" ` 

    -ResourceGroupName learn-146cf8c6-1dcd-4973-b034-4c96ed3a8f5f ` 

    -SourcePath $HOME/MyDscConfiguration.ps1 ` 

    -Force ` 

    -Published 

 

 

다시 오토메이션으로 와서… 추가된거 확인하고, 선택 - 컴파일  => 완료됨 확인 

 

 

좀 기다리면… 

VM 보임. 

 

 

 

이론 파트 

 

Azure Automation State Configuration 

 

파워셸 기반 

 

일관된 배포, 모니터링, 업데이트 가능하게 해주는 서비스 

 

파워셸DSC 

선언적 관리플랫폼 

하고싶은 작업 --- 수행 방법이 분리됨 

예기치 않는 사례들을 자동으로 처리하는 로직이 내부적으로 있음  

 

) 모든 서버에 필수구성요소(IIS) 설치여부를 한번에 파악 

 

 

  • 밀어넣기 모드: 관리자는 하나 이상의 노드에 대한 구성을 수동으로 보냅니다(밀어넣기). LCM  노드의 상태가 구성에 지정된 상태와 일치하는지 확인합니다. 

Start-DscConfiguration -path D:\ 

 

 

  • 끌어오기 모드: 끌어오기 서버에는 구성 정보가 보관됩니다.  노드의 LCM 주기적(기본적으로 15분마다)으로 끌어오기 서버를 폴링하여 최신 구성 세부 정보를 가져옵니다. 이러한 요청은 다음 다이어그램에 1단계로 표시됩니다. 2단계에서 끌어오기 서버는 구성 변경 내용을  노드에 다시 보냅니다. 끌어오기 모드에서  노드는 끌어오기 서비스에 등록되어야 합니다. 

  • 밀어넣기 모드 

  • 단순 설정하기 쉽습니다. 자체 전용 인프라가 필요하지 않으며 노트북에서 실행가능 

  • DSC 기능을 테스트  유용 

 

  • 끌어오기 모드 

  • 다수의 머신에 걸쳐 있는 엔터프라이즈 배포에 유용 

  • LCM은 끌어오기 서버를 정기적으로 폴링하고 노드가 필요한 상태인지 확인 

  • 외부 도구 또는 팀이 개별 머신에서 구성 변경을 일으키는 핫픽스를 적용할 경우 해당 머신이 사용자가 설정한 구성에 따라 빠르게 복원됩니다. 이 프로세스를 사용하면 보안 및 규정 의무를 지속적으로 준수할 수 있습니다. 

 

출처: <https://docs.microsoft.com/ko-kr/learn/modules/protect-vm-settings-with-dsc/2-what-is-azure-automation-state-configuration 

 

 

 

Requirement 

Azure DSC WMF 4.0이상 필요 

, 클라이언트 VM에도 위의 그림에 워크스테이션/끌어오기 서버에도 WMF 설치필요 

서버 2016 최신버전 이미 설치되어 있음. 

 

 

포트: 아웃바운드 인터넷 액세스에는 443 TCP 포트만 필요합니다. 

전역 URL: *.azure-automation.net 

에이전트 서비스: https://.agentsvc.azure-automation.net 

 

 

 

기본 제공 PowerShell DSC 리소스  일부가 나와 있습니다. 

리소스 

설명 

파일 

노드에서 파일 및 폴더를 관리합니다. 

보관 

.zip 형식 보관 파일의 압축을 풉니다. 

환경 

시스템 환경 변수를 관리합니다. 

로그 

DSC 이벤트 로그에 메시지를 씁니다. 

패키지 

패키지를 설치하거나 제거합니다. 

레지스트리 

노드의 레지스트리 키(HKEY Users 제외)를 관리합니다. 

스크립트 

노드에서 PowerShell 명령을 실행합니다. 

서비스 

Windows 서비스를 관리합니다. 

사용자 

노드에서 로컬 사용자를 관리합니다. 

WindowsFeature 

노드에서 역할 또는 기능을 추가하거나 제거합니다. 

WindowsOptionalFeature 

노드에서 선택적 역할 또는 기능을 추가하거나 제거합니다. 

WindowsProcess 

Windows 프로세스를 관리합니다. 

 

 

DSC스크립트 내용 중에서 자격증명정보는  

PSCredential 이용 

인증서도 필요? 

 

 

 




+ Recent posts