Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Ansible 2.9 (eller senare) krävs för att köra exempelspelböckerna i den här artikeln.
Delat bildgalleri är en tjänst som gör att du enkelt kan hantera, dela och organisera anpassade hanterade avbildningar. Den här funktionen är fördelaktig för scenarier där många bilder underhålls och delas. Anpassade avbildningar kan delas mellan prenumerationer och mellan Microsoft Entra-klienter. Avbildningar kan också replikeras till flera regioner för snabbare distributionsskalning.
I den här artikeln lär du dig att:
- Skapa en generaliserad virtuell dator och anpassad avbildning
- Skapa ett delat bildgalleri
- Skapa en gemensam bild och bildversion
- Skapa en virtuell dator med den generaliserade avbildningen
- Skapa en skalningsuppsättning för virtuella maskiner med den generaliserade avbildningen
- Hämta information om ditt delade bildgalleri, bild och version.
Förutsättningar
- Azure-prenumeration: Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Installera Ansible: Gör något av följande alternativ:
- Installera och konfigurera Ansible på en virtuell Linux-dator
- Konfigurera Azure Cloud Shell och – om du inte har åtkomst till en virtuell Linux-dator – skapa en virtuell dator med Ansible.
Hämta exempelspelböckerna
Det finns två sätt att hämta den fullständiga uppsättningen exempelspelböcker:
- Ladda ned SIG-mappen och spara den på den lokala datorn.
- Skapa en ny fil för varje avsnitt och kopiera exempelspelboken i den.
Filen vars.yml innehåller variablerna som används av alla exempelspelböcker för denna handledning. Du kan redigera filen för att ange unika namn och värden.
Den första exempelspelboken 00-prerequisites.yml skapar det som krävs för att slutföra den här handledningen.
- En resursgrupp, som är en logisk container där Azure-resurser distribueras och hanteras.
- Ett virtuellt nätverk; Undernät; offentlig IP-adress och nätverkskort för den virtuella datorn.
- En virtuell källdator som används för att skapa den generaliserade avbildningen.
- hosts: localhost
connection: local
vars_files:
- ./vars.yml
tasks:
- name: Create resource group if doesn't exist
azure_rm_resourcegroup:
name: "{{ resource_group }}"
location: "{{ location }}"
- name: Create virtual network
azure_rm_virtualnetwork:
resource_group: "{{ resource_group }}"
name: "{{ virtual_network_name }}"
address_prefixes: "10.0.0.0/16"
- name: Add subnet
azure_rm_subnet:
resource_group: "{{ resource_group }}"
name: "{{ subnet_name }}"
address_prefix: "10.0.1.0/24"
virtual_network: "{{ virtual_network_name }}"
- name: Create public IP address
azure_rm_publicipaddress:
resource_group: "{{ resource_group }}"
allocation_method: Static
name: "{{ ip_name }}"
- name: Create virtual network interface cards for VM A and B
azure_rm_networkinterface:
resource_group: "{{ resource_group }}"
name: "{{ network_interface_name }}"
virtual_network: "{{ virtual_network_name }}"
subnet: "{{ subnet_name }}"
- name: Create VM
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: "{{ source_vm_name }}"
admin_username: testuser
admin_password: "Password1234!"
vm_size: Standard_B1ms
network_interfaces: "{{ network_interface_name }}"
image:
offer: UbuntuServer
publisher: Canonical
sku: 16.04-LTS
version: latest
Kör spelboken med ansible-playbook
ansible-playbook 00-prerequisites.yml
I Azure-portalen kontrollerar du den resursgrupp som du angav i vars.yml för att se den nya virtuella datorn och olika resurser som du skapade.
Generalisera den virtuella datorn och skapa en anpassad avbildning
Nästa spelbok, 01a-create-generalized-image.yml, generaliserar den virtuella källdatorn som skapades i föregående steg och skapar sedan en anpassad avbildning baserat på den.
- hosts: localhost
connection: local
vars_files:
- ./vars.yml
tasks:
- name: Generalize VM
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: "{{ source_vm_name }}"
generalized: yes
- name: Create custom image
azure_rm_image:
resource_group: "{{ resource_group }}"
name: "{{ image_name }}"
source: "{{ source_vm_name }}"
Kör spelboken med ansible-playbook
ansible-playbook 01a-create-generalized-image.yml
Kontrollera resursgruppen och se till att testimagea visas.
Skapa galleriet för delad avbildning
Bildgalleriet är lagringsplatsen för delning och hantering av bilder. Exempelspelbokskoden i 02-create-shared-image-gallery.yml skapar ett delat bildgalleri i resursgruppen.
- hosts: localhost
connection: local
vars_files:
- ./vars.yml
tasks:
- name: Create shared image gallery
azure_rm_gallery:
resource_group: "{{ resource_group }}"
name: "{{ shared_gallery_name }}"
location: "{{ location }}"
description: This is the gallery description.
Kör spelboken med ansible-playbook
ansible-playbook 02-create-shared-image-gallery.yml
Nu visas ett nytt galleri, myGallery, i resursgruppen.
Skapa en delad bild och bildversion
Nästa spelbok, 03a-create-shared-image-generalized.yml skapar en bilddefinition och en bildversion.
Bilddefinitioner omfattar avbildningstypen (Windows eller Linux), viktig information samt minimikrav och maximalt minne. Bildversionen är versionen av bilden. Galleri, bilddefinition och bildversion hjälper dig att organisera bilder i logiska grupper.
- hosts: localhost
connection: local
vars_files:
- ./vars.yml
tasks:
- name: Create shared image
azure_rm_galleryimage:
resource_group: "{{ resource_group }}"
gallery_name: "{{ shared_gallery_name }}"
name: "{{ shared_image_name }}"
location: "{{ location }}"
os_type: linux
os_state: generalized
identifier:
publisher: myPublisherName
offer: myOfferName
sku: mySkuName
description: Image description
- name: Create or update a simple gallery image version.
azure_rm_galleryimageversion:
resource_group: "{{ resource_group }}"
gallery_name: "{{ shared_gallery_name }}"
gallery_image_name: "{{ shared_image_name }}"
name: "{{ shared_image_version }}"
location: "{{ location }}"
publishing_profile:
end_of_life_date: "2020-10-01t00:00:00+00:00"
exclude_from_latest: yes
replica_count: 3
storage_account_type: Standard_LRS
target_regions:
- name: West US
regional_replica_count: 1
- name: East US
regional_replica_count: 2
storage_account_type: Standard_ZRS
managed_image:
name: "{{ image_name }}"
resource_group: "{{ resource_group }}"
register: output
- debug:
var: output
Kör spelboken med ansible-playbook
ansible-playbook 03a-create-shared-image-generalized.yml
Resursgruppen har nu en bilddefinition och en bildversion för galleriet.
Skapa en virtuell dator baserat på den generaliserade avbildningen
04a-create-vm-using-generalized-image.yml Kör slutligen för att skapa en virtuell dator baserat på den generaliserade avbildning som du skapade i föregående steg.
- hosts: localhost
connection: local
vars_files:
- ./vars.yml
tasks:
- name: Create VM using shared image
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: "{{ vm_name }}"
vm_size: Standard_DS1_v2
admin_username: adminUser
admin_password: PassWord01
managed_disk_type: Standard_LRS
image:
id: "/subscriptions/{{ lookup('env', 'AZURE_SUBSCRIPTION_ID') }}/resourceGroups/{{ resource_group }}/providers/Microsoft.Compute/galleries/{{ shared_gallery_name }}/images/{{ shared_image_name }}/versions/{{ shared_image_version }}"
Kör spelboken med ansible-playbook
ansible-playbook 04a-create-vm-using-generalized-image.yml
Skapa en skala för virtuella maskiner baserat på den generaliserade bilden
Du kan också skapa en virtuell dator skaluppsättning baseras på den generaliserade avbildningen. Kör 05a-create-vmss-using-generalized-image.yml för att göra det.
- hosts: localhost
connection: local
vars_files:
- ./vars.yml
tasks:
- name: Create a virtual machine scale set using a shared image
azure_rm_virtualmachinescaleset:
resource_group: "{{ resource_group }}"
name: "{{ vmss_name }}"
vm_size: Standard_DS1_v2
admin_username: adminUser
admin_password: PassWord01
capacity: 2
virtual_network_name: "{{ virtual_network_name }}"
upgrade_policy: Manual
subnet_name: "{{ subnet_name }}"
managed_disk_type: Standard_LRS
image:
id: "/subscriptions/{{ lookup('env', 'AZURE_SUBSCRIPTION_ID') }}/resourceGroups/{{ resource_group }}/providers/Microsoft.Compute/galleries/{{ shared_gallery_name }}/images/{{ shared_image_name }}/versions/{{ shared_image_version }}"
Kör spelboken med ansible-playbook
ansible-playbook 05a-create-vmss-using-generalized-image.yml
Hämta information om galleriet
Du kan få information om galleriet, bilddefinitionen och versionen genom att köra 06-get-info.yml.
- hosts: localhost
connection: local
vars_files:
- ./vars.yml
tasks:
- name: Get Shared Image Gallery information
azure_rm_gallery_info:
resource_group: "{{ resource_group }}"
name: "{{ shared_gallery_name }}"
- name: Get shared image information
azure_rm_galleryimage_info:
resource_group: "{{ resource_group }}"
gallery_name: "{{ shared_gallery_name }}"
name: "{{ shared_image_name }}"
- name: Get Shared Image Gallery image version information
azure_rm_galleryimageversion_info:
resource_group: "{{ resource_group }}"
gallery_name: "{{ shared_gallery_name }}"
gallery_image_name: "{{ shared_image_name }}"
name: "{{ shared_image_version }}"
Kör spelboken med ansible-playbook
ansible-playbook 06-get-info.yml
Ta bort den delade avbildningen
Om du vill ta bort galleriresurserna se exempelspelboken 07-delete-gallery.yml. Ta bort resurser i omvänd ordning. Börja med att ta bort avbildningsversionen. När du har tagit bort alla avbildningsversioner kan du ta bort bilddefinitionen. När du har tagit bort alla bilddefinitioner kan du ta bort galleriet.
- hosts: localhost
connection: local
vars_files:
- ./vars.yml
tasks:
- name: Delete gallery image version.
azure_rm_galleryimageversion:
resource_group: "{{ resource_group }}"
gallery_name: "{{ shared_gallery_name }}"
gallery_image_name: "{{ shared_image_name }}"
name: "{{ shared_image_version }}"
state: absent
- name: Delete gallery image
azure_rm_galleryimage:
resource_group: "{{ resource_group }}"
gallery_name: "{{ shared_gallery_name }}"
name: "{{ shared_image_name }}"
state: absent
- name: Delete a simple gallery.
azure_rm_gallery:
resource_group: "{{ resource_group }}"
name: "{{ shared_gallery_name }}"
state: absent
Kör spelboken med ansible-playbook
ansible-playbook 07-delete-gallery.yml
Rensa resurser
Spara följande kod som
delete_rg.yml.--- - hosts: localhost tasks: - name: Deleting resource group - "{{ name }}" azure_rm_resourcegroup: name: "{{ name }}" state: absent register: rg - debug: var: rgKör spelboken med kommandot ansible-playbook . Ersätt platshållaren med namnet på den resursgrupp som ska tas bort. Alla resurser i resursgruppen tas bort.
ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"Viktiga punkter:
- På grund av variabeln
registerochdebugavsnittet i spelboken visas resultatet när kommandot har slutförts.
- På grund av variabeln