stackhpc.os-container-infra
OpenStack Klastry Kontenerów
Ta rola może być używana do manipulacji klastrami kontenerów w Magnum za pomocą klienta Pythona Magnum.
Wymagania
- python 2.6+
- openstacksdk
- python-magnumclient
- python-heatclient
- python-novaclient
Zmienne Roli
os_container_infra_cloud
to nazwa chmury (konfigurowana w pliku cloud.yaml, opcjonalne).
os_container_infra_user
to nazwa użytkownika SSH, np. fedora.
os_container_infra_state
musi być ustawiony na 'present', 'absent', 'query' lub 'upgrade'.
os_container_infra_cluster_name
to nazwa klastra.
os_container_infra_cluster_template_name
to szablon klastra do użycia.
os_container_infra_keypair
to klucz do użycia w celu dostępu do węzłów klastra.
os_container_infra_master_count
to liczba węzłów głównych.
os_container_infra_node_count
to liczba węzłów roboczych.
os_container_infra_default_interface
to domyślna sieć do użycia w celu dotarcia do klastra.
os_container_infra_interfaces
to lista dodatkowych sieci do podłączenia do węzłów klastra.
os_container_infra_inventory
to miejsce, gdzie zostanie zapisany plik inwentaryzacyjny.
os_container_infra_environment_group
to opcjonalna nazwa grupy Ansible, do której zostaną dodane wszystkie hosty klastra i localhost. Może to być przydatne, jeśli istnieje pojedyncza grupa, która reprezentuje środowisko, takie jak rozwój/testowanie/produkcja.
os_container_infra_coe
to silnik orkiestracji kontenerów do użycia. Ważne opcje to kubernetes
lub swarm
.
os_container_infra_k8s_version
to konfigurowana wersja Kubernetes, która ma być użyta, gdy os_container_infra_state = upgrade
.
Przykładowy Playbook
Poniższy playbook tworzy klaster, podłącza dwa interfejsy do serwerów w klastrze i tworzy plik inwentaryzacyjny, wykorzystując informacje o autoryzacji dostępne w zmiennych środowiskowych (co jest domyślnym zachowaniem):
---
- hosts: localhost
become: False
gather_facts: False
roles:
- role: stackhpc.os-container-infra
os_container_infra_user: fedora
os_container_infra_state: present
os_container_infra_cluster_name: k8s
os_container_infra_cluster_template_name: k8s-fa29
os_container_infra_roles:
- name: storage_client
groups: ["{{ os_container_infra_worker_group }}"]
os_container_infra_keypair: bharat
os_container_infra_default_interface: default
os_container_infra_master_group:
- name: master
count: 1
os_container_infra_worker_group:
- name: minion
count: 2
...
Aby uwierzytelnić się, korzystając z informacji przekazywanych przez playbook, należy dostarczyć zmienną słownikową w następujący sposób:
os_container_infra_auth:
auth_url: http://10.60.253.1:5000
project_name: p3
username: username
password: password
user_domain_name: Default
project_domain_name: Default
region_name: RegionOne
Aby uwierzytelnić się, korzystając z informacji przechowywanych w
.config/openstack/clouds.yaml
lub /etc/openstack/clouds.yaml
, które można wygenerować za pomocą naszej roli stackhpc.os-config
, należy dodać:
os_container_infra_auth_type: cloud
os_container_infra_cloud: mycloud
Dla aktualizacji klastra Kubernetes:
---
- hosts: cluster
gather_facts: False
become: yes
roles:
- role: stackhpc.os-container-infra
os_container_infra_state: upgrade
os_container_infra_k8s_version: v1.13.4
os_container_infra_coe: kubernetes
...
Informacje Debugowania Ansible
Aby zobaczyć ostrzeżenia emitowane przez tę rolę, wyeksportuj następującą zmienną przed uruchomieniem ansible:
export ANSIBLE_LOG_PATH=ansible.log
export ANSIBLE_DEBUG=1
Aby filtrować te ostrzeżenia:
tail -f ansible.log | grep DEBUG
Znane Problemy
Moduły Ansible template
zapisują plik inwentaryzacyjny i mogą zgłaszać brakujący libselinux-python
, który jest już zainstalowany w większości dystrybucji Linux. Jeśli to wystąpi, po prostu utwórz dowiązanie symboliczne do katalogu selinux w swoim istniejącym wirtualnym środowisku:
ln -s /usr/lib64/python2.7/site-packages/selinux/ venv/lib64/python2.7/site-packages/
Dla nowego wirtualnego środowiska:
virtualenv --system-site-packages venv
Licencja
Apache 2
Informacje o Autorze
- Bharat Kunwar (bharat@stackhpc.com)
ansible-galaxy install stackhpc.os-container-infra