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 角色使用两组变量:
- 每种节点类型的
group_var
- 一个名为
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 是一个复杂的系统,跨多个节点形成完整的多节点集群。在使用提供的角色时,有一些约束:
- 运行各自角色的组的顺序(例如,首先是引导节点,然后是主节点,然后是代理节点)
- 升级的并发(例如,主节点使用
serial: 1
)
提供的 dcos.yml
剧本可以直接用于安装和升级 Mesosphere DC/OS。
测试的操作系统和 Mesosphere DC/OS 版本
- CentOS 7,RHEL 7
- DC/OS 1.12,开放和企业版本均可
许可证
作者信息
此角色由 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