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_uploadjest 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
- Stig Telfer (stig@stackhpc.com)
Role to generate guest instance images and upload to OpenStack
ansible-galaxy install stackhpc.os-images