Skip to content

Create Azure CLI and Bash script variants for all tasks #17

@kristopherjturner

Description

@kristopherjturner

Create Azure CLI and Bash Script Variants for All Deployment Tasks

Summary

Each task folder under scripts/deploy/ currently contains a powershell/ directory with the primary automation scripts. The azurecli/ and bash/ directories have been scaffolded with .gitkeep placeholders and need equivalent script implementations.

Scope:

  • Create Azure CLI equivalents in each task's azurecli/ directory
  • Create Bash equivalents in each task's bash/ directory
  • Scripts should mirror the functionality of the corresponding PowerShell primary scripts
  • Follow the same naming conventions (e.g., deploy-resource-groups.sh for Deploy-ResourceGroups.ps1)

Total task folders: 96


Task Checklist

Stage 02 — Azure Foundation

phase-01-landing-zones

full-deployment
  • task-03-create-resource-groups — PS: Deploy-ResourceGroups.ps1
    • Azure CLI variant(s)
    • Bash variant(s)
simplified-deployment
  • task-03-create-resource-groups — PS: Deploy-ResourceGroups.ps1
    • Azure CLI variant(s)
    • Bash variant(s)

phase-02-resource-providers

  • task-01-register-resource-providers — PS: Register-ResourceProviders.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-verify-provider-registration — PS: Test-ResourceProviders.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

phase-03-rbac-permissions

  • task-01-create-azure-local-deployment-spn — PS: New-DeploymentServicePrincipal.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-assign-rbac-roles — PS: Set-RbacRoleAssignments.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

phase-04-azure-management-infrastructure

  • task-01-virtual-network — PS: Configure-VnetDns.ps1, Deploy-ManagementVnet.ps1, Deploy-Network.ps1, Deploy-VnetPeering.ps1, New-VirtualNetwork.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-vpn-gateway — PS: New-VpnGateway.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-s2s-vpn-connection — PS: New-VpnConnection.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-05-azure-bastion — PS: New-AzureBastion.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-06-network-security-groups — PS: Deploy-LighthouseNsg.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-07-nat-gateway — PS: New-NatGateway.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-08-arc-gateway — PS: New-ArcGateway.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-09-log-analytics — PS: Deploy-DiagnosticSettings.ps1, New-LogAnalyticsWorkspace.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-10-key-vault — PS: New-KeyVault.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-12-configure-adds — PS: New-DomainController.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-13-configure-utility-server — PS: Deploy-JumpServer.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-14-configure-ndm-server — PS: New-NdmServer.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-15-configure-lighthouse — PS: Deploy-Lighthouse.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

phase-05-identity-security

  • task-01-pim-conditional-access — PS: Deploy-DefenderForCloud.ps1, Deploy-KeyVault.ps1
    • Azure CLI variant(s)
    • Bash variant(s)

Stage 03 — On-Prem Readiness

phase-01-active-directory

  • task-01-ou-creation-pre-creation-artifacts — PS: Invoke-ADValidation-Arc.ps1, Invoke-ADValidation-AzVM.ps1, Set-ADConfiguration.ps1, Test-ADConfiguration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-create-ad-security-groups — PS: New-ADSecurityGroups.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-configure-dns-forwarding — PS: Set-DnsForwarding.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-04-create-ad-accounts — PS: New-ADAccounts.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-05-assign-security-group-memberships — PS: Set-ADGroupMemberships.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

phase-02-enterprise-readiness

  • task-01-hardware-inspection — PS: Test-HardwareInspection.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-network-service-verification — PS: Set-InfrastructurePrep.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-opengear-verification — PS: Test-OpengearVerification.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-04-validation-signoff — PS: Complete-ValidationSignoff.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

phase-03-network-infrastructure

  • task-01-opengear-console-server — PS: Set-OpengearEndpoint.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-dell-powerswitch-configuration — PS: Set-PowerSwitchEndpoint.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-firewall-endpoint-verification — PS: Set-FirewallEndpoint.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-04-network-validation — PS: Test-NetworkReadiness.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

Stage 04 — Cluster Deployment

phase-01-hardware-provisioning

  • task-01-create-dhcp-reservations-for-idrac-interfaces — PS: New-DhcpReservationsIdrac.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-hardware-discovery-via-dell-redfish-api — PS: Get-HardwareDiscovery-Standalone.ps1, Invoke-HardwareDiscovery.ps1, Update-InfrastructureYml-FromDiscovery.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-create-dhcp-reservations-for-management-nics — PS: New-DhcpReservationsMgmt.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-04-bios-and-idrac-settings-validation — PS: Test-BiosIdracSettings.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-05-bios-and-idrac-settings-remediation — PS: Set-BiosIdracSettings.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

phase-02-os-installation

  • task-04-verify-os-deployment — PS: Test-OsDeployment.ps1
    • Azure CLI variant(s)
    • Bash variant(s)

