stackhpc.os-images

UWAGA:

To repozytorium nie jest już utrzymywane - rola została przeniesiona do katalogu Ansible ➡️ https://github.com/stackhpc/ansible-collection-openstack

Obrazy OpenStack

Ta rola generuje obrazy instancji gości przy użyciu disk-image-builder i przesyła je do OpenStack korzystając z modułu os_image.

Wymagania

Interfejsy API OpenStack powinny być dostępne z docelowego hosta. Dane uwierzytelniające klienta powinny być ustawione w środowisku lub przy użyciu formatu clouds.yaml.

Musisz używać virtualenv z włączonymi systemowymi pakietami, ponieważ ta rola polega na pakietach Pythona zainstalowanych przez menedżera pakietów, np:

virtualenv --system-site-packages ~/venvs/dib

Zmienne roli

os_images_package_dependencies_extra: Lista dodatkowych pakietów do zainstalowania na hoście budującym.

os_images_cache: ścieżka do katalogu, w którym będą przechowywane artefakty budowy. Domyślnie to ~/disk_images. UWAGA: nowe obrazy NIE będą budowane, nawet jeśli dokonano zmian w konfiguracji, jeśli obraz jest już w pamięci podręcznej. Użyj flagi force_rebuild, aby zastosować nowe zmiany w konfiguracji.

os_images_auth_type: Typ uwierzytelnienia OpenStack oraz dane logowania. Domyślnie to password.

os_images_auth: Punkty uwierzytelnienia OpenStack i dane logowania. Na przykład, słownik o formie:

  • auth_url: URL punktu uwierzytelnienia Keystone. Domyślnie to OS_AUTH_URL.
  • project: Tenant/projekt OpenStack. Domyślnie to OS_TENANT_NAME.
  • username: Nazwa użytkownika OpenStack. Domyślnie to OS_USERNAME.
  • password: Hasło OpenStack. Domyślnie to OS_PASSWORD.

os_images_region: Definiuje region, w którym będą przesyłane obrazy. Domyślnie to None.

os_images_cacert to opcjonalna ścieżka do pakietu certyfikatów CA.

os_images_interface to typ URL punktu dostępu używanego do pobierania z katalogu usług. Może to być jedno z public, admin lub internal.

os_images_list to lista słowników YAML, gdzie elements i image_url są wykluczające, a każdy z nich zawiera:

  • name: nazwa obrazu, która ma być użyta w OpenStack.
  • elements: lista elementów diskimage-builder do włączenia w obraz.
  • image_url: URL do lokalizacji obrazu w Internecie.
  • checksum: Suma kontrolna do walidacji pobranego obrazu. Format: :<suma kontrolna|url>.
  • env: (opcjonalnie) zmienne środowiskowe do zdefiniowania dla parametrów diskimage-builder. To jest słownik o formie KLUCZ: WARTOŚĆ.
  • packages: (opcjonalnie) lista pakietów do zainstalowania w obrazie.
  • size: (opcjonalnie) rozmiar systemu plików obrazu.
  • properties: (opcjonalnie) słownik właściwości do ustawienia na obrazie glance. Typowe właściwości obrazu są dostępne tutaj.
  • type: (opcjonalnie) typ obrazu. Domyślnie w DIB to qcow2. Format obrazów dostępny jest tutaj.
  • force_rebuild: (opcjonalnie) flaga boolowska wskazująca, czy obraz zawsze powinien być budowany (nawet jeśli istniejący obraz o tej samej nazwie został już zbudowany). Obrazy w glance będą zastępowane, jeśli os_images_upload jest ustawione na True. Domyślnie to os_images_force_rebuild, jeśli nie jest ustawione.
  • is_public: (opcjonalnie) czy obraz powinien być widoczny dla wszystkich projektów, czy pozostawać prywatny.
  • owner: (opcjonalnie) identyfikator projektu, który powinien być właścicielem przesłanego obrazu.

