From fd0afffde33c7efd3226ca39ff71730adb756ded Mon Sep 17 00:00:00 2001 From: Tim Wright Date: Thu, 20 Feb 2025 02:18:04 +0000 Subject: [PATCH] add pipeline var to skip openssh server installation --- .pipelines/.vsts-vhd-builder-release-windows.yaml | 5 +++++ .../templates/.build-and-test-windows-vhd-template.yaml | 5 +++++ .../templates/.build-and-test-windows-vhds-template.yaml | 9 +++++++++ .../templates/.builder-release-template-windows.yaml | 5 +++++ vhdbuilder/packer/init-variables.sh | 1 + vhdbuilder/packer/windows/configure-windows-vhd.ps1 | 7 ++++++- vhdbuilder/packer/windows/windows-vhd-builder-sig.json | 9 ++++++--- 7 files changed, 37 insertions(+), 4 deletions(-) diff --git a/.pipelines/.vsts-vhd-builder-release-windows.yaml b/.pipelines/.vsts-vhd-builder-release-windows.yaml index d7b65a39535..9dfc866ddfd 100644 --- a/.pipelines/.vsts-vhd-builder-release-windows.yaml +++ b/.pipelines/.vsts-vhd-builder-release-windows.yaml @@ -43,6 +43,10 @@ parameters: displayName: Skip Extension Check type: boolean default: False +- name: installOpenSshServer + displayName: Install Open SSH Server + type: boolean + default: True - name: buildVmSize displayName: Build VM Size type: string @@ -64,3 +68,4 @@ stages: build23H2: ${{ parameters.build23H2 }} build23H2gen2: ${{ parameters.build23H2gen2 }} skipExtensionCheck: ${{ parameters.skipExtensionCheck }} + installOpenSshServer: ${{ parameters.installOpenSshServer }} diff --git a/.pipelines/templates/.build-and-test-windows-vhd-template.yaml b/.pipelines/templates/.build-and-test-windows-vhd-template.yaml index dd44048dafa..6fcc3465b4d 100644 --- a/.pipelines/templates/.build-and-test-windows-vhd-template.yaml +++ b/.pipelines/templates/.build-and-test-windows-vhd-template.yaml @@ -33,6 +33,10 @@ parameters: displayName: Skip Extension Check type: boolean default: False + - name: installOpenSshServer + displayName: Install Open SSH Server + type: boolean + default: True - name: windowsBaseImageUrl displayName: Windows Base Image URL Override type: string @@ -61,6 +65,7 @@ stages: echo '##vso[task.setvariable variable=AZURE_VM_SIZE]${{ parameters.buildVmSize }}' echo '##vso[task.setvariable variable=WINDOWS_SKU]${{ parameters.windowsSku }}' echo '##vso[task.setvariable variable=SKIP_EXTENSION_CHECK]${{ parameters.skipExtensionCheck }}' + echo '##vso[task.setvariable variable=INSTALL_OPEN_SSH_SERVER]${{ parameters.installOpenSshServer }}' echo '##vso[task.setvariable variable=WINDOWS_BASE_IMAGE_URL]${{ parameters.windowsBaseImageUrl }}' echo '##vso[task.setvariable variable=WINDOWS_NANO_IMAGE_URL]${{ parameters.windowsNanoImageUrl }}' echo '##vso[task.setvariable variable=WINDOWS_CORE_IMAGE_URL]${{ parameters.windowsCoreImageUrl }}' diff --git a/.pipelines/templates/.build-and-test-windows-vhds-template.yaml b/.pipelines/templates/.build-and-test-windows-vhds-template.yaml index 94cbc24a775..951571350f7 100644 --- a/.pipelines/templates/.build-and-test-windows-vhds-template.yaml +++ b/.pipelines/templates/.build-and-test-windows-vhds-template.yaml @@ -26,6 +26,10 @@ parameters: displayName: Skip Extension Check type: boolean default: False + - name: installOpenSshServer + displayName: Install Open SSH Server + type: boolean + default: True - name: buildVmSize displayName: Build VM Size type: string @@ -42,6 +46,7 @@ stages: vhddebug: ${{ parameters.vhddebug }} dryrun: ${{ parameters.dryrun }} buildVmSize: ${{ parameters.buildVmSize }} + installOpenSshServer: ${{ parameters.installOpenSshServer }} skipExtensionCheck: ${{ parameters.skipExtensionCheck }} windowsBaseImageUrl: $(WINDOWS_2019_BASE_IMAGE_URL) windowsNanoImageUrl: $(WINDOWS_2019_NANO_IMAGE_URL) @@ -58,6 +63,7 @@ stages: vhddebug: ${{ parameters.vhddebug }} dryrun: ${{ parameters.dryrun }} buildVmSize: ${{ parameters.buildVmSize }} + installOpenSshServer: ${{ parameters.installOpenSshServer }} skipExtensionCheck: ${{ parameters.skipExtensionCheck }} windowsBaseImageUrl: $(WINDOWS_2022_BASE_IMAGE_URL) windowsNanoImageUrl: $(WINDOWS_2022_NANO_IMAGE_URL) @@ -74,6 +80,7 @@ stages: build: ${{ parameters.build2022containerdgen2 }} vhddebug: ${{ parameters.vhddebug }} dryrun: ${{ parameters.dryrun }} + installOpenSshServer: ${{ parameters.installOpenSshServer }} skipExtensionCheck: ${{ parameters.skipExtensionCheck }} windowsBaseImageUrl: $(WINDOWS_23H2_GEN2_BASE_IMAGE_URL) windowsNanoImageUrl: $(WINDOWS_2022_NANO_IMAGE_URL) @@ -90,6 +97,7 @@ stages: build: ${{ parameters.build23H2 }} vhddebug: ${{ parameters.vhddebug }} dryrun: ${{ parameters.dryrun }} + installOpenSshServer: ${{ parameters.installOpenSshServer }} skipExtensionCheck: ${{ parameters.skipExtensionCheck }} windowsBaseImageUrl: $(WINDOWS_23H2_BASE_IMAGE_URL) windowsNanoImageUrl: $(WINDOWS_2022_NANO_IMAGE_URL) @@ -106,6 +114,7 @@ stages: build: ${{ parameters.build23H2gen2 }} vhddebug: ${{ parameters.vhddebug }} dryrun: ${{ parameters.dryrun }} + installOpenSshServer: ${{ parameters.installOpenSshServer }} skipExtensionCheck: ${{ parameters.skipExtensionCheck }} windowsBaseImageUrl: $(WINDOWS_23H2_GEN2_BASE_IMAGE_URL) windowsNanoImageUrl: $(WINDOWS_2022_NANO_IMAGE_URL) diff --git a/.pipelines/templates/.builder-release-template-windows.yaml b/.pipelines/templates/.builder-release-template-windows.yaml index 31f43f53521..845e5147b9e 100644 --- a/.pipelines/templates/.builder-release-template-windows.yaml +++ b/.pipelines/templates/.builder-release-template-windows.yaml @@ -89,6 +89,7 @@ steps: -e WINDOWS_SKU=$(WINDOWS_SKU) \ -e OS_TYPE="Windows" \ -e SKIP_EXTENSION_CHECK=$(SKIP_EXTENSION_CHECK) \ + -e INSTALL_OPEN_SSH_SERVER=$(INSTALL_OPEN_SSH_SERVER) \ -e MODE=$(MODE) \ -e SIG_GALLERY_NAME=${SIG_GALLERY_NAME} \ -e SIG_IMAGE_NAME=${SIG_IMAGE_NAME} \ @@ -123,6 +124,7 @@ steps: -e AZURE_LOCATION=${AZURE_BUILD_LOCATION} \ -e WINDOWS_SKU=$(WINDOWS_SKU) \ -e SKIP_EXTENSION_CHECK=$(SKIP_EXTENSION_CHECK) \ + -e INSTALL_OPEN_SSH_SERVER=$(INSTALL_OPEN_SSH_SERVER) \ -e SKIPVALIDATEREOFFERUPDATE=${SKIPVALIDATEREOFFERUPDATE} \ -e OS_TYPE="Windows" \ -e MODE=$(MODE) \ @@ -180,6 +182,7 @@ steps: -e OS_TYPE="Windows" \ -e CLASSIC_BLOB="$(STORAGE_ACCT_BLOB_URL)" \ -e SKIP_EXTENSION_CHECK=$(SKIP_EXTENSION_CHECK) \ + -e INSTALL_OPEN_SSH_SERVER=$(INSTALL_OPEN_SSH_SERVER) \ -e SIG_IMAGE_NAME=${SIG_IMAGE_NAME} \ -e SIG_GALLERY_NAME=${SIG_GALLERY_NAME} \ -e SIG_IMAGE_VERSION=${SIG_IMAGE_VERSION} \ @@ -218,6 +221,7 @@ steps: -e VNET_RESOURCE_GROUP_NAME=${VNET_RESOURCE_GROUP_NAME} \ -e TEST_VM_RESOURCE_GROUP_NAME=${TEST_VM_RESOURCE_GROUP_NAME} \ -e SKIP_EXTENSION_CHECK=$(SKIP_EXTENSION_CHECK) \ + -e INSTALL_OPEN_SSH_SERVER=$(INSTALL_OPEN_SSH_SERVER) \ -e WINDOWS_SKU=$(WINDOWS_SKU) \ -e IMPORTED_IMAGE_NAME=${IMPORTED_IMAGE_NAME} \ -e SIG_GALLERY_NAME=${SIG_GALLERY_NAME} \ @@ -249,6 +253,7 @@ steps: -e VHD_NAME=${VHD_NAME} \ -e OS_NAME="Windows" \ -e SKIP_EXTENSION_CHECK=${SKIP_EXTENSION_CHECK} \ + -e INSTALL_OPEN_SSH_SERVER=$(INSTALL_OPEN_SSH_SERVER) \ -e SKU_NAME=${SKU_NAME} \ -e OFFER_NAME="Windows" \ -e MODE=$(MODE) \ diff --git a/vhdbuilder/packer/init-variables.sh b/vhdbuilder/packer/init-variables.sh index d3382a1858d..eb592f72f9a 100755 --- a/vhdbuilder/packer/init-variables.sh +++ b/vhdbuilder/packer/init-variables.sh @@ -501,6 +501,7 @@ cat < vhdbuilder/packer/settings.json "create_time": "${CREATE_TIME}", "img_version": "${IMG_VERSION}", "SKIP_EXTENSION_CHECK": "${SKIP_EXTENSION_CHECK}", + "INSTALL_OPEN_SSH_SERVER": "${INSTALL_OPEN_SSH_SERVER}", "vhd_build_timestamp": "${VHD_BUILD_TIMESTAMP}", "windows_image_publisher": "${WINDOWS_IMAGE_PUBLISHER}", "windows_image_offer": "${WINDOWS_IMAGE_OFFER}", diff --git a/vhdbuilder/packer/windows/configure-windows-vhd.ps1 b/vhdbuilder/packer/windows/configure-windows-vhd.ps1 index 662dd2527d2..3f7b1ad2627 100644 --- a/vhdbuilder/packer/windows/configure-windows-vhd.ps1 +++ b/vhdbuilder/packer/windows/configure-windows-vhd.ps1 @@ -492,13 +492,18 @@ function Install-ContainerD function Install-OpenSSH { + if ($env:INSTALL_OPEN_SSH_SERVER -eq 'true') + { + Write-Log "Not installing Windows OpenSSH Server as this is disabled in the pipeline" + return + } + Write-Log "Installing OpenSSH Server" # Somehow openssh client got added to Windows 2019 base image. if ($env:WindowsSKU -Like '2019*') { Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 - Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 } Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 diff --git a/vhdbuilder/packer/windows/windows-vhd-builder-sig.json b/vhdbuilder/packer/windows/windows-vhd-builder-sig.json index 8d21f2d0446..28bbc96a472 100644 --- a/vhdbuilder/packer/windows/windows-vhd-builder-sig.json +++ b/vhdbuilder/packer/windows/windows-vhd-builder-sig.json @@ -89,7 +89,8 @@ "environment_vars": [ "ProvisioningPhase=1", "WindowsSKU={{user `windows_sku`}}", - "CustomizedDiskSize={{user `os_disk_size_gb`}}" + "CustomizedDiskSize={{user `os_disk_size_gb`}}", + "INSTALL_OPEN_SSH_SERVER={{ user `INSTALL_OPEN_SSH_SERVER` }}" ], "type": "powershell", "scripts": [ @@ -109,7 +110,8 @@ "CustomizedDiskSize={{user `os_disk_size_gb`}}", "WindowsNanoServerImageURL={{user `nano_image_url`}}", "WindowsServerCoreImageURL={{user `core_image_url`}}", - "WindowsPrivatePackagesURL={{user `windows_private_packages_url`}}" + "WindowsPrivatePackagesURL={{user `windows_private_packages_url`}}", + "INSTALL_OPEN_SSH_SERVER={{ user `INSTALL_OPEN_SSH_SERVER` }}" ], "type": "powershell", "scripts": [ @@ -126,7 +128,8 @@ "environment_vars": [ "ProvisioningPhase=3", "WindowsSKU={{user `windows_sku`}}", - "SKIP_EXTENSION_CHECK={{ user `SKIP_EXTENSION_CHECK` }}" + "SKIP_EXTENSION_CHECK={{ user `SKIP_EXTENSION_CHECK` }}", + "INSTALL_OPEN_SSH_SERVER={{ user `INSTALL_OPEN_SSH_SERVER` }}" ], "type": "powershell", "scripts": [