From 4475da2f5118710a4d77d636fa990bfefa9c7cc1 Mon Sep 17 00:00:00 2001 From: Scott Harwell Date: Mon, 6 Nov 2023 06:43:19 -0500 Subject: [PATCH 1/7] Started refactor --- .ansible-lint | 5 +++++ changelogs/fragments/version-2.yml | 10 ++++++++++ galaxy.yml | 6 +++--- playbooks/create_log_analytics_workspace.yml | 2 +- playbooks/create_transit_network.yml | 2 +- playbooks/create_vm.yml | 2 +- playbooks/create_vnet.yml | 2 +- playbooks/delete_transit_network.yml | 2 +- playbooks/delete_vm.yml | 2 +- playbooks/delete_vnet.yml | 2 +- playbooks/disable_arc_extension.yml | 16 ++++++++-------- playbooks/enable_arc_extension.yml | 16 ++++++++-------- playbooks/install_arc_agent.yml | 2 +- playbooks/install_log_analytics_agent.yml | 2 +- playbooks/proxmox_vm_migration.yml | 6 +++--- .../replace_log_analytics_with_arc_linux.yml | 4 ++-- playbooks/uninstall_log_analytics_agent.yml | 2 +- 17 files changed, 49 insertions(+), 34 deletions(-) create mode 100644 changelogs/fragments/version-2.yml diff --git a/.ansible-lint b/.ansible-lint index 1d1fd03..b53f5e5 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -1,8 +1,13 @@ --- +profile: basic +quiet: false +verbosity: 1 + exclude_paths: - .cache/ - .github/ - test + - changelogs enable_list: - empty-string-compare diff --git a/changelogs/fragments/version-2.yml b/changelogs/fragments/version-2.yml new file mode 100644 index 0000000..c5b8024 --- /dev/null +++ b/changelogs/fragments/version-2.yml @@ -0,0 +1,10 @@ +--- +breaking_changes: + - Playbook paths have changed. + - Playbook names have changed. + - Playbooks now reference role by FQRN. +major_changes: + - Moved playbooks into playbooks folder so that playbooks may be called from + `namespace.collection.playbook` syntax. + - Updated Ansible Lint config. +release_summary: Updated the collection to match validated patterns. diff --git a/galaxy.yml b/galaxy.yml index ba8eea3..ce54865 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -1,7 +1,7 @@ --- -namespace: azure -name: infrastructure_config_demos -version: 1.7.0 +namespace: lab +name: azure_infrastructure_config_demos +version: 2.0.0 readme: README.md authors: - Scott Harwell diff --git a/playbooks/create_log_analytics_workspace.yml b/playbooks/create_log_analytics_workspace.yml index ad93751..d5de028 100644 --- a/playbooks/create_log_analytics_workspace.yml +++ b/playbooks/create_log_analytics_workspace.yml @@ -13,5 +13,5 @@ - name: Deploy log analytics workspace ansible.builtin.import_role: - name: log_analytics + name: lab.azure_infrastructure_config_demos.log_analytics tasks_from: create_workspace diff --git a/playbooks/create_transit_network.yml b/playbooks/create_transit_network.yml index 4dffc53..53bd190 100644 --- a/playbooks/create_transit_network.yml +++ b/playbooks/create_transit_network.yml @@ -14,7 +14,7 @@ - name: Create Peer Networking Model ansible.builtin.import_role: - name: transit_peered_networks + name: lab.azure_infrastructure_config_demos.transit_peered_networks vars: transit_peered_networks_operation: create diff --git a/playbooks/create_vm.yml b/playbooks/create_vm.yml index 31c991b..2879b56 100644 --- a/playbooks/create_vm.yml +++ b/playbooks/create_vm.yml @@ -41,6 +41,6 @@ - name: Create a VM ansible.builtin.import_role: - name: vms + name: lab.azure_infrastructure_config_demos.vms vars: vms_operation: create diff --git a/playbooks/create_vnet.yml b/playbooks/create_vnet.yml index 86515c4..660cb56 100644 --- a/playbooks/create_vnet.yml +++ b/playbooks/create_vnet.yml @@ -18,6 +18,6 @@ - name: Create a VNET ansible.builtin.import_role: - name: vnet + name: lab.azure_infrastructure_config_demos.vnet vars: vnet_operation: create diff --git a/playbooks/delete_transit_network.yml b/playbooks/delete_transit_network.yml index 47dfad4..45f9203 100644 --- a/playbooks/delete_transit_network.yml +++ b/playbooks/delete_transit_network.yml @@ -13,6 +13,6 @@ - name: Delete Transit Networking Model ansible.builtin.import_role: - name: transit_peered_networks + name: lab.azure_infrastructure_config_demos.transit_peered_networks vars: transit_peered_networks_operation: delete diff --git a/playbooks/delete_vm.yml b/playbooks/delete_vm.yml index c871b75..16a34a8 100644 --- a/playbooks/delete_vm.yml +++ b/playbooks/delete_vm.yml @@ -13,6 +13,6 @@ - name: Delete VM ansible.builtin.import_role: - name: vms + name: lab.azure_infrastructure_config_demos.vms vars: vms_operation: delete diff --git a/playbooks/delete_vnet.yml b/playbooks/delete_vnet.yml index 796d947..87e23a4 100644 --- a/playbooks/delete_vnet.yml +++ b/playbooks/delete_vnet.yml @@ -13,6 +13,6 @@ - name: Delete VM ansible.builtin.import_role: - name: vnet + name: lab.azure_infrastructure_config_demos.vnet vars: vnet_operation: delete diff --git a/playbooks/disable_arc_extension.yml b/playbooks/disable_arc_extension.yml index 5caa5d0..b019ce8 100644 --- a/playbooks/disable_arc_extension.yml +++ b/playbooks/disable_arc_extension.yml @@ -15,7 +15,7 @@ - name: Disable Key Vault on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: disable_arc_extension vars: arc_name: "{{ extensions.azure_key_vault.name }}" @@ -25,7 +25,7 @@ - name: Disable Hybrid Worker on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: disable_arc_extension vars: arc_name: "{{ extensions.azure_hybrid_runbook.name }}" @@ -35,7 +35,7 @@ - name: Disable Azure Monitor on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: disable_arc_extension vars: arc_name: "{{ extensions.azure_monitor_agent.name }}" @@ -45,7 +45,7 @@ - name: Disable Azure Monitor for VMs Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: disable_arc_extension vars: arc_name: "{{ extensions.azure_monitor_for_vms.name }}" @@ -55,7 +55,7 @@ - name: Disable AD SSH Login on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: disable_arc_extension vars: arc_name: "{{ extensions.ad_ssh_login.name }}" @@ -65,7 +65,7 @@ - name: Disable Custom Scripts on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: disable_arc_extension vars: arc_name: "{{ extensions.custom_script.name }}" @@ -75,7 +75,7 @@ - name: Disable Azure Log Analytics on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: disable_arc_extension vars: arc_name: "{{ extensions.log_analytics_agent.name }}" @@ -85,7 +85,7 @@ - name: Disable Microsoft Defender on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: disable_arc_extension vars: arc_name: "{{ extensions.microsoft_defender.name }}" diff --git a/playbooks/enable_arc_extension.yml b/playbooks/enable_arc_extension.yml index 31d70f2..befc194 100644 --- a/playbooks/enable_arc_extension.yml +++ b/playbooks/enable_arc_extension.yml @@ -21,7 +21,7 @@ - name: Enable Key Vault on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: enable_arc_extension vars: arc_name: "{{ extensions.azure_key_vault.name }}" @@ -31,7 +31,7 @@ - name: Enable Hybrid Worker on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: enable_arc_extension vars: arc_name: "{{ extensions.azure_hybrid_runbook.name }}" @@ -41,7 +41,7 @@ - name: Enable Azure Monitor on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: enable_arc_extension vars: arc_name: "{{ extensions.azure_monitor_agent.name }}" @@ -51,7 +51,7 @@ - name: Enable Azure Monitor for VMs Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: enable_arc_extension vars: arc_name: "{{ extensions.azure_monitor_for_vms.name }}" @@ -61,7 +61,7 @@ - name: Enable AD SSH Login on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: enable_arc_extension vars: arc_name: "{{ extensions.ad_ssh_login.name }}" @@ -71,7 +71,7 @@ - name: Enable Custom Scripts on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: enable_arc_extension vars: arc_name: "{{ extensions.custom_script.name }}" @@ -81,7 +81,7 @@ - name: Enable Azure Log Analytics on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: enable_arc_extension vars: arc_name: "{{ extensions.log_analytics_agent.name }}" @@ -91,7 +91,7 @@ - name: Enable Microsoft Defender on Linux ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: enable_arc_extension vars: arc_name: "{{ extensions.microsoft_defender.name }}" diff --git a/playbooks/install_arc_agent.yml b/playbooks/install_arc_agent.yml index 35bba8e..e787d0e 100644 --- a/playbooks/install_arc_agent.yml +++ b/playbooks/install_arc_agent.yml @@ -17,5 +17,5 @@ - name: Install Arc Agent ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: install_agent diff --git a/playbooks/install_log_analytics_agent.yml b/playbooks/install_log_analytics_agent.yml index b9f6e9f..60b7bb0 100644 --- a/playbooks/install_log_analytics_agent.yml +++ b/playbooks/install_log_analytics_agent.yml @@ -6,7 +6,7 @@ tasks: - name: Install log analytics agent ansible.builtin.import_role: - name: log_analytics + name: lab.azure_infrastructure_config_demos.log_analytics tasks_from: install_agent vars: log_analytics_workspace: "{{ workspace_name }}" diff --git a/playbooks/proxmox_vm_migration.yml b/playbooks/proxmox_vm_migration.yml index 5dabbbb..69d0eea 100644 --- a/playbooks/proxmox_vm_migration.yml +++ b/playbooks/proxmox_vm_migration.yml @@ -19,7 +19,7 @@ tasks: - name: Check if the converted image file already exists locally ansible.builtin.import_role: - name: proxmox_vm_conversion + name: lab.azure_infrastructure_config_demos.proxmox_vm_conversion tasks_from: local_vm_image_check tags: - proxmox @@ -33,7 +33,7 @@ when: not hostvars['localhost'].proxmox_vm_migration_local_image_exists.stat.exists or proxmox_vm_migration_run_if_local_image_exists ansible.builtin.import_role: - name: proxmox_vm_conversion + name: lab.azure_infrastructure_config_demos.proxmox_vm_conversion tags: - proxmox @@ -47,6 +47,6 @@ tasks: - name: Run migrate local vm role ansible.builtin.import_role: - name: vm_to_azure + name: lab.azure_infrastructure_config_demos.vm_to_azure tags: - azure diff --git a/playbooks/replace_log_analytics_with_arc_linux.yml b/playbooks/replace_log_analytics_with_arc_linux.yml index 47ac839..8b303dc 100644 --- a/playbooks/replace_log_analytics_with_arc_linux.yml +++ b/playbooks/replace_log_analytics_with_arc_linux.yml @@ -28,7 +28,7 @@ - name: Enable Arc Azure Monitor Agent Extension on Linux Hosts ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: enable_arc_extension vars: arc_hosts: "{{ linux_hosts }}" @@ -38,7 +38,7 @@ - name: Disable Arc Log Analytics Extension on Linux Hosts ansible.builtin.import_role: - name: arc + name: lab.azure_infrastructure_config_demos.arc tasks_from: disable_arc_extension vars: arc_hosts: "{{ linux_hosts }}" diff --git a/playbooks/uninstall_log_analytics_agent.yml b/playbooks/uninstall_log_analytics_agent.yml index d00a10c..7db2064 100644 --- a/playbooks/uninstall_log_analytics_agent.yml +++ b/playbooks/uninstall_log_analytics_agent.yml @@ -6,5 +6,5 @@ tasks: - name: Remove Log Analytics Agent ansible.builtin.import_role: - name: log_analytics + name: lab.azure_infrastructure_config_demos.log_analytics tasks_from: uninstall_agent From c2091050b400172505c58acf3c4f1d1b5c6f1c90 Mon Sep 17 00:00:00 2001 From: Scott Harwell Date: Mon, 6 Nov 2023 06:44:31 -0500 Subject: [PATCH 2/7] Updated pre-commit dependencies --- .ansible-lint | 1 + .pre-commit-config.yaml | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.ansible-lint b/.ansible-lint index b53f5e5..38b5112 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -18,3 +18,4 @@ enable_list: skip_list: - package-latest - yaml[line-length] + - var-naming[no-role-prefix] diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4f74618..ffce4de 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,15 +1,15 @@ --- repos: - repo: https://github.com/ansible-community/ansible-lint.git - rev: v6.17.2 + rev: v6.21.1 hooks: - id: ansible-lint - repo: https://github.com/igorshubovych/markdownlint-cli.git - rev: v0.35.0 + rev: v0.37.0 hooks: - id: markdownlint - repo: https://github.com/ansible-community/antsibull-changelog.git - rev: main + rev: 0.23.0 hooks: - id: antsibull-changelog-lint - id: antsibull-changelog-lint-changelog-yaml From b26e86b438826559630d2a736dbea49ba45679b7 Mon Sep 17 00:00:00 2001 From: Scott Harwell Date: Mon, 6 Nov 2023 06:51:01 -0500 Subject: [PATCH 3/7] Update requirements.yml file --- galaxy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/galaxy.yml b/galaxy.yml index ce54865..d207066 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -11,9 +11,9 @@ tags: - "cloud" - "azure" dependencies: - azure.azcollection: ">=1.16.0" - ansible.windows: ">=2.0.0" - community.general: ">=7.1.0" + azure.azcollection: "1.18.1" + ansible.windows: "2.0.0" + community.general: "8.0.0" repository: https://github.com/ansible-content-lab/azure.infrastructure_config_demos.git documentation: https://github.com/ansible-content-lab/azure.infrastructure_config_demos.git homepage: https://github.com/ansible-content-lab/azure.infrastructure_config_demos.git From dd1eceb67fb02d1ff10fbec73eb2a47f468e79f8 Mon Sep 17 00:00:00 2001 From: Scott Harwell Date: Mon, 6 Nov 2023 07:43:34 -0500 Subject: [PATCH 4/7] Allow for dep vers greater than tested --- galaxy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/galaxy.yml b/galaxy.yml index d207066..e54f2fe 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -11,9 +11,9 @@ tags: - "cloud" - "azure" dependencies: - azure.azcollection: "1.18.1" - ansible.windows: "2.0.0" - community.general: "8.0.0" + azure.azcollection: ">=1.18.1" + ansible.windows: ">=2.0.0" + community.general: ">=8.0.0" repository: https://github.com/ansible-content-lab/azure.infrastructure_config_demos.git documentation: https://github.com/ansible-content-lab/azure.infrastructure_config_demos.git homepage: https://github.com/ansible-content-lab/azure.infrastructure_config_demos.git From 40bcd2b0bd42fa939d869456e5e10d15833a4d51 Mon Sep 17 00:00:00 2001 From: Scott Harwell Date: Mon, 6 Nov 2023 08:26:28 -0500 Subject: [PATCH 5/7] Correct role paths --- CHANGELOG.rst | 2 +- README.md | 74 +++++++++---------- changelogs/config.yaml | 2 +- .../tasks/transit_peered_networks.yml | 4 +- roles/vms/tasks/create.yml | 10 +-- roles/vnet/tasks/create.yml | 6 +- 6 files changed, 49 insertions(+), 49 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 2cb0391..ef32efb 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,5 +1,5 @@ =============================================== -Azure.Infrastructure_Config_Demos Release Notes +lab.azure.azure_infrastructure_config_demos Release Notes =============================================== .. contents:: Topics diff --git a/README.md b/README.md index 7bda021..48834fc 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ [![Validation CI](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/actions/workflows/validate.yml/badge.svg)](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/actions/workflows/validate.yml) -# Ansible Collection - azure.infrastructure_config_demos +# Ansible Collection - lab.azure.azure_infrastructure_config_demos -This repository hosts the `azure.infrastructure_config_demos` Ansible Collection. +This repository hosts the `lab.azure.azure_infrastructure_config_demos` Ansible Collection. The collection includes a variety of Ansible roles and playbook to help automate the management of resources on Microsoft Azure. @@ -15,42 +15,42 @@ This content was developed as part of the [Ansible Content Lab for Cloud Content Click on the role name to be directed to the README specifically for that role. -| Name | Description | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [azure.infrastructure_config_demos.arc](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/arc/README.md) | A role that contains tasks for managing Arc-enabled servers such as installing the Azure agent and enabling Azure logging extensions. | -| [azure.infrastructure_config_demos.log_analytics](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/log_analytics/README.md) | A role that contains tasks to create and destroy an Azure Log Analytics workspace and then attach Linux-based VMs to the workspace by installing and configuring the Log Analytics agent. | -| [azure.infrastructure_config_demos.proxmox_vm_conversion](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/proxmox_vm_conversion/README.md) | A role that performs tasks against the Proxmox hypervisor to convert a VM machine image to an Azure format and moves the machine image to localhost for upload to Azure. | -| [azure.infrastructure_config_demos.transit_peered_networks](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/transit_peered_networks/README.md) | A role to create a hub-and-spoke VPC networking architecture that includes DMZ and private networks. | -| [azure.infrastructure_config_demos.vms](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/vms/README.md) | A role for repeatable VM management tasks. | -| [azure.infrastructure_config_demos.vm_migration_prep](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/vm_migration_prep/README.md) | A role that prepares a local virtual machine with OS and package requirements to lift-and-shift the VM to run on Azure. | -| [azure.infrastructure_config_demos.vm_migration](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/vm_migration/README.md) | A role that takes a VHD disk image, uploads it to Azure, and creates a virtual machine from the image. | -| [azure.infrastructure_config_demos.vnet](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/vnet/README.md) | A role for creating a simple VNET with a subnet. | +| Name | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [lab.azure.azure_infrastructure_config_demos.arc](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/arc/README.md) | A role that contains tasks for managing Arc-enabled servers such as installing the Azure agent and enabling Azure logging extensions. | +| [azure.infrastructure_config_demos.log_analytics](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/log_analytics/README.md) | A role that contains tasks to create and destroy an Azure Log Analytics workspace and then attach Linux-based VMs to the workspace by installing and configuring the Log Analytics agent. | +| [azure.infrastructure_config_demos.proxmox_vm_conversion](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/proxmox_vm_conversion/README.md) | A role that performs tasks against the Proxmox hypervisor to convert a VM machine image to an Azure format and moves the machine image to localhost for upload to Azure. | +| [azure.infrastructure_config_demos.transit_peered_networks](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/transit_peered_networks/README.md) | A role to create a hub-and-spoke VPC networking architecture that includes DMZ and private networks. | +| [azure.infrastructure_config_demos.vms](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/vms/README.md) | A role for repeatable VM management tasks. | +| [azure.infrastructure_config_demos.vm_migration_prep](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/vm_migration_prep/README.md) | A role that prepares a local virtual machine with OS and package requirements to lift-and-shift the VM to run on Azure. | +| [azure.infrastructure_config_demos.vm_migration](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/vm_migration/README.md) | A role that takes a VHD disk image, uploads it to Azure, and creates a virtual machine from the image. | +| [azure.infrastructure_config_demos.vnet](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/vnet/README.md) | A role for creating a simple VNET with a subnet. | ### Playbooks -| Name | Role(s) Used | Description | -| --------------------------------------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -| `create_transit_network.yml` | `roles.transit_peered_networks` | A playbook to create a multi-VPC hub-and-spoke network configuration using a transit gateway with DMZ and private networks. | -| `delete_transit_network.yml` | `roles.transit_peered_networks` | Deletes AWS resources created in the `create_transit_network` playbook. | -| `create_resource_group.yml` | N/A | Simple playbook demonstrating how to create an Azure resource group from extra vars. | -| `create_vm.yml` | `roles.vms` | A playbook that allows for VM creation using blueprints of defined variables. | -| `delete_vm.yml` | `roles.vms` | Deletes virtual machines and connected resources | -| `delete_resource_group.yml` | N/A | Deletes a resource group and all resources within it. | -| `update_rhel_vms.yml` | N/A | Runs `dnf upgrade -y` on RHEL VMs. | -| `create_log_analytics_workspace.yml` | `role.log_analytics` | Creates a Log Analytics workspace for storing log data with logging extensions. | -| `install_log_analytics_agent.yml` | `roles.log_analytics` | Deploys a Log Analytics workspace into your Azure subscription and then installs and configures Linux hosts to communicate with the workspace. | -| `uninstall_log_analytics_agent.yml` | `roles.log_analytics` | Uninstalls the Log Analytics agent on Linux hosts and then deletes the Log Analytics workspace from your Azure subscription. | -| `install_arc_agent.yml` | `roles.arc` | Installs the Azure Arc agent on inventory hosts. | -| `replace_log_analytics_with_arc_linux.yml` | `roles.arc` | Installs the Arc agent, deploys the Azure Monitoring extension, and removes the log analytics extension or agent on Linux hosts. | -| `enable_arc_azure_monitor.yml` | `roles.arc` | Enables the Azure Monitor extension on servers that have the Azure Arc agent installed. | -| `enable_arc_extension.yml` | `roles.arc` | Enables an Azure Arc extension. | -| `disable_arc_extension.yml` | `roles.arc` | Disables an Azure Arc extension. | -| `proxmox_vm_migration.yml` | 1. `roles.vm_to_azure_prep`
2. `roles.proxmox_vm_convertion`
3. `roles.vm_to_azure` | Prepares a local Proxmox virtual machine to run in Azure, uploads the disk image, and creates an Azure virtual machine. | +| Name | Role(s) Used | Description | +| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `create_transit_network.yml` | `lab.azure_infrastructure_config_demos.transit_peered_networks` | A playbook to create a multi-VPC hub-and-spoke network configuration using a transit gateway with DMZ and private networks. | +| `delete_transit_network.yml` | `lab.azure_infrastructure_config_demos.transit_peered_networks` | Deletes AWS resources created in the `create_transit_network` playbook. | +| `create_resource_group.yml` | N/A | Simple playbook demonstrating how to create an Azure resource group from extra vars. | +| `create_vm.yml` | `lab.azure_infrastructure_config_demos.vms` | A playbook that allows for VM creation using blueprints of defined variables. | +| `delete_vm.yml` | `lab.azure_infrastructure_config_demos.vms` | Deletes virtual machines and connected resources | +| `delete_resource_group.yml` | N/A | Deletes a resource group and all resources within it. | +| `update_rhel_vms.yml` | N/A | Runs `dnf upgrade -y` on RHEL VMs. | +| `create_log_analytics_workspace.yml` | `lab.azure_infrastructure_config_demos.log_analytics` | Creates a Log Analytics workspace for storing log data with logging extensions. | +| `install_log_analytics_agent.yml` | `lab.azure_infrastructure_config_demos.log_analytics` | Deploys a Log Analytics workspace into your Azure subscription and then installs and configures Linux hosts to communicate with the workspace. | +| `uninstall_log_analytics_agent.yml` | `lab.azure_infrastructure_config_demos.log_analytics` | Uninstalls the Log Analytics agent on Linux hosts and then deletes the Log Analytics workspace from your Azure subscription. | +| `install_arc_agent.yml` | `lab.azure_infrastructure_config_demos.arc` | Installs the Azure Arc agent on inventory hosts. | +| `replace_log_analytics_with_arc_linux.yml` | `lab.azure_infrastructure_config_demos.arc` | Installs the Arc agent, deploys the Azure Monitoring extension, and removes the log analytics extension or agent on Linux hosts. | +| `enable_arc_azure_monitor.yml` | `lab.azure_infrastructure_config_demos.arc` | Enables the Azure Monitor extension on servers that have the Azure Arc agent installed. | +| `enable_arc_extension.yml` | `lab.azure_infrastructure_config_demos.arc` | Enables an Azure Arc extension. | +| `disable_arc_extension.yml` | `lab.azure_infrastructure_config_demos.arc` | Disables an Azure Arc extension. | +| `proxmox_vm_migration.yml` | 1. `lab.azure_infrastructure_config_demos.vm_to_azure_prep`
2. `lab.azure_infrastructure_config_demos.proxmox_vm_convertion`
3. `lab.azure_infrastructure_config_demos.vm_to_azure` | Prepares a local Proxmox virtual machine to run in Azure, uploads the disk image, and creates an Azure virtual machine. | #### Create Network Playbooks -The `azure.infrastructure_config_demos.create_transit_network` playbook has another tasks block that will attempt to configure the VM resources deployed by the role a bit farther. When the role completes, VM instances in the DMZ will still need to be configured with SSH configuration in order to communicate with VM instances in other VNETs. +The `lab.azure.azure_infrastructure_config_demos.create_transit_network` playbook has another tasks block that will attempt to configure the VM resources deployed by the role a bit farther. When the role completes, VM instances in the DMZ will still need to be configured with SSH configuration in order to communicate with VM instances in other VNETs. To connect to the DMZ VM instance, the `ansible_ssh_private_key_file` variable needs to be set with the contents of the private key for SSH connections so that the machine running the playbook can connect to the newly created VM instance. You may set this variable in any way that Ansible allows, i.e. extra var, host var, machine credential, etc. It must be set or the configuration step will be skipped. The `ansible_ssh_user` variable is set automatically to the user `azureuser` that is standard on AWS AMIs. @@ -77,11 +77,11 @@ Playbooks with "vm_migration" in the title are intended to demonstrate moving VM When running these playbooks, it is recommended that you clone the VM for preparation and migration to Microsoft so that the updates to the VM do not impact its local running state. -| Role | Description | -| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `roles.vm_to_azure_prep` | This role will prepare the operating system by updating kernel modules and drivers, and installing Azure-required packages. The role will also prepare the networking of the VM. This can leave the VM in a state where it cannot be connected to unless the VM is moved to Azure. | -| `roles.proxmox_vm_conversion` | This role will convert the VM disk image into an Azure-compatible format. Currently, Proxmox is the hypervisor that is supported. Adding more conversion roles for other hypervisors will come next. | -| `roles.vm_to_azure` | This role moves the VM disk image to Azure blob storage and then configures and deploys a VM based on the VM image. | +| Role | Description | +| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `lab.azure_infrastructure_config_demos.vm_to_azure_prep` | This role will prepare the operating system by updating kernel modules and drivers, and installing Azure-required packages. The role will also prepare the networking of the VM. This can leave the VM in a state where it cannot be connected to unless the VM is moved to Azure. | +| `lab.azure_infrastructure_config_demos.proxmox_vm_conversion` | This role will convert the VM disk image into an Azure-compatible format. Currently, Proxmox is the hypervisor that is supported. Adding more conversion roles for other hypervisors will come next. | +| `lab.azure_infrastructure_config_demos.vm_to_azure` | This role moves the VM disk image to Azure blob storage and then configures and deploys a VM based on the VM image. | There are a number of variables that can be set for each of the roles. The README for those roles goes into what variables can be set. However, below is an example of setting variables in an environment file, and then running the playbook locally. @@ -126,7 +126,7 @@ rhel.vm.hostname ansible_user="ansible" ansible_ssh_private_key_file="/home/runn ##### Running the Playbook ```bash -ansible-navigator run azure.infrastructure_config_demos.proxmox_vm_migration \ +ansible-navigator run lab.azure.azure_infrastructure_config_demos.proxmox_vm_migration \ -i inventory/hosts \ --pae false \ --mode stdout \ diff --git a/changelogs/config.yaml b/changelogs/config.yaml index 2bb0210..3e8d247 100644 --- a/changelogs/config.yaml +++ b/changelogs/config.yaml @@ -27,6 +27,6 @@ sections: - Bugfixes - - known_issues - Known Issues -title: Azure.Infrastructure_Config_Demos +title: lab.azure.azure_infrastructure_config_demos trivial_section_name: trivial use_fqcn: true diff --git a/molecule/transit_peered_networks/tasks/transit_peered_networks.yml b/molecule/transit_peered_networks/tasks/transit_peered_networks.yml index 471abde..26f89e6 100644 --- a/molecule/transit_peered_networks/tasks/transit_peered_networks.yml +++ b/molecule/transit_peered_networks/tasks/transit_peered_networks.yml @@ -26,7 +26,7 @@ - name: Create Peer Networking Model ansible.builtin.import_role: - name: azure.infrastructure_config_demos.transit_peered_networks + name: lab.azure.azure_infrastructure_config_demos.transit_peered_networks vars: transit_peered_networks_operation: create @@ -43,6 +43,6 @@ always: - name: Delete Transit Network ansible.builtin.import_role: - name: azure.infrastructure_config_demos.transit_peered_networks + name: lab.azure.azure_infrastructure_config_demos.transit_peered_networks vars: transit_peered_networks_operation: delete diff --git a/roles/vms/tasks/create.yml b/roles/vms/tasks/create.yml index ae68c46..9d0e7c0 100644 --- a/roles/vms/tasks/create.yml +++ b/roles/vms/tasks/create.yml @@ -5,7 +5,7 @@ name: "{{ network_sec_group_name }}" rules: "{{ create_vm_security_group_rules }}" tags: - ansible-collection: azure.infrastructure_config_demos + ansible-collection: lab.azure.azure_infrastructure_config_demos ansible-role: vms ansible-task: create_rhel_vm @@ -17,7 +17,7 @@ subnet: "{{ subnet_name }}" security_group: "{{ network_sec_group_name }}" tags: - ansible-collection: azure.infrastructure_config_demos + ansible-collection: lab.azure.azure_infrastructure_config_demos ansible-role: vms ansible-task: create_rhel_vm register: vnic_results @@ -29,7 +29,7 @@ allocation_method: Static name: "{{ public_ip_name }}" tags: - ansible-collection: azure.infrastructure_config_demos + ansible-collection: lab.azure.azure_infrastructure_config_demos ansible-role: vms ansible-task: create_rhel_vm register: ip_addr_results @@ -44,7 +44,7 @@ public_ip_name: "{{ public_ip_name }}" security_group: "{{ network_sec_group_name }}" tags: - ansible-collection: azure.infrastructure_config_demos + ansible-collection: lab.azure.azure_infrastructure_config_demos ansible-role: vms ansible-task: create_rhel_vm register: vnic_results @@ -71,7 +71,7 @@ max_price: "{{ create_vm_max_price }}" priority: "{{ create_vm_priority }}" tags: - ansible-collection: azure.infrastructure_config_demos + ansible-collection: lab.azure.azure_infrastructure_config_demos ansible-role: vms ansible-task: create_vm blueprint: "{{ create_vm_blueprint | default(omit) }}" diff --git a/roles/vnet/tasks/create.yml b/roles/vnet/tasks/create.yml index f22c950..9a48fdf 100644 --- a/roles/vnet/tasks/create.yml +++ b/roles/vnet/tasks/create.yml @@ -10,7 +10,7 @@ state: present tags: deployment: ansible - ansible-collection: azure.infrastructure_config_demos + ansible-collection: lab.azure.azure_infrastructure_config_demos ansible-role: vnet ansible-task: create @@ -27,7 +27,7 @@ disable_bgp_route_propagation: true tags: deployment: ansible - ansible-collection: azure.infrastructure_config_demos + ansible-collection: lab.azure.azure_infrastructure_config_demos ansible-role: vnet ansible-task: create register: vnet_route_table @@ -42,7 +42,7 @@ tags: deployment: ansible network-role: hub - ansible-collection: azure.infrastructure_config_demos + ansible-collection: lab.azure.azure_infrastructure_config_demos ansible-role: vnet ansible-task: create register: vnet_vnet From ac6bb0a485e0de4b10529b687899b5f2d43ebff0 Mon Sep 17 00:00:00 2001 From: Scott Harwell Date: Mon, 6 Nov 2023 08:30:56 -0500 Subject: [PATCH 6/7] Readme link fixes --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 48834fc..e25cbfd 100644 --- a/README.md +++ b/README.md @@ -15,16 +15,16 @@ This content was developed as part of the [Ansible Content Lab for Cloud Content Click on the role name to be directed to the README specifically for that role. -| Name | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [lab.azure.azure_infrastructure_config_demos.arc](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/arc/README.md) | A role that contains tasks for managing Arc-enabled servers such as installing the Azure agent and enabling Azure logging extensions. | -| [azure.infrastructure_config_demos.log_analytics](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/log_analytics/README.md) | A role that contains tasks to create and destroy an Azure Log Analytics workspace and then attach Linux-based VMs to the workspace by installing and configuring the Log Analytics agent. | -| [azure.infrastructure_config_demos.proxmox_vm_conversion](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/proxmox_vm_conversion/README.md) | A role that performs tasks against the Proxmox hypervisor to convert a VM machine image to an Azure format and moves the machine image to localhost for upload to Azure. | -| [azure.infrastructure_config_demos.transit_peered_networks](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/transit_peered_networks/README.md) | A role to create a hub-and-spoke VPC networking architecture that includes DMZ and private networks. | -| [azure.infrastructure_config_demos.vms](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/vms/README.md) | A role for repeatable VM management tasks. | -| [azure.infrastructure_config_demos.vm_migration_prep](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/vm_migration_prep/README.md) | A role that prepares a local virtual machine with OS and package requirements to lift-and-shift the VM to run on Azure. | -| [azure.infrastructure_config_demos.vm_migration](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/vm_migration/README.md) | A role that takes a VHD disk image, uploads it to Azure, and creates a virtual machine from the image. | -| [azure.infrastructure_config_demos.vnet](https://github.com/ansible-content-lab/lab.azure.azure_infrastructure_config_demos/blob/main/roles/vnet/README.md) | A role for creating a simple VNET with a subnet. | +| Name | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [lab.azure_infrastructure_config_demos.azure_infrastructure_config_demos.arc](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/arc/README.md) | A role that contains tasks for managing Arc-enabled servers such as installing the Azure agent and enabling Azure logging extensions. | +| [lab.azure_infrastructure_config_demos.log_analytics](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/log_analytics/README.md) | A role that contains tasks to create and destroy an Azure Log Analytics workspace and then attach Linux-based VMs to the workspace by installing and configuring the Log Analytics agent. | +| [lab.azure_infrastructure_config_demos.proxmox_vm_conversion](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/proxmox_vm_conversion/README.md) | A role that performs tasks against the Proxmox hypervisor to convert a VM machine image to an Azure format and moves the machine image to localhost for upload to Azure. | +| [lab.azure_infrastructure_config_demos.transit_peered_networks](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/transit_peered_networks/README.md) | A role to create a hub-and-spoke VPC networking architecture that includes DMZ and private networks. | +| [lab.azure_infrastructure_config_demos.vms](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/vms/README.md) | A role for repeatable VM management tasks. | +| [lab.azure_infrastructure_config_demos.vm_migration_prep](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/vm_migration_prep/README.md) | A role that prepares a local virtual machine with OS and package requirements to lift-and-shift the VM to run on Azure. | +| [lab.azure_infrastructure_config_demos.vm_migration](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/vm_migration/README.md) | A role that takes a VHD disk image, uploads it to Azure, and creates a virtual machine from the image. | +| [lab.azure_infrastructure_config_demos.vnet](https://github.com/ansible-content-lab/azure.infrastructure_config_demos/blob/main/roles/vnet/README.md) | A role for creating a simple VNET with a subnet. | ### Playbooks From bccf0f7ab013785931e47015decc366c550ff216 Mon Sep 17 00:00:00 2001 From: Scott Harwell Date: Mon, 6 Nov 2023 10:58:07 -0500 Subject: [PATCH 7/7] Added changelog --- CHANGELOG.rst | 25 +++++++++++++++++++++++-- changelogs/.plugin-cache.yaml | 2 +- changelogs/changelog.yaml | 14 ++++++++++++++ changelogs/fragments/version-2.yml | 10 ---------- 4 files changed, 38 insertions(+), 13 deletions(-) delete mode 100644 changelogs/fragments/version-2.yml diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ef32efb..75fb2d7 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,11 +1,32 @@ -=============================================== +========================================================= lab.azure.azure_infrastructure_config_demos Release Notes -=============================================== +========================================================= .. contents:: Topics This changelog describes changes after version 1.4.2. +v2.0.0 +====== + +Release Summary +--------------- + +Updated the collection to match validated patterns. + +Major Changes +------------- + +- Moved playbooks into playbooks folder so that playbooks may be called from `namespace.collection.playbook` syntax. +- Updated Ansible Lint config. + +Breaking Changes / Porting Guide +-------------------------------- + +- Playbook names have changed. +- Playbook paths have changed. +- Playbooks now reference role by FQRN. + v1.7.0 ====== diff --git a/changelogs/.plugin-cache.yaml b/changelogs/.plugin-cache.yaml index 09ef653..8f3a756 100644 --- a/changelogs/.plugin-cache.yaml +++ b/changelogs/.plugin-cache.yaml @@ -16,4 +16,4 @@ plugins: strategy: {} test: {} vars: {} -version: 1.7.0 +version: 5.0.0 diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml index 787101b..1010c2d 100644 --- a/changelogs/changelog.yaml +++ b/changelogs/changelog.yaml @@ -30,3 +30,17 @@ releases: Moved playbooks into playbooks folder and updated dependency versions. release_date: "2023-07-18" + 2.0.0: + changes: + breaking_changes: + - Playbook names have changed. + - Playbook paths have changed. + - Playbooks now reference role by FQRN. + major_changes: + - Moved playbooks into playbooks folder so that playbooks may be called from + `namespace.collection.playbook` syntax. + - Updated Ansible Lint config. + release_summary: Updated the collection to match validated patterns. + fragments: + - version-2.yml + release_date: "2023-11-06" diff --git a/changelogs/fragments/version-2.yml b/changelogs/fragments/version-2.yml deleted file mode 100644 index c5b8024..0000000 --- a/changelogs/fragments/version-2.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -breaking_changes: - - Playbook paths have changed. - - Playbook names have changed. - - Playbooks now reference role by FQRN. -major_changes: - - Moved playbooks into playbooks folder so that playbooks may be called from - `namespace.collection.playbook` syntax. - - Updated Ansible Lint config. -release_summary: Updated the collection to match validated patterns.