dcos.dcos_requirements

Rôles Ansible : Mesosphere DC/OS

Un ensemble de rôles Ansible qui gère le cycle de vie d'un cluster DC/OS sur Linux RedHat/CentOS.

Exigences

Pour tirer le meilleur parti de ces rôles, vos nœuds devraient ressembler à la méthode recommandée par Mesosphere pour configurer l'infrastructure. En fonction de votre configuration, il est prévu de déployer vers :

  • Un ou plusieurs nœuds principaux ('masters')
  • Un nœud de bootstrap ('bootstraps')
  • Zéro ou plusieurs nœuds agents, utilisés pour des services accessibles au public ('agents_public')
  • Un ou plusieurs nœuds agents, non utilisés pour des services accessibles au public ('agents_private')

Un exemple de fichier d'inventaire est fourni comme suit :

[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

Variables de rôle

Les rôles Ansible de Mesosphere DC/OS utilisent deux ensembles de variables :

  1. Un ensemble de group_var par type de nœud
  2. Un dictionnaire multi-niveau appelé dcos, qui devrait être disponible pour tous les nœuds

Variables par groupe

[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

Variables globales

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

Variables à l'échelle du cluster

Nom Requis ? Description
download OBLIGATOIRE (https) URL pour télécharger le dossier d'installation de Mesosphere DC/OS
download_checksum non Somme de contrôle pour vérifier le téléchargement. Elle doit commencer par la méthode utilisée. Par exemple, "sha256:"
version OBLIGATOIRE Chaîne de version qui reflète la version que l'installateur (donné par download) installe. Peut être obtenue en exécutant dcos_generate_config.sh --version.
version_to_upgrade_from pour mises à jour Chaîne de version de Mesosphere DC/OS que la procédure de mise à niveau s'attend à mettre à niveau DE. Un script de mise à niveau spécifique à la version sera généré sur la machine de bootstrap, chaque nœud du cluster téléchargera la mise à niveau appropriée pour sa version DC/OS en cours d'exécution.
image_commit non Peut être utilisé pour forcer des mises à niveau avec la même version/configuration. Principalement utile pour déployer/mise à niveau des versions non publiées, par exemple, 1.12-dev. Ce paramètre prévaut sur version.
enterprise_dcos OBLIGATOIRE Spécifie si l'installateur (donné par download) installe une version 'ouverte' ou 'entreprise' de Mesosphere DC/OS. Cela est requis car il y a des vérifications supplémentaires post-mise à niveau pour les composants réservés à l'entreprise.
selinux_mode OBLIGATOIRE Indique le mode SELinux des systèmes d'exploitation des nœuds du cluster. Mesosphere DC/OS prend en charge le fonctionnement en mode enforcing à partir de 1.12. Les versions plus anciennes nécessitent permissive.
config oui Structure Yaml qui représente un fichier config.yml valide de Mesosphere DC/OS, voir ci-dessous.

Paramètres de config.yml DC/OS

Veuillez consulter la référence de configuration officielle de Mesosphere DC/OS pour une liste complète des paramètres possibles. Il y a quelques paramètres utilisés par ces rôles en dehors de config.yml de DC/OS, spécifiquement :

  • bootstrap_url : Doit pointer vers http://votre nœud de bootstrap:8080. Sera utilisé en interne et sera écrasé de manière pratique pour que l'installateur/mise à niveau pointe vers un sous-dossier spécifique à la version.
  • ip_detect_contents : Est utilisé pour déterminer un script de détection IP fourni par l'utilisateur. Écrase la détection d'environnement intégrée et l'utilisation d'un script AWS générique et/ou sur site. Référence officielle de la détection d'IP de Mesosphere DC/OS
  • ip_detect_public_contents : Est utilisé pour déterminer un script de détection d'IP public fourni par l'utilisateur. Écrase la détection d'environnement intégrée et l'utilisation d'un script AWS générique et/ou sur site. Référence officielle de la détection d'IP de Mesosphere DC/OS
  • fault_domain_detect_contents : Est utilisé pour déterminer un script de détection de domaine de faute fourni par l'utilisateur. Écrase la détection d'environnement intégrée et l'utilisation d'un script AWS générique et/ou sur site.

Précaution concernant le comportement de fusion de dictionnaire Ansible

En raison de la structure imbriquée de la configuration dcos, il peut être nécessaire de configurer Ansible pour 'fusionner' au lieu de 'remplacer' lors de la combinaison de la configuration à partir de plusieurs endroits.

Exemple
# ansible.cfg
hash_behaviour = merge

Mesure de sécurité lors de l'utilisation interactive : dcos_cluster_name_confirmed

Lors de l'invocation de ces rôles de manière interactive (par exemple depuis la machine de l'opérateur), le rôle DCOS.bootstrap nécessitera une confirmation manuelle du cluster sur lequel exécuter les commandes. C'est un mécanisme de protection pour éviter des mises à niveau ou des modifications de configuration involontaires. Dans les jeux non interactifs, une variable peut être définie pour ignorer cette étape, par exemple :

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

Exemple de playbook

Mesosphere DC/OS est un système complexe, s'étendant sur plusieurs nœuds pour former un cluster multi-nœuds complet. Il existe certaines contraintes pour utiliser un playbook avec les rôles fournis :

  1. Ordre des groupes pour exécuter leurs rôles respectifs (par exemple, nœud de bootstrap d'abord, puis les nœuds principaux, puis les agents)
  2. Concurrence pour les mises à niveau (par exemple, serial: 1 pour les nœuds principaux)

Le playbook dcos.yml fourni peut être utilisé tel quel pour installer et mettre à niveau Mesosphere DC/OS.

Systèmes d'exploitation et versions de Mesosphere DC/OS testés

  • CentOS 7, RHEL 7
  • DC/OS 1.12, version ouverte et version entreprise

Licence

Apache 2.0

Informations sur l'auteur

Ce rôle a été créé par l'équipe SRE @ Mesosphere et d'autres en 2018, basé sur plusieurs outils internes et des rôles Ansible non publics qui ont été développés en interne au fil des ans.

À propos du projet

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.

Installer
ansible-galaxy install dcos.dcos_requirements
Licence
Unknown
Téléchargements
135
Propriétaire
Datacenter Operating System