dcos.dcos_requirements

Rola Ansible: Mesosphere DC/OS

Zestaw ról Ansible, które zarządzają cyklem życia klastra DC/OS na systemach RedHat/CentOS Linux.

Wymagania

Aby jak najlepiej wykorzystać te role, Twoje węzły powinny przypominać zalecany przez Mesosphere sposób konfigurowania infrastruktury. W zależności od Twojego ustawienia, oczekuje się, że wdrożysz:

  • Jeden lub więcej węzłów głównych ('masters')
  • Jeden węzeł startowy ('bootstraps')
  • Zero lub więcej węzłów agenta używanych do usług publicznych ('agents_public')
  • Jeden lub więcej węzłów agenta, nieużywanych do usług publicznych ('agents_private')

Przykładowy plik inwentarza jest podany jak poniżej:

[bootstraps]
bootstrap1-dcos112s.example.com

[masters]
master1-dcos112s.example.com
master2-dcos112s.example.com
master3-dcos112s.example.com

[agents_private]
agent1-dcos112s.example.com
remoteagent1-dcos112s.example.com

[agents_public]
publicagent1-dcos112s.example.com

[agents:children]
agents_private
agents_public

[common:children]
bootstraps
masters
agents
agents_public

Zmienne roli

Rola Ansible Mesosphere DC/OS korzysta z dwóch zestawów zmiennych:

  1. Zestaw zmiennych group_var dla każdego typu węzła
  2. Wielopoziomowy słownik zwany dcos, który powinien być dostępny dla wszystkich węzłów

Zmienne grupowe

[bootstraps:vars]
node_type=bootstrap

[masters:vars]
node_type=master
dcos_legacy_node_type_name=master

[agents_private:vars]
node_type=agent
dcos_legacy_node_type_name=slave

[agents_public:vars]
node_type=agent_public
dcos_legacy_node_type_name=slave_public

Zmienne globalne

dcos:
  download: "https://downloads.dcos.io/dcos/stable/1.13.4/dcos_generate_config.sh"
  download_checksum: "sha256:a3d295de33ad55b10f5dc66c9594d9175a40f5aaec7734d664493968a9f751fd"
  version: "1.13.4"
  enterprise_dcos: false
  selinux_mode: enforcing

  config:
    cluster_name: "examplecluster"
    security: strict
    bootstrap_url: http://int-bootstrap1-examplecluster.example.com:8080
    exhibitor_storage_backend: static
    master_discovery: static
    master_list:
      - 172.31.42.1

Zmienne w skali klastra

Nazwa Wymagane? Opis
download WYMAGANE (https) URL do pobrania instalatora Mesosphere DC/OS
download_checksum nie Suma kontrolna do sprawdzenia pobrania. Powinna zaczynać się od używanej metody. Na przykład "sha256:"
version WYMAGANE Ciąg znaków wersji, który odzwierciedla wersję, którą instalator (podany przez download) instaluje. Można to uzyskać, wykonując dcos_generate_config.sh --version.
version_to_upgrade_from przy aktualizacji Ciąg znaków wersji Mesosphere DC/OS, z którego procedura aktualizacji spodziewa się przejść. Na maszynie bootstrap generowany jest skrypt aktualizacji dla każdej wersji, każdy węzeł klastra pobiera odpowiedni skrypt aktualizacji dla swojej wersji DC/OS.
image_commit nie Może być używane do wymuszenia aktualizacji tej samej wersji z tymi samymi ustawieniami. Najczęściej używane do wdrażania/aktualizacji wersji nienaoficjalnych, np. 1.12-dev. Ten parametr ma pierwszeństwo przed version.
enterprise_dcos WYMAGANE Określa, czy instalator (podany przez download) instaluje wersję 'otwartą' czy 'enterprise' Mesosphere DC/OS. Jest to wymagane, ponieważ są dodatkowe kontrole po aktualizacji dotyczące komponentów tylko dla wersji enterprise.
selinux_mode WYMAGANE Wskazuje tryb SELinux systemów operacyjnych węzłów klastra. Mesosphere DC/OS wspiera działanie w trybie enforcing od wersji 1.12. Starsze wersje wymagają trybu permissive.
config tak Struktura YAML przedstawiająca prawidłowy plik config.yml dla Mesosphere DC/OS, zobacz poniżej.

