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:
- Zestaw zmiennych
group_var
dla każdego typu węzła - 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/OSip_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/OSfault_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:
- 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)
- 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
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.
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.
ansible-galaxy install dcos.dcos_requirements