hamburger_software.vmware_ubuntu_cloud_image

vmware_ubuntu_cloud_image

Rola Ansible do tworzenia maszyn wirtualnych na podstawie Obrazów Chmurowych Ubuntu w środowisku vSphere.

Obrazy Chmurowe Ubuntu

Ubuntu oferuje obrazy wstępnie zainstalowane do wykorzystania w chmurze. Jednym z dostępnych formatów obrazów jest Open Virtualization Appliance (OVA), który można zaimportować do VMware. Obrazy wykorzystują mechanizm cloud-init, który pozwala na podstawową konfigurację. Niestety, nie ma wsparcia dla używania statycznych adresów IP ani dostosowywania sprzętu podczas tworzenia maszyny.

Ta rola dodaje wsparcie dla tych funkcji.

Cechy

  • Tworzy maszynę wirtualną (VM) z wcześniej pobranego pliku OVA.
  • Ustawia nazwę hosta.
  • Dodaje jeden lub więcej kluczy publicznych ssh i/lub hasło dla domyślnego użytkownika "ubuntu", aby Ansible mógł połączyć się z nową maszyną.
  • Opcjonalnie dostosowuje sprzęt, np. liczbę CPU lub pamięć, zobacz vmware_guest w celu dostępnych dostosowań.
  • Opcjonalnie ustawia notatki VM (adnotacje), parametry pliku konfiguracyjnego VM i/lub własności niestandardowe VM.
  • Można zwiększyć rozmiar dysku (domyślnie 10GB), można także stworzyć i dodać dodatkowe dyski.
  • Opcjonalnie zmienia dynamiczny adres IP na statyczny (uzyskany z playbooka lub z DNS).
  • VM jest uruchamiana i może być używana w tym samym playbooku, który wywołał tę rolę.
  • Można utworzyć kilka maszyn wirtualnych równolegle.
  • Testowane z obrazami chmurowymi Ubuntu 21.04, 20.10, 20.04, 19.10, 19.04, 18.10, 18.04 i 17.10. Starsze wersje nie działają, ponieważ nie używają netplan do konfiguracji sieci.

Wymagania

Aby używać tej roli, potrzebujesz:

  • środowiska vSphere, w którym będzie wdrażana VM.
  • Poświadczeń dla serwera vCenter tego środowiska z odpowiednimi uprawnieniami, patrz poniżej.
  • Pliku OVA, np. ubuntu-18.04-server-cloudimg-amd64.ova na maszynie kontrolnej.