phase-03-os-configuration

  • task-01-enable-winrm-for-remote-management — PS: Enable-WinRmConfiguration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-enable-rdp — PS: Enable-RDP.ps1, Invoke-EnableRdp-Orchestrated.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-configure-static-ip-address — PS: Invoke-ConfigureStaticIP-Orchestrated.ps1, Set-StaticIPAddress.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-04-disable-dhcp-on-management-adapter — PS: Disable-DHCPOnAllAdapters.ps1, Invoke-DisableDHCP-Orchestrated.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-05-configure-dns-servers — PS: Invoke-ConfigureDNS-Orchestrated.ps1, Set-DnsServers.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-06-verify-dns-client-configuration — PS: Invoke-VerifyDNS-Orchestrated.ps1, Test-DnsClientConfig.ps1, Test-DnsConfiguration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-07-configure-time-synchronization-ntp — PS: Invoke-ConfigureNTP-Orchestrated.ps1, Set-NTPConfiguration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-08-enable-icmp-ping — PS: Enable-ICMPFirewallRule.ps1, Invoke-EnableICMP-Orchestrated.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-09-disable-unused-network-adapters — PS: Disable-UnusedAdapters.ps1, Invoke-DisableAdapters-Orchestrated.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-10-configure-hostname — PS: Invoke-ConfigureHostname-Orchestrated.ps1, Set-NodeHostname.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-11-clear-previous-storage-configuration-conditional — PS: Clear-StorageConfiguration-Direct.ps1, Clear-StorageConfiguration.ps1, Invoke-ClearStorage-Orchestrated.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-12-complete-combined-script-all-steps — PS: Invoke-Phase03OsConfiguration-Orchestrated.ps1, Start-Phase03OsConfiguration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-13-phase03-verification — PS: Invoke-Phase03Verification-Orchestrated.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

phase-04-arc-registration

  • task-01-pre-registration-validation — PS: Invoke-ArcPrerequisites-Orchestrated.ps1, Test-ArcPrerequisites-Orchestrated.ps1, Test-ArcPrerequisites.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-register-cluster-nodes-with-azure-arc — PS: Invoke-ArcRegistration-Orchestrated.ps1, Register-AzureLocalArc-Interactive.ps1, Register-AzureLocalArc-Remote.ps1, Register-AzureLocalArc-ServicePrincipal.ps1, Register-NodesWithArc.ps1, Start-ArcRegistrationWithMonitor.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-monitor-bootstrap-process — PS: Invoke-BootstrapMonitor-Orchestrated.ps1, Watch-BootstrapProgress-Orchestrated.ps1, Watch-BootstrapProgress.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-04-verify-arc-registration-and-connectivity — PS: Confirm-ArcRegistration-Orchestrated.ps1, Confirm-ArcRegistration.ps1, Invoke-ArcVerification-Orchestrated.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

phase-05-cluster-deployment

active-directory
  • task-01-initiate-deployment-via-arm-template — PS: Deploy-AzureLocalCluster-Standalone.ps1, Deploy-AzureLocalCluster.ps1, Get-HciResourceProviderObjectId-Standalone.ps1, Get-HciResourceProviderObjectId.ps1, Invoke-VerifyADPrerequisites-Orchestrated.ps1, Test-ADPrerequisites-Standalone.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-verify-deployment-completion — PS: Invoke-VerifyADDomainStatus-Orchestrated.ps1, Invoke-VerifyClusterHealth-Orchestrated.ps1, Test-ADDomainStatus-Standalone.ps1, Test-ADDomainStatus.ps1, Test-ClusterHealth-Standalone.ps1, Test-ClusterHealth.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
local-identity
  • task-01-initiate-deployment-via-arm-template — PS: Deploy-AzureLocalCluster-Standalone.ps1, Deploy-AzureLocalCluster.ps1, Get-HciResourceProviderObjectId-Standalone.ps1, Get-HciResourceProviderObjectId.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-01-initiate-deployment-via-azure-portal — PS: Deploy-CreateLocalAdmin.ps1, Invoke-CreateLocalIdentityAccounts-Orchestrated.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-verify-deployment-completion — PS: Invoke-VerifyClusterHealth-Orchestrated.ps1, Invoke-VerifyLocalIdentityConfig-Orchestrated.ps1, Test-ClusterHealth-Standalone.ps1, Test-ClusterHealth.ps1, Test-LocalIdentityConfig-Standalone.ps1, Test-LocalIdentityConfig.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
monitoring

No task folders — phase-level monitoring scripts: Monitor-Deployment.ps1, Monitor-Validation.ps1

  • Azure CLI variant(s)
  • Bash variant(s)

