반응형
시작하기 전에
PowerShell Runbook은 기본적으로 AzureRM 모듈을 사용합니다.
아래 샘플 Powershell에 사용된 것처럼 AZ 모듈을 사용하기 위해 Automation > 모듈에서 필요한 Powershell AZ Module을 설치 해야 합니다.
샘플 PowerShell
728x90
az 모듈 설치 방법
Automation > 모듈 > 갤러리 찾아보기 에서 필요한 AZ 모듈을 설치하면 됩니다.
반응형
Automation 생성
Automation의 Runbook으로 주기적으로 실행되는 powershell을 만들 수 있습니다.
실행결과를 확인하기 위해 팀즈채널에 알림 보내기로 테스트 되었지만 powershell 내용은 상황에 따라 응용(메일 발송하기 등)이 가능합니다.
Runbook 생성
Powershell로 동작하는 Runbook을 생성합니다.
생성된 powershell타입의 runbook
빨간네모 영역에 동작할 powershell을 입력하면 됩니다.
테스트를 위해 팀즈 채널로 메세지를 보내 봅니다.
해당 테스트를 하기 위해서는 팀즈로 알림 보내기가 설정되어 있어야 합니다.
팀즈로 메세지 보내기 작성 후 저장
$url = "https://cloocus.webhook.office.com/webhookb2/4c243604-78c9-44fc-a212-db07d11ade8b@355deae4-a1d6-4d5e-be34-0ad0c20aaa0f/IncomingWebhook/b56e6ea32d2d4a6dadd47e42db39b51b/9003907b-3ea5-47ba-84d8-d42eee78d057"
$Body = '{
"@context":"https://schema.org/extensions",
"@type":"MessageCard",
"themeColor":"0072C6",
"title":"Hello Teams!!!",
"text": "I am from Runbook"
}' | ConvertFrom-Json | ConvertTo-Json
$Headers = New-Object 'system.collections.generic.dictionary[string,string]'
$Headers.Add("Content-Type", "application/json; charset=utf-8")
Invoke-WebRequest -Uri $url -Body $Body -Method Post -Headers $Headers
runbook 저장 후 powershell이 잘 동작하는지 확인하기 위해 테스트 창으로 이동합니다.
테스트 화면에서 시작 버튼을 클릭합니다.
대기큐에 있다가 조금 있으면 실행이 완료 되면서 아래 오류 메세지가 출력되는데요
실행은 잘 되지만 응답 결과를 파싱하지 못하는것으로 보여지므로 그냥 무시합니다.
팀즈로 전달된 메세지 확인
runbook편집 창으로 이동한 후 게시 버튼을 클릭합니다.
게시가 완료 되면 runbook 메인화면으로 이동 됩니다.
Runbook에 일정 등록
runbook에 일정을 등록하여 주기적으로 powershell이 동작하도록 합니다.
runbook메인화면에서 일정에 연결 버튼을 클릭합니다.
Runbook에 일정 연결 클릭해서 일정을 생성합니다.
이제 모든 설정은 완료 되었구요
매 시간 35분 마다 팀즈로 메세지가 오는지 확인합니다.
Runbook에서 메일 보내기
runbook에서 powershell을 통해 메일을 보낼 수 도 있습니다.
(테스트 결과 gmail계정은 발송이 안되고 outlook계정으로 메일을 발송할 수 있습니다.)
$smtp_id = "" #smpt 계정 ID
$smtp_pw = "" #smtp 계정 PW
$smtp_addr = "smtp-mail.outlook.com" #smtp 주소
$smtp_port = 587 #smtp port
$mail_to = "" #수신 메일, 여러명일 경우 $To = ("",""...."")
$mail_subject = "Azure Host Update Check"
$pw = ConvertTo-SecureString -String $smtp_pw -AsPlainText -Force
$mail_credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $smtp_id, $pw
$Body = "Test send mail" | Out-String
Send-MailMessage -From $smtp_id -To $mail_to -Subject $mail_subject -Body $Body -smtpServer $smtp_addr -Encoding UTF8 -Credential $mail_credential -UseSsl -Port $smtp_port
outlook smtp 정보
기업용 Office 365의 smtp서버 정보는 다음과 같습니다.
SMTP : smtp.office365.com
Port : 587
SMTP : smtp-mail.outlook.com
Port : 587
참고
반응형
LIST
'IT > Azure' 카테고리의 다른 글
hyper-v window 2008 r2 vhd to azure vm (0) | 2023.05.18 |
---|---|
VMSS 수정된 Custom Script Extension 적용방법 (0) | 2023.05.17 |
VMSS Custom Script Extension 등록방법 (0) | 2023.05.17 |
VMSS를 az CLI로 컨트롤 (0) | 2023.05.17 |
[Azure] Windows 2012 R2 Datacenter 가상머신에 디스크 추가 (0) | 2023.05.17 |