Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Bu makaledeki örnek playbook'ları çalıştırmak için Ansible 2.8 (veya üzeri) gereklidir.
Azure DevTest Labs, geliştiricilerin uygulamaları için VM ortamları oluşturmayı otomatikleştirmesine olanak tanır. Bu ortamlar uygulama geliştirme, test etme ve eğitim için yapılandırılabilir.
Bu makalede şunları öğreneceksiniz:
- Laboratuvar oluşturma
- Laboratuvar ilkelerini ayarlama
- Laboratuvar zamanlamalarını ayarlama
- Laboratuvar sanal ağını oluşturma
- Laboratuvar için bir artefakt kaynağı tanımlayın
- Laboratuvarda VM oluşturma
- Laboratuvarın eser kaynaklarını ve eserlerini listele
- Yapıt kaynakları için Azure Resource Manager bilgilerini alma
- Laboratuvar ortamını oluşturma
- Laboratuvar görüntüsünü oluşturma
- Laboratuvarı silme
Önkoşullar
- Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Azure hizmet sorumlusu: Aşağıdaki değerleri not ederek bir hizmet sorumlusu oluşturun: appId, displayName, password ve tenant.
Ansible'ı Yükleme: Aşağıdaki seçeneklerden birini yapın:
- Ansible'ı Linux sanal makinesine yükleme ve yapılandırma
- Azure Cloud Shell'i yapılandırın ve Linux sanal makinesine erişiminiz yoksa Ansible ile bir sanal makine oluşturun.
Kaynak grubu oluştur
Örnek playbook kod parçacığı bir Azure kaynak grubu oluşturur. Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği mantıksal bir kapsayıcıdır.
- name: Create a resource group
azure_rm_resourcegroup:
name: "{{ resource_group }}"
location: "{{ location }}"
Laboratuvarı oluşturma
Sonraki görev örnek laboratuvarı oluşturur.
- 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
Laboratuvar ilkelerini ayarlama
Laboratuvar ilkesi ayarlarını yapabilirsiniz. Aşağıdaki değerler ayarlanabilir:
-
user_owned_lab_vm_countkullanıcının sahip olabileceği VM sayısıdır -
user_owned_lab_premium_vm_countkullanıcının sahip olabileceği premium VM sayısıdır -
lab_vm_countlaboratuvar VM'lerinin maksimum sayısıdır -
lab_premium_vm_countlaboratuvar premium VM'lerinin maksimum sayısıdır -
lab_vm_sizeizin verilen laboratuvar VM'lerinin boyutlarıdır -
gallery_imageizin verilen galeri resimleridir -
user_owned_lab_vm_count_in_subnetbir alt ağdaki kullanıcı VM'lerinin maksimum sayısıdır -
lab_target_costlaboratuvarın hedef maliyetidir
- 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
Laboratuvar zamanlamalarını ayarlama
Bu bölümdeki örnek görev, laboratuvar zamanlamasını yapılandırıyor.
Aşağıdaki kod parçacığında lab_vms_startup , değeri VM başlangıç zamanını belirtmek için kullanılır. Benzer şekilde, değerin lab_vms_shutdown ayarlanması laboratuvar VM kapatma süresini belirler.
- 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
Laboratuvar sanal ağını oluşturma
Aşağıdaki görev varsayılan laboratuvar sanal ağını oluşturur.
- 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
Laboratuvar için bir ürün kaynağı tanımlayın
Yapıt kaynağı, yapıt tanımını ve Azure Resource Manager şablonlarını içeren düzgün yapılandırılmış bir GitHub deposudur. Her laboratuvar önceden tanımlanmış genel artefaktlarla birlikte gelir. Aşağıdaki görevler, laboratuvar için yapıt kaynağının nasıl oluşturulacağını gösterir.
- 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 }}"
Laboratuvarda VM oluşturma
Laboratuvarda bir VM oluşturun.
- 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"
Laboratuvarın artefakt kaynaklarını ve artefaktlarını listeleyin
Laboratuvardaki tüm varsayılan ve özel yapıt kaynaklarını listelemek için aşağıdaki görevi kullanın:
- name: List the artifact sources
azure_rm_devtestlabartifactsource_facts:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
register: output
- debug:
var: output
Aşağıdaki görev tüm yapıtları listeler:
- 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
Yapıt kaynakları için Azure Resource Manager bilgilerini alma
içindeki public environment repository, önceden tanımlanmış ve şablonları içeren depodaki tüm Azure Resource Manager şablonlarını listelemek için:
- 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
Aşağıdaki görev de depodan belirli bir Azure Resource Manager şablonunun ayrıntılarını alır:
- 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
Laboratuvar ortamını oluşturma
Aşağıdaki görev, ortak ortam deposundaki şablonlardan birini temel alarak laboratuvar ortamını oluşturur.
- 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
Laboratuvar görüntüsünü oluşturma
Aşağıdaki görev bir VM'den görüntü oluşturur. Görüntü, aynı VM'leri oluşturmanıza olanak tanır.
- 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
Laboratuvarı silme
Laboratuvarı silmek için aşağıdaki görevi kullanın:
- 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
Örnek senaryo kitabını edinin
Örnek playbook'un tamamını almanın iki yolu vardır:
-
Playbook'u indirin ve
devtestlab-create.yml'e kaydedin. - adlı
devtestlab-create.ymlyeni bir dosya oluşturun ve aşağıdaki içeriği bu dosyaya kopyalayın:
---
- 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
Playbook'u çalıştır
Bu bölümde, bu makalede gösterilen çeşitli özellikleri test etmek için playbook'u çalıştırın.
Playbook'u çalıştırmadan önce aşağıdaki değişiklikleri yapın:
-
varsbölümünde yer tutucuyu{{ resource_group_name }}kaynak grubunuzun adıyla değiştirin. - GitHub belirtecini adlı
GITHUB_ACCESS_TOKENbir ortam değişkeni olarak depolayın.
Ansible-playbook kullanarak playbook'u çalıştırın
ansible-playbook devtestlab-create.yml
Kaynakları temizle
Aşağıdaki kodu olarak
delete_rg.ymlkaydedin.--- - hosts: localhost tasks: - name: Deleting resource group - "{{ name }}" azure_rm_resourcegroup: name: "{{ name }}" state: absent register: rg - debug: var: rgansible-playbook komutunu kullanarak playbook'u çalıştırın. Yer tutucuyu silinecek kaynak grubunun adıyla değiştirin. Kaynak grubundaki tüm kaynaklar silinir.
ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"Önemli noktalar:
- Playbook'un
registerdeğişkeni vedebugbölümü nedeniyle, komut tamamlandığında sonuçlar görüntülenir.
- Playbook'un