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은 끌어오기 서버를 정기적으로 폴링하고 노드가 필요한 상태인지 확인
-
외부 도구 또는 팀이 개별 머신에서 구성 변경을 일으키는 핫픽스를 적용할 경우 해당 머신이 사용자가 설정한 구성에 따라 빠르게 복원됩니다. 이 프로세스를 사용하면 보안 및 규정 의무를 지속적으로 준수할 수 있습니다.
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 이용
인증서도 필요?
'기술(Azure 만...) > [MS]Azure기본' 카테고리의 다른 글
azure 글로벌관리자 MFA 설정 방법 (0) | 2019.12.24 |
---|---|
가상서버 VM 블레이드 중에서… (계속갱신 ) (0) | 2019.12.18 |
Azure CLI Command line inferface (0) | 2019.11.11 |
Azure 해외 규정준수 설명 (0) | 2019.11.11 |
IaaS 리눅스VM timezone 변경방법 (0) | 2019.11.02 |