os_images_common: Zestaw elementów, które należy uwzględnić w każdym z wymienionych obrazów. Domyślnie to cloud-init enable-serial-console stable-interface-names.

os_images_dib_pkg_name: Opcjonalnie dostosuj nazwę przekazywaną do modułu ansible.builtin.pip przy instalacji diskimage-builder. Można to wykorzystać do instalacji diskimage-builder z kontroli wersji.

os_images_dib_version: Opcjonalnie ustaw wersję diskimage-builder do zainstalowania. Domyślnie nie jest ograniczone.

os_images_git_elements: Opcjonalna lista elementów do pobrania z githuba, wdrożenia lokalnie w ramach obrazów. Przekaż listę słowników z następującymi parametrami:

  • repo: URL repozytorium git do sklonowania (jeśli nie jest jeszcze obecne)
  • local: lokalna ścieżka do klonowania git
  • version: opcjonalny odnośnik git (gałąź, tag, hash) do klonowania. Domyślnie to HEAD
  • elements_path: opcjonalna ścieżka względna do elementów w obrębie repozytorium.

os_images_elements: Opcjonalna lista ścieżek dla specyficznych dla witryny elementów DIB.

os_images_upload: Czy przesłać zbudowane obrazy do Glance. Domyślnie to True.

os_images_force_rebuild: Czy wymusić odbudowę obrazu DIB. Obrazy w Glance będą zastępowane nowo zbudowanym obrazem, jeśli os_images_upload jest ustawione na True. Domyślnie to False.

os_images_public: Czy przesłane obrazy są publiczne. Domyślnie to True - wymaga to uprawnień administratora.

os_images_venv: Ścieżka do virtualenv, w którym będą instalowane zależności Pythona do przesyłania obrazów.

os_images_dib_venv: Ścieżka do virtualenv, w którym będzie zainstalowane DIB do budowy obrazów.

os_images_promote: Czy wycofać stare i promować nowe obrazy. Domyślnie to False.

os_images_build: Czy zbudować obrazy.

os_images_name_suffix: Przyrostek obrazu, który zostanie usunięty podczas promowania obrazu, np. -rc, -dev, -test itp. Obowiązkowe dla funkcji promowania. Domyślnie pusta.

os_images_hide: Czy ukryć obrazy na liście Glance. Ukrywanie obrazów jest dostępne jako opcja w procesie wycofywania/promowania obrazów. Domyślnie to False.

Zależności

Przykładowy playbook

Poniższy playbook generuje obraz gościa i przesyła go do OpenStack:

---
- name: Generowanie obrazu gościa i przesyłanie
  hosts: openstack
  roles:
    - role: stackhpc.os-images
      os_images_auth:
        auth_url:     "{{ lookup('env','OS_AUTH_URL') }}"
        username:     "{{ lookup('env','OS_USERNAME') }}"
        password:     "{{ lookup('env','OS_PASSWORD') }}"
        project_name: "{{ lookup('env','OS_TENANT_NAME') }}"
      os_images_list:
      - name: FedoraCore
        elements:
          - fedora
          - selinux-permissive
          - alaska-extras
        env:
          DIB_ALASKA_DELETE_REPO: "y"
          DIB_ALASKA_PKGLIST: "pam-python pam-keystone"
      - name: FedoraAtomic27
        image_url: https://ftp.icm.edu.pl/pub/Linux/dist/fedora-alt/atomic/stable/Fedora-Atomic-27-20180326.1/CloudImages/x86_64/images/Fedora-Atomic-27-20180326.1.x86_64.qcow2
        properties:
          os_distro: fedora-atomic
        type: qcow2

Informacje o autorze

O projekcie

Role to generate guest instance images and upload to OpenStack

Zainstaluj
ansible-galaxy install stackhpc.os-images
Licencja
apache-2.0
Pobrania
201.6k
Właściciel
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.