0

我正在寻找一种工具或某种方式来管理 Azure NSG 配置。目前,NSG 规则是临时手动更改的。我希望以更加脚本化的方式实现此 NSG 配置更改,以便我也可以跟踪更改历史记录。

我正在查看基于 Git 的 NSG 存储库,其中 NSG 的所有 ARM 模板具有不同的参数文件,并通过 Azure powershell 运行或作为 Azure Devops CI/CD 管道的一部分运行。

我不确定 Ansible 是否可以帮助管理 NSG 或 Terraform 是否可以提供帮助。

我喜欢为此考虑 Ansible。任何人都知道如何管理 NSG 的这一要求。

谢谢

4

1 回答 1

0

您可以通过 ARM 模板、Teffaform 和 Ansible 管理 Azure NSG 配置。

  • ARM 模板

1,您可以查看以下示例来创建 ARM 模板来管理 Azure NSG。

创建网络安全组

如何使用模板创建 NSG

更多示例请查看官方文档

2,创建ARM模板并推送到你的git repo之后。您可以创建Azure 管道来自动化部署。请参阅此处的教程

3、然后您需要创建一个azure Resource Manager 服务连接以将您的 Azure 订阅连接到 Azure devops。有关示例,请参见此线程。

4,在您的 azure devops 管道中。您可以使用ARM 模板部署任务来部署 ARM 模板。

steps:
- task: AzureResourceManagerTemplateDeployment@3
  displayName: 'ARM Template deployment: Resource Group scope'
  inputs:
    azureResourceManagerConnection: 'azure Resource Manager service connection'
    subscriptionId: '...'
    resourceGroupName: '...'
    location: 'East US'
    csmFile: azuredeploy.json
    csmParametersFile: azuredeploy.parameters.json 
  • Teffaform

1、创建Teffaform配置文件。请参见此处的示例。

查看terraform-azurerm-network-security-group 模块了解更多信息。

2、上传Teffaform配置文件到git repo。创建 Azure devops 管道

3,使用ARM模板创建像上面一样的azure Resource Manager服务连接。

4、在天蓝色的devops管道中使用Terraform任务。

steps:
- task: ms-devlabs.custom-terraform-tasks.custom-terraform-installer-task.TerraformInstaller@0
  displayName: 'Install Terraform 0.12.3'

- task: ms-devlabs.custom-terraform-tasks.custom-terraform-release-task.TerraformTaskV1@0
  displayName: 'Terraform : azurerm'
  inputs:
    command: apply
    environmentServiceNameAzureRM: 'azure Resource Manager service connection'
  • Ansible

1、使用插件 azure.azcollection.azure_rm_securitygroup 创建 Ansible playbook

请在此处查看示例

2、上传ansible playbook到git repo。创建 Azure devops 管道。在您的管道中使用Ansible 任务。

请查看此详细教程,了解有关如何在 azure devops 管道中运行 ansible playbook 的更多信息。

  • Azure powershell/Azure CLI 命令

您可以使用 azure powershell 或 azure cli 命令来管理 azure nsg。并在 azure devops 管道中运行 Azure powershell task 或 azure cli task 中的命令。

请查看此文档以获取更多信息。

于 2021-01-28T06:45:58.980 回答