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 :
- Un ensemble de
group_var
par type de nœud - 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/OSip_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/OSfault_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 :
- 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)
- 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
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.
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