[Azure] ARM 템플릿 판독(디버깅 후 스크립트 자동 실행)
개시하다
Azure QuickStart Templates독학하세요!
그래서 출력도 시도해 본다.5탄.
이번 판독 대상.
ARM Template for Deploying Jenkins Master/Slave Cluster
템플릿 요약 정보
이쪽 템플릿을 디자인하면 Jenkins의 Master/Slave용 VM이 디자인됩니다.디버깅 후에는 약간의 수동 조작이 필요하다.
이 ARM 템플릿은 VM의 디버깅 후 특정 작업을 수행하는 방법을 보여줍니다.
해독하다
매번 있습니다. 흔히 볼 수 있는 템플릿 모델은 다음과 같습니다.
매개변수 지정(parameters)
상단
"parameters":
부터 시작하는 부분은 템플릿에 사용되는 매개 변수(변수)의 설정입니다.템플릿을 디버깅할 때 옵션으로 표시할 수 있습니다.지정
location
과vmSize
등.변수 설정(variables)
"variables":
영역에서 이yaml 파일에 사용할 변수 이름을 설정할 수 있습니다.이 템플릿은 서브넷이나 사용할 스크립트를 설정합니다.변경하고 싶을 때 여기를 적당히 개작해서 설계할 수 있다.azuredeploy.json
"variables": {
"NetIpRange": "10.0.0.0/16",
"SubnetRange": "10.0.1.0/24",
"scriptUrlMaster": "[uri(parameters('_artifactsLocation'),concat('scripts/install-jenkins.sh',parameters('_artifactsLocationSasToken')))]",
"scriptUrlNode1":"[uri(parameters('_artifactsLocation'),concat('scripts/install-slave.sh',parameters('_artifactsLocationSasToken')))]",
"scriptUrlNode2":"[uri(parameters('_artifactsLocation'),concat('win-slave.ps1',parameters('_artifactsLocationSasToken')))]"
},
디버깅할 자원에 대한 설명 (resources)
"resources":
구역에서 실행할 자원을 설명합니다.VNet과 VM의 기본 구성 부분은 졸저[Azure] 101-vm-Multiple-ipconfig 템플릿 판독를 참고할 수 있을 것 같습니다. 저쪽을 보세요.
이번 닭은
"type": "Microsoft.Compute/virtualMachines/extensions"
근처에 있습니다.디버깅 후에 실행되는 스크립트를 설명합니다.Linux 버전
azuredeploy.json
{
"name": "Jenkins-Master/installJenkins",
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2019-03-01",
"location": "[parameters('location')]",
"tags": {
"displayName": "jenkins-master-script"
},
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines', 'Jenkins-Master')]"
],
"properties": {
"publisher": "Microsoft.Azure.Extensions",
"type": "CustomScript",
"typeHandlerVersion": "2.0",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"[variables('scriptUrlMaster')]"
]
},
"protectedSettings": {
"commandToExecute": "sh install-jenkins.sh"
}
}
},
properties
아래 settings
- fileUris
에서 VM에서 실행(다운로드)되는 파일의 위치를 지정하고 protectedSettings
commandToExecute
에서 실행 명령을 전달합니다.fileUris
의"[variables('scriptUrlMaster')]"
는 2이다."variables":
영역에 설정된 변수입니다.참조: Linux 가상 머신에서 Azure 사용자 정의 스크립트 확장 기능 v2 사용
Windows(PowerShell) 버전
azuredeploy.json
{
"name": "node-2/customScript1",
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2019-07-01",
"location": "[parameters('location')]",
"tags": {
"displayName": "Jenkins slave for Windows VM"
},
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines', 'node-2')]"
],
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.10",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"[variables('scriptUrlNode2')]"
]
},
"protectedSettings": {
"commandToExecute": "powershell -file win-slave.ps1"
}
}
},
리눅스 버전도 같은 생각이다. properties
밑에 있는 settings
-fileUris
에 VM에서 실행(다운로드)하는 파일의 위치를 지정하고 protectedSettings
의commandToExecute
에 실행 명령을 교부한다.참조: Windows에서 사용자 정의된 스크립트 확장 기능
이렇게 하면 디버깅 후에 임의의 스크립트를 자동으로 실행할 수 있습니다.이 템플릿처럼 외부의 기릿허브 등으로 분리해서 관리하면 쉽죠.IaC가 할 수 있는 일이 점점 많아질 거야!
최후
Azure QuickStart Templates 애저에 대해 공부할 때 저는 이 산이 매우 소중한 산이라고 생각했습니다. 앞으로도 재미있는 것을 읽으려고 노력하겠습니다.
Reference
이 문제에 관하여([Azure] ARM 템플릿 판독(디버깅 후 스크립트 자동 실행)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/08thse/articles/08-qt-read-101-jenkins-cluster-2-linux-1-win텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)