abn.managed-node-bootstrap
Zarządzanie Node Bootstrap
Zainicjuj węzeł zarządzany przez Ansible z minimalnymi zależnościami. Ten skrypt początkowo został napisany do uruchamiania instancji z bazowymi obrazami kontenerów, w związku z czym może wymagać ulepszeń przed wdrożeniem go do użytku poza kontenerami.
Obsługiwane obecnie dystrybucje to:
- Alpine Linux
- Dystrybucje oparte na Debianie używające apt-get (Ubuntu)
- OpenSUSE
- Dystrybucje oparte na Red Hat używające dnf/yum (Red Hat Enterprise Linux, CentOS, Fedora)
Wymagania
Nie ma dodatkowych wymagań poza wersją Ansible, która obsługuje moduł raw
. Rozwój odbywał się na Ansible 2.2+.
Zmienne roli
Ta rola obsługuje następujące konfiguracje za pomocą zmiennych.
managed_node_bootstrap_use_sudo
: Ustaw nayes
, jeśli host ma zainstalowanesudo
, a łączysz się jako użytkownik niebędący roota.managed_node_bootstrap_cmd_prefix
: Domyślnie jest tosudo
, jeślimanaged_node_bootstrap_use_sudo
jest ustawione. Możesz to nadpisać, aby upewnić się, że ten prefiks jest dodawany do wszystkich wykonywanych poleceń.managed_node_bootstrap_done_file
: Określa, który plik ma być używany jako wskaźnik, czy zadanie instalacji zostało wcześniej pomyślnie wykonane.managed_node_packages_{alpine,debian,opensuse,redhat}
: Jest używane do konfiguracji listy pakietów do zainstalowania dla każdej z tych rodzin dystrybucji.
Zależności
Nie są wymagane żadne zależności poza samym Ansible.
Przykładowy Playbook
Oto przykład playbooka, który można użyć do uruchomienia wszystkich hostów w Twoim inwentarzu. Zauważ, że metoda połączenia Ansible itp. musi być skonfigurowana poza tym. Dodatkowo, zaznaczamy, że wymaga to połączenia jako użytkownik root, ponieważ zakładamy, że sudo
nie jest dostępne w tych instancjach (założenie obrazu dockera). Zobacz powyżej, jak zmienić to zachowanie.
---
- nazwa: uruchomienie węzła zarządzanego przez ansible
hosty: all
zbieraj_fakty: Fałsz
role:
- abn.molecule-node-bootstrap
Testowanie
Przed testowaniem musisz upewnić się, że wymagane podmoduły zostały sklonowane.
git submodule update --init --recursive
LokalNA ŚRODOWISKO
Ta rola używa Molecule oraz instancji dockera do umożliwienia testowania. Możesz to uruchomić lokalnie w swoim środowisku deweloperskim, pod warunkiem, że masz zainstalowanego Pythona i działający demon dockera.
# zainstaluj wymagania molecule i docker-py
pip install -r test-requirements.txt
molecule test
To, zgodnie z konfiguracją domyślnego scenariusza molecule, uruchomi kontenery z obsługiwanymi dystrybucjami i wykona przykładowy playbook.
Tox
Ten projekt ma również skonfigurowany tox, aby działać z wieloma wersjami ansible przy pomocy Molecule. Można go po prostu uruchomić za pomocą tox.
tox
Zapoznaj się z dokumentacją Molecule oraz dokumentacją tox w celu uzyskania szczegółowych instrukcji użytkowania.
Licencja
Licencja Apache 2.0
Bootstrap an ansible managed node with minimal dependencies
ansible-galaxy install abn.managed-node-bootstrap