[Azure] ARM 템플릿 판독(디버깅 후 스크립트 자동 실행)

12171 단어 AzureIaCtech

개시하다


Azure QuickStart Templates독학하세요!
그래서 출력도 시도해 본다.5탄.

이번 판독 대상.


ARM Template for Deploying Jenkins Master/Slave Cluster

템플릿 요약 정보


이쪽 템플릿을 디자인하면 Jenkins의 Master/Slave용 VM이 디자인됩니다.디버깅 후에는 약간의 수동 조작이 필요하다.
이 ARM 템플릿은 VM의 디버깅 후 특정 작업을 수행하는 방법을 보여줍니다.

해독하다


매번 있습니다. 흔히 볼 수 있는 템플릿 모델은 다음과 같습니다.
  • 매개변수 지정(parameters)
  • 변수의 설정(variables)
  • 해제할 자원에 대한 설명(resources)
  • 매개변수 지정(parameters)


    상단"parameters":부터 시작하는 부분은 템플릿에 사용되는 매개 변수(변수)의 설정입니다.템플릿을 디버깅할 때 옵션으로 표시할 수 있습니다.
    지정locationvmSize 등.

    변수 설정(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에서 실행(다운로드)되는 파일의 위치를 지정하고 protectedSettingscommandToExecute에서 실행 명령을 전달합니다.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에서 실행(다운로드)하는 파일의 위치를 지정하고 protectedSettingscommandToExecute에 실행 명령을 교부한다.
    참조: Windows에서 사용자 정의된 스크립트 확장 기능
    이렇게 하면 디버깅 후에 임의의 스크립트를 자동으로 실행할 수 있습니다.이 템플릿처럼 외부의 기릿허브 등으로 분리해서 관리하면 쉽죠.IaC가 할 수 있는 일이 점점 많아질 거야!

    최후


    Azure QuickStart Templates 애저에 대해 공부할 때 저는 이 산이 매우 소중한 산이라고 생각했습니다. 앞으로도 재미있는 것을 읽으려고 노력하겠습니다.

    좋은 웹페이지 즐겨찾기