phase-06-post-deployment

  • task-01-configure-windows-admin-center — PS: Complete-WAC-Setup.ps1, Configure-WACEntraID.ps1, Configure-WACKerberosDelegation.ps1, Deploy-WindowsAdminCenter.ps1, Generate-WACCertificate.ps1, Install-WAC-Simple.ps1, Install-WACExtensions.ps1, Install-WindowsAdminCenter.ps1, Remote-Deploy-WAC.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-01-deploy-sdn — PS: Enable-SDN-Standalone.ps1, Get-VirtualSwitchName-Standalone.ps1, Get-VirtualSwitchName.ps1, Invoke-ConfigureSDNDns-Orchestrated.ps1, Invoke-DeploySDN-Orchestrated.ps1, Set-SDNDns-Standalone.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-cluster-quorum-configuration — PS: Invoke-ConfigureClusterQuorum-Orchestrated.ps1, Invoke-ConfigureClusterQuorum-Standalone.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-security-groups-applied-to-nodes — PS: Invoke-ApplySecurityGroups-Orchestrated.ps1, Invoke-ApplySecurityGroups-Standalone.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-04-ssh-connectivity-to-nodes — PS: Enable-SshConfiguration.ps1, Invoke-SSHConnectivity-Orchestrated.ps1, Invoke-SSHConnectivity-Standalone.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-05-storage-configuration — PS: Invoke-StorageCSV-Orchestrated.ps1, Invoke-StoragePaths-Orchestrated.ps1, New-StorageCSV-Standalone.ps1, New-StoragePaths-Standalone.ps1, Set-StorageConfiguration.ps1, Set-StorageVolumesConfig.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-06-image-downloads — PS: Get-ImageDownloads.ps1, Invoke-MarketplaceImages-Orchestrated.ps1, New-MarketplaceImages-Standalone.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-07-logical-network-creation — PS: Invoke-LogicalNetworks-Orchestrated.ps1, New-LogicalNetworks-Standalone.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-08-post-deployment-verification — PS: Invoke-VerifyPostDeployment.ps1, Test-PostDeployment-Standalone.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

Stage 05 — Operational Foundations

phase-01-sdn-deployment

  • task-01-validate-sdn-prerequisites — PS: Test-SdnPrerequisites.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-enable-sdn-integration — PS: Set-SdnIntegration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-configure-network-security-groups — PS: Set-NsgConfiguration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

phase-02-monitoring-observability

  • task-01-configure-log-analytics-workspace — PS: Deploy-MonitoringSecurity.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-configure-azure-monitor-agent — PS: Set-AzureMonitorIntegration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-enable-hci-insights — PS: Enable-HciInsights.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-04-setup-alerting — PS: Watch-AzureLocalDeployment.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-05-deploy-omimswac-monitoring — PS: Set-OmimswacConfiguration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-06-configure-network-device-logging — PS: Deploy-SyslogVm.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-07-configure-datadog-integration — PS: Set-DatadogConfiguration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

phase-03-backup-dr

  • task-01-configure-azure-backup — PS: Set-BackupConfiguration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-configure-site-recovery — PS: Set-SiteRecoveryConfiguration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-test-dr-procedures — PS: Test-DisasterRecovery.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

phase-04-security-governance

  • task-01-enable-defender-for-cloud — PS: Enable-DefenderForCloud.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-apply-azure-policy-initiatives — PS: Set-AzurePolicyConfiguration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-configure-security-baselines — PS: Set-SecurityBaselines.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-04-enable-security-logging — PS: Set-SecurityLogging.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-05-configure-azure-update-manager — PS: Set-UpdateManagerConfiguration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

phase-05-licensing-telemetry

  • task-01-enable-azure-hybrid-benefit — PS: Enable-AzureHybridBenefit.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-activate-windows-server-subscription — PS: Enable-WindowsServerSubscription.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-configure-enhanced-telemetry — PS: Set-TelemetryConfiguration.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

Stage 06 — Cluster Testing & Validation

Stage 06 contains task folders directly (no phase subdirectories).

  • task-01-infrastructure-health-validation — PS: Test-InfrastructureHealth.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-02-vmfleet-storage-testing — PS: Invoke-VmFleetStorageTest.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-03-network-rdma-validation — PS: Test-NetworkRdmaValidation.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-04-high-availability-testing — PS: Test-HighAvailability.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-05-security-compliance-validation — PS: Test-SecurityCompliance.ps1

    • Azure CLI variant(s)
    • Bash variant(s)
  • task-06-backup-dr-validation — PS: Test-BackupDrValidation.ps1

    • Azure CLI variant(s)
    • Bash variant(s)

Acceptance Criteria

  • Each task folder has functional Azure CLI scripts in azurecli/
  • Each task folder has functional Bash scripts in bash/
  • Scripts follow repository coding standards and patterns
  • All scripts include proper help documentation / usage info
  • Scripts read from infrastructure.yml configuration where applicable
  • Scripts are tested against a reference environment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions