dcos.dcos_requirements

Ansible Rollen: Mesosphere DC/OS

Ein Satz von Ansible Rollen, die den Lebenszyklus eines DC/OS Clusters auf RedHat/CentOS Linux verwalten.

Anforderungen

Um diese Rollen optimal zu nutzen, sollten Ihre Knoten der empfohlenen Art und Weise von Mesosphere zur Einrichtung der Infrastruktur ähneln. Abhängig von Ihrer Einrichtung wird erwartet, dass Sie bereitstellen:

  • Einen oder mehrere Master-Knoten ('masters')
  • Einen Bootstrap-Knoten ('bootstraps')
  • Null oder mehr Agent-Knoten, die für öffentlich zugängliche Dienste verwendet werden ('agents_public')
  • Einen oder mehrere Agent-Knoten, die nicht für öffentlich zugängliche Dienste verwendet werden ('agents_private')

Eine Beispiel-Inventardatei ist wie folgt angegeben:

[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

Rollenvariablen

Die Mesosphere DC/OS Ansible Rollen verwenden zwei Gruppen von Variablen:

  1. Eine Gruppe von Variablen pro Knotentyp (group_var's)
  2. Ein mehrstufiges Dictionary namens dcos, das für alle Knoten verfügbar sein sollte.

Variablen pro Gruppe

[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

Globale Variablen

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

Clusterweite Variablen

Name erforderlich? Beschreibung
download ERFORDERLICH (https) URL, um die Mesosphere DC/OS Installation herunterzuladen
download_checksum nein Prüfziffer zum Überprüfen des Downloads. Sie sollte mit der verwendeten Methode beginnen. Z.B. "sha256:"
version ERFORDERLICH Versionszeichenfolge, die die Version widerspiegelt, die der Installer (angegeben durch download) installiert. Dies kann durch Ausführen von dcos_generate_config.sh --version erfasst werden.
version_to_upgrade_from für Upgrades Versionszeichenfolge von Mesosphere DC/OS, von der das Upgrade-Verfahren erwartet, dass es von dort aktualisiert wird. Ein versionsspezifisches Upgrade-Skript wird auf der Bootstrap-Maschine generiert, jeder Cluster-Knoten lädt das richtige Upgrade für seine aktuell laufende DC/OS-Version herunter.
image_commit nein Kann verwendet werden, um dasselbe Version / dieselbe Konfiguration bei Upgrades zu erzwingen. Besonders nützlich für die Bereitstellung/Aktualisierung von nicht veröffentlichten Versionen, z.B. 1.12-dev. Dieser Parameter hat Vorrang vor version.
enterprise_dcos ERFORDERLICH Gibt an, ob der Installer (angegeben durch download) eine 'offene' oder 'Enterprise'-Version von Mesosphere DC/OS installiert. Dies ist erforderlich, da zusätzliche Post-Upgrade-Prüfungen für nur Enterprise-Komponenten erforderlich sind.
selinux_mode ERFORDERLICH Gibt den SELinux-Modus des Betriebssystems der Cluster-Knoten an. Mesosphere DC/OS unterstützt den Betrieb im enforcing Modus ab 1.12. Ältere Versionen benötigen permissive.
config ja YAML-Struktur, die eine gültige Mesosphere DC/OS config.yml darstellt, siehe unten.

DC/OS config.yml Parameter

Bitte siehe die offizielle Mesosphere DC/OS Konfigurationsreferenz für eine vollständige Liste möglicher Parameter. Es gibt einige Parameter, die von diesen Rollen außerhalb der DC/OS config.yml verwendet werden, insbesondere:

  • bootstrap_url: Sollte auf http://Ihr Bootstrap-Knoten:8080 zeigen. Wird intern verwendet und bequem für den Installer/Aktualisierer überschrieben, um auf ein versionsspezifisches Unterverzeichnis zu zeigen.
  • ip_detect_contents: Wird verwendet, um ein vom Benutzer bereitgestelltes IP-Erkennungsskript zu bestimmen. Überschreibt die integrierte Umgebungsdetektion und Verwendung eines generischen AWS und/oder On-Premise-Skripts. Offizielle Mesosphere DC/OS ip-detect Referenz
  • ip_detect_public_contents: Wird verwendet, um ein vom Benutzer bereitgestelltes öffentliches IP-Erkennungsskript zu bestimmen. Überschreibt die integrierte Umgebungsdetektion und Verwendung eines generischen AWS und/oder On-Premise-Skripts. Offizielle Mesosphere DC/OS ip-detect Referenz
  • fault_domain_detect_contents: Wird verwendet, um ein vom Benutzer bereitgestelltes Fehlerdomänen-Erkennungsskript zu bestimmen. Überschreibt die integrierte Umgebungsdetektion und Verwendung eines generischen AWS und/oder On-Premise-Skripts.

Merkhilfe zur Verhaltensweise von Ansible-Dictionary-Zusammenführungen

Aufgrund der verschachtelten Struktur der dcos Konfiguration kann es erforderlich sein, Ansible auf 'merge' statt 'replace' zu setzen, wenn Konfigurationen aus mehreren Quellen kombiniert werden.

Beispiel
# ansible.cfg
hash_behaviour = merge

Sicherheitsvorkehrung bei interaktiver Nutzung: dcos_cluster_name_confirmed

Wenn Sie diese Rollen interaktiv (zum Beispiel von der Maschine des Betreibers) aufrufen, wird die Rolle DCOS.bootstrap eine manuelle Bestätigung des Clusters verlangen, gegen den ausgeführt werden soll. Dies ist ein Sicherheitsmechanismus, um unbeabsichtigte Upgrades oder Konfigurationsänderungen zu vermeiden. In nicht-interaktiven Plays kann eine Variable gesetzt werden, um diesen Schritt zu überspringen, z. B.:

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

Beispiel-Playbook

Mesosphere DC/OS ist ein komplexes System, das sich über mehrere Knoten erstreckt, um einen vollständigen Multi-Node-Cluster zu bilden. Es gibt einige Einschränkungen bei der Erstellung eines Playbooks mit den bereitgestellten Rollen:

  1. Reihenfolge der Gruppen, um ihre jeweiligen Rollen auszuführen (z. B. erster Bootstrap-Knoten, dann Master, dann Agenten)
  2. Konkurrenz bei Upgrades (z. B. serial: 1 für Master-Knoten)

Das bereitgestellte dcos.yml Playbook kann so verwendet werden, um Mesosphere DC/OS zu installieren und zu aktualisieren.

Getestete Betriebssysteme und Mesosphere DC/OS Versionen

  • CentOS 7, RHEL 7
  • DC/OS 1.12, sowohl die offene als auch die Enterprise-Version

Lizenz

Apache 2.0

Autor Informationen

Diese Rolle wurde 2018 von Team SRE @ Mesosphere und anderen erstellt, basierend auf mehreren internen Tools und nicht-öffentlichen Ansible-Rollen, die im Laufe der Jahre intern entwickelt wurden.

Über das Projekt

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.

Installieren
ansible-galaxy install dcos.dcos_requirements
Lizenz
Unknown
Downloads
135
Besitzer
Datacenter Operating System