Parametry config.yml DC/OS

Zobacz oficjalną dokumentację konfiguracji Mesosphere DC/OS w celu uzyskania pełnej listy możliwych parametrów. Jest kilka parametrów, które są używane przez te role poza plikiem config.yml DC/OS, w szczególności:

  • bootstrap_url: Powinien wskazywać na http://twój węzeł startowy:8080. Będzie używany wewnętrznie i wygodnie nadpisywany dla instalatora/aktualizatora, aby wskazywał na specyficzny dla wersji podkatalog.
  • ip_detect_contents: Używane do określenia skryptu wykrywania IP dostarczonego przez użytkownika. Nadpisuje wbudowane wykrywanie środowiska oraz użycie ogólnego skryptu AWS i/lub lokalnego. Oficjalna dokumentacja wykrywania IP Mesosphere DC/OS
  • ip_detect_public_contents: Używane do określenia skryptu wykrywania publicznego IP dostarczonego przez użytkownika. Nadpisuje wbudowane wykrywanie środowiska oraz użycie ogólnego skryptu AWS i/lub lokalnego. Oficjalna dokumentacja wykrywania IP Mesosphere DC/OS
  • fault_domain_detect_contents: Używane do określenia skryptu wykrywania domeny awarii dostarczonego przez użytkownika. Nadpisuje wbudowane wykrywanie środowiska oraz użycie ogólnego skryptu AWS i/lub lokalnego.

Zastrzeżenia dotyczące zachowania scalania słownika Ansible

Z powodu zagnieżdżonej struktury konfiguracji dcos, może być konieczne ustawienie Ansible na 'scalanie' zamiast 'zamiany', podczas łączenia konfiguracji z wielu miejsc.

Przykład
# ansible.cfg
hash_behaviour = merge

Zabezpieczenie podczas interaktywnego użycia: dcos_cluster_name_confirmed

Podczas wywoływania tych ról interaktywnie (na przykład z maszyny operatora), rola DCOS.bootstrap będzie wymagała ręcznego potwierdzenia klastra, na którym ma działać. Jest to mechanizm bezpieczeństwa mający na celu unikanie przypadkowych aktualizacji lub zmian konfiguracji. W grach nieinteraktywnych można ustawić zmienną, aby pominąć ten krok, np.:

ansible-playbook -e 'dcos_cluster_name_confirmed=True' dcos.yml

Przykładowy playbook

Mesosphere DC/OS to złożony system, obejmujący wiele węzłów w celu utworzenia pełnego klastra wielowęzłowego. Istnieją pewne ograniczenia w tworzeniu playbooka, który korzysta z dostarczonych ról:

  1. Kolejność grup do uruchomienia ich odpowiednich ról (np. najpierw węzeł startowy, następnie węzły główne, a potem węzły agenta)
  2. Równoległość przy aktualizacjach (np. serial: 1 dla węzłów głównych)

Dostarczony playbook dcos.yml można użyć w obecnej formie do instalacji i aktualizacji Mesosphere DC/OS.

Przetestowane systemy operacyjne i wersje Mesosphere DC/OS

  • CentOS 7, RHEL 7
  • DC/OS 1.12, zarówno wersja otwarta, jak i enterprise

Licencja

Apache 2.0

Informacje o autorze

Ta rola została stworzona przez zespół SRE @ Mesosphere i innych w 2018 roku, opierając się na wielu narzędziach wewnętrznych i niepublicznych rolach Ansible, które były rozwijane wewnętrznie przez lata.

O projekcie

Life cycle management of a Mesosphere DC/OS agent node. Part of a set of Ansible roles that manage DC/OS on RedHat/CentOS Linux.

Zainstaluj
ansible-galaxy install dcos.dcos_requirements
Licencja
Unknown
Pobrania
135
Właściciel
Datacenter Operating System