dcos.dcos_requirements

Ansible 角色:Mesosphere DC/OS

一组 Ansible 角色,用于在 RedHat/CentOS Linux 上管理 DC/OS 集群的生命周期。

要求

为了更好地使用这些角色,您的节点应按照 Mesosphere 推荐的基础设施设置方式进行配置。根据您的设置,预计部署到:

  • 一个或多个主节点('masters')
  • 一个引导节点('bootstraps')
  • 零个或多个代理节点,用于公共服务('agents_public')
  • 一个或多个代理节点,不用于公共服务('agents_private')

下面提供了一个示例的清单文件:

[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

角色变量

Mesosphere DC/OS Ansible 角色使用两组变量:

  1. 每种节点类型的 group_var
  2. 一个名为 dcos 的多级字典,所有节点都应可用

每组变量

[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

全局变量

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

集群范围的变量

名称 是否必需 描述
download 必需 (https) 下载 Mesosphere DC/OS 安装包的 URL
download_checksum 用于校验下载文件的校验和。应以所用方法开始,例如 "sha256:"
version 必需 表示安装程序(由 download 给出)所安装的版本字符串。可以通过运行 dcos_generate_config.sh --version 收集。
version_to_upgrade_from 升级时必需 升级程序预计从某个版本的 Mesosphere DC/OS 升级。引导机器将生成每个版本的升级脚本,每个集群节点将下载适合其当前运行版本的升级文件。
image_commit 可用于强制使用相同版本/相同配置进行升级。主要用于部署/升级未发布版本,例如 1.12-dev。此参数优先于 version
enterprise_dcos 必需 指定安装程序(由 download 给出)是否安装 Mesosphere DC/OS 的“开放”或“企业”版本。这是必需的,因为企业组件有额外的升级后检查。
selinux_mode 必需 指示集群节点操作系统的 SELinux 模式。从 1.12 开始,Mesosphere DC/OS 支持以 enforcing 模式运行。较旧版本需要 permissive
config 表示有效的 Mesosphere DC/OS config.yml 的 Yaml 结构,见下文。

DC/OS config.yml 参数

有关可能参数的完整列表,请参见官方 Mesosphere DC/OS 配置参考。这些角色在 DC/OS config.yml 之外使用的几个参数包括:

  • bootstrap_url:应指向 http://您的引导节点:8080。将内部使用,便捷地为安装程序/升级器指向特定版本的子目录。
  • ip_detect_contents:用于确定用户提供的 IP 检测脚本。覆盖内置的环境检测和使用通用 AWS 和/或本地脚本。官方 Mesosphere DC/OS ip-detect 参考
  • ip_detect_public_contents:用于确定用户提供的公共 IP 检测脚本。覆盖内置的环境检测和使用通用 AWS 和/或本地脚本。官方 Mesosphere DC/OS ip-detect 参考
  • fault_domain_detect_contents:用于确定用户提供的故障域检测脚本。覆盖内置的环境检测和使用通用 AWS 和/或本地脚本。

Ansible 字典合并行为注意事项

由于 dcos 配置的嵌套结构,在从多个地方组合配置时,可能需要设置 Ansible 为 'merge' 而不是 'replace'

示例
# ansible.cfg
hash_behaviour = merge

交互使用时的保护措施:dcos_cluster_name_confirmed

在交互模式下调用这些角色时(例如,从操作员的机器),DCOS.bootstrap 角色将要求手动确认要运行的集群。这是一种保护机制,避免无意中的升级或配置更改。在非交互式操作中,可以设置变量以跳过此步骤,例如:

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

示例剧本

Mesosphere DC/OS 是一个复杂的系统,跨多个节点形成完整的多节点集群。在使用提供的角色时,有一些约束:

  1. 运行各自角色的组的顺序(例如,首先是引导节点,然后是主节点,然后是代理节点)
  2. 升级的并发(例如,主节点使用 serial: 1

提供的 dcos.yml 剧本可以直接用于安装和升级 Mesosphere DC/OS。

测试的操作系统和 Mesosphere DC/OS 版本

  • CentOS 7,RHEL 7
  • DC/OS 1.12,开放和企业版本均可

许可证

Apache 2.0

作者信息

此角色由 Mesosphere 的 SRE 团队及其他人于 2018 年创建,基于多种内部工具和多年来开发的非公开 Ansible 角色。

关于项目

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
许可证
Unknown
下载
135
拥有者
Datacenter Operating System