Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Fontos
Az Ansible 2.8 (vagy újabb) szükséges a jelen cikkben szereplő minta forgatókönyvek futtatásához.
Az Azure DevTest Labs lehetővé teszi a fejlesztők számára, hogy automatizálják a virtuálisgép-környezetek létrehozását az alkalmazásaikhoz. Ezek a környezetek alkalmazásfejlesztéshez, teszteléshez és betanításhoz konfigurálhatók.
Ebből a cikkből megtudhatja, hogyan:
- Labor létrehozása
- A laborszabályzatok beállítása
- A tesztkörnyezet ütemezésének beállítása
- A tesztkörnyezet virtuális hálózatának létrehozása
- Artefaktumforrás definiálása a laborhoz
- Virtuális gép létrehozása a laborban
- A laboratórium műtárgy forrásainak és műtárgyainak listázása
- Azure Resource Manager-információk lekérése az összetevők forrásaihoz
- A tesztkörnyezet létrehozása
- A laborrendszerkép létrehozása
- A tesztkörnyezet törlése
Előfeltételek
- Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, a kezdés előtt hozzon létre egy ingyenes fiókot .
- Azure szolgáltatási főszerepkör: Hozzon létre egy szolgáltatási főszerepkört, és jegyezze fel a következő értékeket: appId, displayName, password és tenant.
Az Ansible telepítése: Válasszon az alábbi lehetőségek közül:
- Az Ansible telepítése és konfigurálása Linux rendszerű virtuális gépen
- Konfigurálja az Azure Cloud Shellt , és – ha nincs hozzáférése Linux rendszerű virtuális géphez – hozzon létre egy virtuális gépet az Ansible használatával.
Erőforráscsoport létrehozása
A minta forgatókönyv-kódrészlet létrehoz egy Azure-erőforráscsoportot. Az erőforráscsoport egy logikai tároló, amelyben az Azure-erőforrások üzembe helyezése és kezelése történik.
- name: Create a resource group
azure_rm_resourcegroup:
name: "{{ resource_group }}"
location: "{{ location }}"
A tesztkörnyezet létrehozása
A következő feladat létrehozza a mintalabort.
- 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
A laborszabályzatok beállítása
Beállíthatja a laborházirend-beállításokat. A következő értékek állíthatók be:
-
user_owned_lab_vm_counta felhasználó által birtokolható virtuális gépek száma -
user_owned_lab_premium_vm_counta felhasználó által birtokolható prémium virtuális gépek száma -
lab_vm_counta tesztkörnyezeti virtuális gépek maximális száma -
lab_premium_vm_counta prémium szintű tesztkörnyezeti virtuális gépek maximális száma -
lab_vm_sizeaz engedélyezett tesztkörnyezeti virtuális gépek mérete(i) -
gallery_imageaz engedélyezett galéria kép(ek) -
user_owned_lab_vm_count_in_subneta felhasználó virtuális gépeinek maximális száma egy alhálózatban - A labor célköltsége
lab_target_cost.
- 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
A tesztkörnyezet ütemezésének beállítása
Az ebben a szakaszban található mintafeladat konfigurálja a labor ütemezését.
A következő kódrészletben az lab_vms_startup érték a virtuális gép indítási idejének megadására szolgál. Hasonlóképpen, az lab_vms_shutdown érték beállítása létrehozza a tesztkörnyezeti virtuális gép leállítási idejét.
- 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
A tesztkörnyezet virtuális hálózatának létrehozása
Ez a következő feladat létrehozza az alapértelmezett tesztkörnyezeti virtuális hálózatot.
- 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
A laboratóriumhoz szükséges artifact forrás meghatározása
Az összetevők forrása egy megfelelően strukturált GitHub-adattár, amely összetevődefiníciót és Azure Resource Manager-sablonokat tartalmaz. Minden labor előre meghatározott nyilvános összetevőkkel rendelkezik. Az alábbi feladatok bemutatják, hogyan hozhat létre összetevőforrást egy tesztkörnyezethez.
- 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 }}"
Virtuális gép létrehozása a laborban
Hozzon létre egy virtuális gépet a laborban.
- 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"
A laboratórium artefaktumforrásainak és artefaktumainak listázása
A labor összes alapértelmezett és egyéni összetevőforrásának listázásához használja a következő feladatot:
- name: List the artifact sources
azure_rm_devtestlabartifactsource_facts:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
register: output
- debug:
var: output
Az alábbi feladat felsorolja az összes összetevőt:
- 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
Azure Resource Manager-információk lekérése az összetevők forrásaihoz
Ha szeretné az összes Azure Resource Manager-sablont listázni az előre meghatározott adattárban public environment repository, akkor kövesse ezeket a lépéseket:
- 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
Az alábbi feladat pedig egy adott Azure Resource Manager-sablon részleteit kéri le az adattárból:
- 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
A tesztkörnyezet létrehozása
Az alábbi feladat a nyilvános környezet tárházának egyik sablonja alapján hozza létre a tesztkörnyezetet.
- 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
A laboratóriumi képfájl létrehozása
Az alábbi feladat létrehoz egy rendszerképet egy virtuális gépről. A kép lehetővé teszi, hogy azonos virtuális gépeket hozzon létre.
- 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
A tesztkörnyezet törlése
A tesztkörnyezet törléséhez használja a következő feladatot:
- 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
A minta forgatókönyv lekérése
A teljes minta forgatókönyv kétféleképpen szerezhető be:
-
Töltse le a forgatókönyvet , és mentse a következőre
devtestlab-create.yml: . - Hozzon létre egy új, elnevezett
devtestlab-create.ymlfájlt, és másolja a következő tartalmat a fájlba:
---
- 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
A forgatókönyv futtatása
Ebben a szakaszban futtassa a forgatókönyvet a cikkben bemutatott különböző funkciók teszteléséhez.
A forgatókönyv futtatása előtt végezze el a következő módosításokat:
- A
varsszakaszban cserélje le a{{ resource_group_name }}helyőrzőt az erőforráscsoport nevére. - A GitHub-jogkivonatot egy környezeti változóként tárolja.
GITHUB_ACCESS_TOKEN
A forgatókönyv futtatása ansible-playbook használatával
ansible-playbook devtestlab-create.yml
Erőforrások tisztítása
Mentse a következő kódot.
delete_rg.yml--- - hosts: localhost tasks: - name: Deleting resource group - "{{ name }}" azure_rm_resourcegroup: name: "{{ name }}" state: absent register: rg - debug: var: rgFuttassa a forgatókönyvet az ansible-playbook paranccsal. Cserélje le a helyőrzőt a törölni kívánt erőforráscsoport nevére. Az erőforráscsoporton belüli összes erőforrás törlődik.
ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"Főbb pontok:
-
registerA forgatókönyv változója ésdebugszakasza miatt az eredmények a parancs befejeződésekor jelennek meg.
-