Vytvoření virtuálních počítačů s Linuxem v Azure pomocí Ansible
Tento článek představuje ukázkový playbook Ansible pro konfiguraci virtuálního počítače s Linuxem.
V tomto článku získáte informace o těchto tématech:
- Vytvoření skupiny zdrojů
- Vytvoření virtuální sítě
- Vytvoření veřejné IP adresy
- Vytvoření skupiny zabezpečení sítě
- Vytvoření virtuální síťové karty
- Vytvoření virtuálního počítače
1. Konfigurace prostředí
- Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
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
- Konfigurace služby Azure Cloud Shell
2. Vytvoření páru klíčů SSH
Spusťte následující příkaz: Po zobrazení výzvy zadejte soubory, které se mají vytvořit v následujícím adresáři:
/home/azureuser/.ssh/authorized_keys
.ssh-keygen -m PEM -t rsa -b 4096
Zkopírujte obsah souboru veřejného klíče. Ve výchozím nastavení má soubor veřejného klíče název
id_rsa.pub
. Hodnota je dlouhý řetězec začínající řetězcem "ssh-rsa". Tuto hodnotu budete potřebovat v dalším kroku.
3. Implementace playbooku Ansible
Vytvořte adresář, ve kterém chcete otestovat a spustit ukázkový kód Ansible a nastavit ho jako aktuální adresář.
Vytvořte soubor s názvem
main.yml
a vložte následující kód.<key_data>
Zástupný symbol nahraďte hodnotou veřejného klíče z předchozího kroku.- name: Create Azure VM hosts: localhost connection: local tasks: - name: Create resource group azure_rm_resourcegroup: name: myResourceGroup location: eastus - name: Create virtual network azure_rm_virtualnetwork: resource_group: myResourceGroup name: myVnet address_prefixes: "10.0.0.0/16" - name: Add subnet azure_rm_subnet: resource_group: myResourceGroup name: mySubnet address_prefix: "10.0.1.0/24" virtual_network: myVnet - name: Create public IP address azure_rm_publicipaddress: resource_group: myResourceGroup allocation_method: Static name: myPublicIP register: output_ip_address - name: Public IP of VM debug: msg: "The public IP is {{ output_ip_address.state.ip_address }}." - name: Create Network Security Group that allows SSH azure_rm_securitygroup: resource_group: myResourceGroup name: myNetworkSecurityGroup rules: - name: SSH protocol: Tcp destination_port_range: 22 access: Allow priority: 1001 direction: Inbound - name: Create virtual network interface card azure_rm_networkinterface: resource_group: myResourceGroup name: myNIC virtual_network: myVnet subnet: mySubnet public_ip_name: myPublicIP security_group: myNetworkSecurityGroup - name: Create VM azure_rm_virtualmachine: resource_group: myResourceGroup name: myVM vm_size: Standard_DS1_v2 admin_username: azureuser ssh_password_enabled: false ssh_public_keys: - path: /home/azureuser/.ssh/authorized_keys key_data: "<key_data>" network_interfaces: myNIC image: offer: 0001-com-ubuntu-server-jammy publisher: Canonical sku: 22_04-lts version: latest
4. Spuštění playbooku
Spuštěním playbooku ansible-playbook spusťte playbook Ansible.
ansible-playbook main.yml
5. Ověřte výsledky.
Spuštěním příkazu az vm list ověřte, že byl virtuální počítač vytvořen.
az vm list -d -o table --query "[?name=='myVM']"
6. Připojení k virtuálnímu počítači
Spuštěním příkazu SSH se připojte k novému virtuálnímu počítači s Linuxem. <Zástupný symbol IP-adresy> nahraďte IP adresou z předchozího kroku.
ssh azureuser@<ip_address> -i /home/azureuser/.ssh/authorized_keys/id_rsa
Vyčištění prostředků
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: rg
Spusť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:
register
Vzhledem k proměnné adebug
části playbooku se výsledky zobrazí po dokončení příkazu.