Jeśli chcesz pobierać adresy IP maszyn wirtualnych z DNS, musisz także:

  • zainstalować dnspython (biblioteka w języku Python, http://www.dnspython.org/) na maszynie kontrolnej.
  • używać w pełni kwalifikowanych nazw domenowych (FQDN, np. host.example.org) w inwentarzu. FQDN zostanie także użyty jako nazwa VM.
  • dodać rekordy A dla każdej VM, którą chcesz stworzyć.

Minimalna wersja Ansible to 2.10.7. Minimalna wersja kolekcji community.vmware to 1.8.0, która jest częścią pakietu społeczności Ansible 3.2.0.

Uprawnienia vSphere

Minimalne uprawnienia do stworzenia VM za pomocą tej roli to:

DataStore > Przydziel miejsce
Sieć > Przypisz sieć
Zasób > Przypisz maszynę wirtualną do puli zasobów
vApp > Import
Maszyna Wirtualna > Interakcja > Włącz
Maszyna Wirtualna > Konfiguracja > Dodaj nowy dysk

Aby dostosować ustawienia CPU i pamięci, potrzebujesz:

Maszyna Wirtualna > Konfiguracja > Zmień liczbę CPU
Maszyna Wirtualna > Konfiguracja > Pamięć

Aby dostosować rozmiar dysku, potrzebujesz:

Maszyna Wirtualna > Konfiguracja > Rozszerz dysk wirtualny

Opcje zaawansowane mogą wymagać dodatkowych uprawnień.

Zmienne roli

Połączenie z vCenter

  • Adres URL serwera vCenter ustawia się za pomocą vcenter_hostname lub zmiennej środowiskowej VMWARE_HOST.
  • Użytkownik vCenter ustawia się za pomocą vcenter_username lub zmiennej środowiskowej VMWARE_USER.
  • Hasło vCenter ustawia się za pomocą vcenter_password lub zmiennej środowiskowej VMWARE_PASSWORD.
  • Weryfikacja certyfikatu może być wyłączona ustawiając vcenter_validate_certs=no lub zmieniając zmienną środowiskową VMWARE_VALIDATE_CERTS na no.

Ustawienia VMware

  • Plik OVA na maszynie kontrolnej określa się za pomocą ova_file.
  • VM jest tworzona w centrum danych vmware_datacenter na zasobie danych vmware_datastore.
  • VM można umieścić w folderze, określając vmware_folder, oraz w puli zasobów, określając vmware_resource_pool.
  • Nazwa VM to domyślnie inventory_hostname. Można ją zmienić za pomocą vm_guestname.

Ustawienia VM

  • Nazwa hosta maszyny to domyślnie inventory_hostname_short. Można ją zmienić za pomocą vm_hostname.
  • Użyj ssh_keys, aby ustawić listę kluczy publicznych, które zostaną dodane do pliku authorized_keys użytkownika "ubuntu". Przynajmniej jeden z ssh_keys i password musi być określony, aby Ansible mógł połączyć się z nową maszyną.
  • Użyj password, aby ustawić hasło dla użytkownika "ubuntu". Przynajmniej jeden z ssh_keys i password musi być określony, aby Ansible mógł połączyć się z nową maszyną.
  • Sprzęt można określić za pomocą hardware, zawierającego słownik zgodnie z opisem w vmware_guest.
  • Rozmiar dysku można dostosować za pomocą disk. Ten parametr akceptuje listę specyfikacji dysków, jak opisano w vmware_guest_disk. Pierwszy dysk odpowiada zaimportowanemu dyskowi wirtualnemu. Jego rozmiar może być tylko zwiększany. Zobacz przykładowy playbook poniżej, aby uzyskać więcej informacji.
  • Można określić niestandardowe mapowania sieciowe za pomocą networks, zobacz vmware_deploy_ovf w celu szczegółów.
  • Notatki VM można ustawić za pomocą annotation.
    Aby używać tej funkcji, wymagane są uprawnienia VMware Maszyna Wirtualna > Konfiguracja > Ustaw adnotację.
  • Aby ustawić parametry pliku konfiguracyjnego VM, dostarcz advanced_settings z listą słowników jak w pokazanym w przykładzie playbook.
  • Aby ustawić niestandardowe atrybuty VM, dostarcz customvalues z listą słowników pokazanych w przykładzie playbook. Należy zwrócić uwagę, że nowe niestandardowe wartości nie będą tworzone, powinny istnieć w vCenter przed wdrożeniem.

Aby użyć statycznego adresu IP, użyj następujących kluczy w słowniku static_ip:

  • ipv4 - konkretny adres IPv4, który chcesz przypisać. Domyślnie to adres IPv4 znaleziony w DNS dla FQDN.
  • netmask - maska sieci w notacji CIDR, domyślnie to 8.
  • gateway - domyślny brama (wymagana)
  • dns_servers - lista adresów IP serwerów DNS, domyślnie to publiczne serwery DNS Google.
  • dns_search - lista nazw domen, które powinny być używane jako sufiksy wyszukiwania w DNS. Używaj tego, aby umieścić swoją VM w domenie.

Ustawienia inwentarza

Ponieważ VM jeszcze nie istnieją, klucz ssh serwera jest nieznany. Aby połączyć się z nowymi VM, musisz wyłączyć weryfikację klucza hosta ssh. Jeśli planujesz często tworzyć VM z tymi samymi FQDN, ssh nie powinno przechowywać odcisków palców w pliku known_hosts.

Dlatego zalecane są następujące zmienne hosta/grupy:

ansible_user=ubuntu
ansible_ssh_extra_args=-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null

Zależności

Ta rola nie zależy od innych ról.

Przykładowy Playbook

playbook:

- name: Wdrożenie wirtualnej maszyny obrazu chmurowego Ubuntu
  hosts: cloudimg
  gather_facts: no

  roles:
    - role: hamburger_software.vmware_ubuntu_cloud_image
      vars:
        vcenter_hostname: vcenter.your.domain
        vcenter_username: [email protected]
        vcenter_password: verysecret
        vcenter_validate_certs: no
        vmware_datacenter: your-datacenter
        vmware_datastore: your-datastore
        vmware_folder: your-datacenter/vm/some-folder
        ova_file: ubuntu-20.04-server-cloudimg-amd64.ova
        hardware:
          num_cpus: 4
          memory_mb: 2048
        annotation: 'przykładowa VM oparta na Obrazie Chmurowym Ubuntu'
        # to unika nadmiernych komunikatów syslog od multipathd w Ubuntu 20.04
        advanced_settings:
          - key: disk.EnableUUID
            value: 'TRUE'
        customvalues:
          - key: 'yourkey'
            value: 'yourvalue'
        disk:
          - size_gb: 20
            datastore: your-datastore
            scsi_controller: 0
            unit_number: 0
          - size_mb: 250
            datastore: your-datastore
            scsi_controller: 0
            unit_number: 1
            type: thin
        static_ip:
          netmask: 16
          gateway: 10.0.42.1
          dns_servers: [10.0.47.11, 10.0.48.12]
          dns_search:
          - your.domain
        ssh_keys:
          - ssh-rsa AAAAB3Nz[...]== some-key-name
        password: passw0rd

inwentarz z 5 hostami:

[cloudimg]
vm-[1:5].your.domain

[cloudimg:vars]
ansible_user=ubuntu
ansible_password=passw0rd
ansible_ssh_extra_args=-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null

Licencja

MIT

Informacje o autorze

Ta rola została stworzona przez Haralda Albersa w HS - Hamburger Software GmbH & Co. KG.

O projekcie

Creates virtual machines based on Ubuntu Cloud Images in a vSphere environment.

Zainstaluj
ansible-galaxy install hamburger_software.vmware_ubuntu_cloud_image
Licencja
mit
Pobrania
732
Właściciel
Product documentation and open source projects created at HS - Hamburger Software GmbH & Co. KG