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:
- Eine Gruppe von Variablen pro Knotentyp (
group_var
's) - 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 Referenzip_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 Referenzfault_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:
- Reihenfolge der Gruppen, um ihre jeweiligen Rollen auszuführen (z. B. erster Bootstrap-Knoten, dann Master, dann Agenten)
- 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
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.
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