Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
K spuštění ukázkových playbooků v tomto článku se vyžaduje Ansible 2.8 (nebo novější).
Azure DevTest Labs umožňuje vývojářům automatizovat vytváření prostředí virtuálních počítačů pro své aplikace. Tato prostředí je možné nakonfigurovat pro vývoj, testování a trénování aplikací.
V tomto článku se naučíte:
- Vytvoření testovacího prostředí
- Nastavení zásad testovacího prostředí
- Nastavení plánů testovacího prostředí
- Vytvoření virtuální sítě testovacího prostředí
- Definování zdroje artefaktů pro testovací prostředí
- Vytvoření virtuálního počítače v testovacím prostředí
- Výpis zdrojů artefaktů a artefaktů testovacího prostředí
- Získání informací o Azure Resource Manageru pro zdroje artefaktů
- Vytvoření testovacího prostředí
- Vytvoření image testovacího prostředí
- Smazat laboratoř
Požadavky
- Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
- Instanční objekt Azure: Vytvořte instanční objekt a poznamenejte si následující hodnoty: appId, displayName, password a tenant.
Nainstalujte Ansible: Proveďte jednu z následujících možností:
- Instalace a konfigurace Ansible na virtuálním počítači s Linuxem
- Nakonfigurujte Azure Cloud Shell a – pokud nemáte přístup k virtuálnímu počítači s Linuxem – vytvořte virtuální počítač pomocí Ansible.
Vytvořit skupinu zdrojů
Fragment ukázkového playbooku vytvoří skupinu prostředků v Azure. Skupina prostředků je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.
- name: Create a resource group
azure_rm_resourcegroup:
name: "{{ resource_group }}"
location: "{{ location }}"
Vytvoření testovacího prostředí
Další úloha vytvoří ukázkovou laboratoř.
- name: Create the lab
azure_rm_devtestlab:
resource_group: "{{ resource_group }}"
name: "{{ lab_name }}"
location: "{{ location }}"
storage_type: standard
premium_data_disks: no
register: output_lab
Nastavení zásad testovacího prostředí
Můžete nastavit nastavení zásad testovacího prostředí. Můžete nastavit následující hodnoty:
-
user_owned_lab_vm_countje počet virtuálních počítačů, které může uživatel vlastnit. -
user_owned_lab_premium_vm_countje počet virtuálních počítačů úrovně Premium, které může uživatel vlastnit. -
lab_vm_countje maximální počet virtuálních počítačů testovacího prostředí. -
lab_premium_vm_countje maximální počet prémiových virtuálních počítačů laboratoře. -
lab_vm_sizeje povolená velikost virtuálních počítačů testovacího prostředí. -
gallery_imagejsou povolené obrázky z galerie. -
user_owned_lab_vm_count_in_subnetje maximální počet virtuálních počítačů uživatele v podsíti. -
lab_target_costje cílové náklady na laboratoř.
- name: Set the lab policies
azure_rm_devtestlabpolicy:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
policy_set_name: myDtlPolicySet
name: myDtlPolicy
fact_name: user_owned_lab_vm_count
threshold: 5
Nastavení plánů testovacího prostředí
Ukázková úloha v této části konfiguruje plán testovacího prostředí.
V následujícím fragmentu lab_vms_startup kódu se hodnota použije k určení doby spuštění virtuálního počítače. Stejně tak nastavení lab_vms_shutdown hodnoty určuje čas vypnutí virtuálního počítače testovacího prostředí.
- name: Set the lab schedule
azure_rm_devtestlabschedule:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: lab_vms_shutdown
time: "1030"
time_zone_id: "UTC+12"
register: output
Vytvoření virtuální sítě testovacího prostředí
Tato následující úloha vytvoří výchozí virtuální síť testovacího prostředí.
- name: Create the lab virtual network
azure_rm_devtestlabvirtualnetwork:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: "{{ vn_name }}"
location: "{{ location }}"
description: My lab virtual network
register: output
Definování zdroje artefaktů pro testovací prostředí
Zdroj artefaktů je správně strukturované úložiště GitHub, které obsahuje definici artefaktů a šablony Azure Resource Manageru. Každé testovací prostředí obsahuje předdefinované veřejné artefakty. Následující úkoly ukazují, jak vytvořit zdroj artefaktů pro testovací prostředí.
- name: Define the lab artifacts source
azure_rm_devtestlabartifactsource:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: "{{ artifacts_name }}"
uri: https://github.com/Azure/azure_preview_modules.git
source_type: github
folder_path: /tasks
security_token: "{{ github_token }}"
Vytvoření virtuálního počítače v testovacím prostředí
Vytvořte virtuální počítač v testovacím prostředí.
- name: Create a VM within the lab
azure_rm_devtestlabvirtualmachine:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: "{{ vm_name }}"
notes: Virtual machine notes, just something....
os_type: linux
vm_size: Standard_A2_v2
user_name: dtladmin
password: ZSasfovobocu$$21!
lab_subnet:
virtual_network_name: "{{ vn_name }}"
name: "{{ vn_name }}Subnet"
disallow_public_ip_address: no
image:
offer: UbuntuServer
publisher: Canonical
sku: 16.04-LTS
os_type: Linux
version: latest
artifacts:
- source_name: "{{ artifacts_name }}"
source_path: "/Artifacts/linux-install-mongodb"
allow_claim: no
expiration_date: "2029-02-22T01:49:12.117974Z"
Výpis zdrojů artefaktů a artefaktů testovacího prostředí
Pokud chcete zobrazit seznam všech výchozích a vlastních zdrojů artefaktů v testovacím prostředí, použijte následující úlohu:
- name: List the artifact sources
azure_rm_devtestlabartifactsource_facts:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
register: output
- debug:
var: output
Následující úkol obsahuje seznam všech artefaktů:
- name: List the artifact facts
azure_rm_devtestlabartifact_facts:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
artifact_source_name: public repo
register: output
- debug:
var: output
Získání informací o Azure Resource Manageru pro zdroje artefaktů
Pokud chcete zobrazit seznam všech šablon Azure Resource Manager v public environment repository, což je předdefinované úložiště obsahující šablony:
- name: List the Azure Resource Manager template facts
azure_rm_devtestlabartifactsource_facts:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
register: output
- debug:
var: output
Následující úloha načte podrobnosti o konkrétní šabloně Azure Resource Manageru z úložiště:
- name: Get Azure Resource Manager template facts
azure_rm_devtestlabarmtemplate_facts:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
artifact_source_name: "public environment repo"
name: ServiceFabric-LabCluster
register: output
- debug:
var: output
Vytvoření testovacího prostředí
Následující úloha vytvoří testovací prostředí na základě jedné ze šablon z veřejného úložiště prostředí.
- name: Create the lab environment
azure_rm_devtestlabenvironment:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
user_name: "@me"
name: myEnvironment
location: eastus
deployment_template: "{{ output_lab.id }}/artifactSources/public environment repo/armTemplates/WebApp"
register: output
Vytvoření image testovacího prostředí
Následující úloha vytvoří image z virtuálního počítače. Image umožňuje vytvářet identické virtuální počítače.
- name: Create the lab image
azure_rm_devtestlabcustomimage:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: myImage
source_vm: "{{ output_vm.virtualmachines[0]['name'] }}"
linux_os_state: non_deprovisioned
Smazat laboratoř
K odstranění laboratoře použijte následující úlohu:
- name: Delete the lab
azure_rm_devtestlab:
resource_group: "{{ resource_group }}"
name: "{{ lab_name }}"
state: absent
register: output
- name: Assert the change was correctly reported
assert:
that:
- output.changed
Získejte ukázkový playbook
Existují dva způsoby, jak získat kompletní ukázkový skript:
-
Stáhněte si příručku a uložte ji do
devtestlab-create.yml. - Vytvořte nový soubor s názvem
devtestlab-create.ymla zkopírujte do něj následující obsah:
---
- hosts: localhost
#roles:
# - azure.azure_preview_modules
vars:
resource_group: "{{ resource_group_name }}"
lab_name: myLab
vn_name: myLabVirtualNetwork
vm_name: myLabVm
artifacts_name: myArtifacts
github_token: "{{ lookup('env','GITHUB_ACCESS_TOKEN') }}"
location: eastus
tasks:
- name: Create a resource group
azure_rm_resourcegroup:
name: "{{ resource_group }}"
location: "{{ location }}"
- name: Create the lab
azure_rm_devtestlab:
resource_group: "{{ resource_group }}"
name: "{{ lab_name }}"
location: eastus
storage_type: standard
premium_data_disks: no
register: output_lab
- name: Set the lab policies
azure_rm_devtestlabpolicy:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
policy_set_name: myDtlPolicySet
name: myDtlPolicy
fact_name: user_owned_lab_vm_count
threshold: 5
- name: Set the lab schedule
azure_rm_devtestlabschedule:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: lab_vms_shutdown
time: "1030"
time_zone_id: "UTC+12"
register: output
- name: Create the lab virtual network
azure_rm_devtestlabvirtualnetwork:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: "{{ vn_name }}"
location: eastus
description: My lab virtual network
register: output
- name: Define the lab artifacts source
azure_rm_devtestlabartifactsource:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: "{{ artifacts_name }}"
uri: https://github.com/Azure/azure_preview_modules.git
source_type: github
folder_path: /tasks
security_token: "{{ github_token }}"
- name:
set_fact:
artifact_source:
- source_name: "{{ artifacts_name }}"
source_path: "/Artifacts/linux-install-mongodb"
when: "github_token | length > 0"
- name:
set_fact:
artifact_source: null
when: "github_token | length == 0"
- name: Create a VM within the lab
azure_rm_devtestlabvirtualmachine:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: "{{ vm_name }}"
notes: Virtual machine notes, just something....
os_type: linux
vm_size: Standard_A2_v2
user_name: dtladmin
password: ZSasfovobocu$$21!
lab_subnet:
virtual_network_name: "{{ vn_name }}"
name: "{{ vn_name }}Subnet"
disallow_public_ip_address: no
image:
offer: UbuntuServer
publisher: Canonical
sku: 16.04-LTS
os_type: Linux
version: latest
artifacts:
- source_name: "{{ artifacts_name }}"
source_path: "/Artifacts/linux-install-mongodb"
allow_claim: no
expiration_date: "2029-02-22T01:49:12.117974Z"
- name: List the artifact sources
azure_rm_devtestlabartifactsource_facts:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
register: output
- debug:
var: output
- name: List the artifact facts
azure_rm_devtestlabartifact_facts:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
artifact_source_name: public repo
register: output
- debug:
var: output
- name: List the Azure Resource Manager template facts
azure_rm_devtestlabarmtemplate_facts:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
artifact_source_name: "public environment repo"
register: output
- debug:
var: output
- name: Get Azure Resource Manager template facts
azure_rm_devtestlabarmtemplate_facts:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
artifact_source_name: "public environment repo"
name: ServiceFabric-LabCluster
register: output
- debug:
var: output
- name: Create the lab environment
azure_rm_devtestlabenvironment:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
user_name: "@me"
name: myEnvironment
location: eastus
deployment_template: "{{ output_lab.id }}/artifactSources/public environment repo/armTemplates/WebApp"
- name: Create the lab image
azure_rm_devtestlabcustomimage:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: myImage
source_vm: "{{ vm_name }}"
linux_os_state: non_deprovisioned
- name: Delete the lab
azure_rm_devtestlab:
resource_group: "{{ resource_group }}"
name: "{{ lab_name }}"
state: absent
Spusťte playbook
V této části spusťte playbook a otestujte různé funkce uvedené v tomto článku.
Před spuštěním playbooku proveďte následující změny:
- V části
varsnahraďte zástupný symbol{{ resource_group_name }}názvem vaší skupiny prostředků. - Uložte token GitHubu jako proměnnou prostředí s názvem
GITHUB_ACCESS_TOKEN.
Spusťte playbook pomocí ansible-playbook
ansible-playbook devtestlab-create.yml
Vyčistěte zdroje
Uložte následující kód jako
delete_rg.yml.--- - hosts: localhost tasks: - name: Deleting resource group - "{{ name }}" azure_rm_resourcegroup: name: "{{ name }}" state: absent register: rg - debug: var: rgSpusťte playbook pomocí příkazu ansible-playbook . Zástupný symbol nahraďte názvem skupiny prostředků, která se má odstranit. Odstraní se všechny prostředky v rámci skupiny prostředků.
ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"Klíčové body:
-
registerVzhledem k proměnné adebugčásti playbooku se výsledky zobrazí po dokončení příkazu.
-