MAAS Anvil - 高可用 MAAS 部署管理工具

本文翻译整理自:https://github.com/canonical/maas-anvil


一、关于 MAAS Anvil

MAAS Anvil 是一个用于管理 charmed (高可用) MAAS 部署的 snap 工具。

注:MAAS Anvil 目前处于封闭测试阶段,正在接近生产稳定性

MAAS 部署组件

MAAS Anvil 是 MAAS 部署策略的一部分,包括:

1、MAAS Charms:MAAS 组件的 Charmed 版本
- MAAS Agent Charm
- MAAS Region Charm
2、MAAS Anvil:使用 MAAS charms 简化 MAAS 部署
3、MAAS Terraform Provider:配置活跃的 MAAS 部署

MAAS Anvil 使用 MAAS charms 简化部署流程。部署完成后,可以使用 MAAS Terraform provider 对活跃的 MAAS 环境进行进一步配置。


相关链接资源


二、文档目录

学习资源工作资源
教程 MAAS Anvil 功能实践入门操作指南 关键操作的分步指南
参考文档 技术规范

三、教程


1、引导 maas-anvil 集群学习基础知识

以下说明假设您有三个运行 Ubuntu 24.04 LTS 的节点 infra1infra2infra3,并且它们的网络配置正确。

此外,说明假设 MAAS Anvil 在所有三个节点上部署所有可用组件(角色):

  • MAAS 区域控制器
  • MAAS 机架控制器(agent)
  • PostgreSQL
  • HAProxy

每个节点的准备步骤

首先需要安装 MAAS Anvil 并设置一些先决条件。这需要在每个节点上完成。您可以在 CLI 接口参考 中了解 maas-anvil prepare-node-script 的具体作用。

ubuntu@infra{1,2,3}:~$ sudo snap install maas-anvil --edge
ubuntu@infra{1,2,3}:~$ maas-anvil prepare-node-script | bash -x

prepare-node-script 会将当前用户添加到 snap_daemon 组。为了使组更改生效,您必须_注销_并_重新登录_。如果文件所属组对您不是主要问题,您也可以运行以下命令立即激活组更改。

ubuntu@infra{1,2,3}:~$ newgrp snap_daemon

引导第一个节点

要初始化集群,您需要在第一个节点上运行引导命令。

ubuntu@infra1:~$ maas-anvil cluster bootstrap \
    --role database --role region --role agent --role haproxy \
    --accept-defaults

注:--accept-defaults 标志,顾名思义,接受 MAAS Anvil 的默认配置。最重要的配置是 虚拟 IPPostgreSQL 最大连接数TLS 终止。如果省略 --accept-defaults 标志,系统会在部署过程中提示您输入配置。如果您想预先指定配置,可以创建一个清单文件并通过 --manifest 标志提供该文件。了解更多关于如何使用清单文件配置 MAAS Anvil 部署的信息


向 MAAS 集群添加新节点

要向集群添加其他节点,您必须首先在引导集群的初始节点上创建加入令牌。确保在 fqdn 标志中指定要加入节点的完全限定域名(FQDN)。

ubuntu@infra1:~$ maas-anvil cluster add --fqdn infra2、Token for the Node infra2.: eyJuYW1lIjoibWFhcy00Lm1hYXMiLCJzZWNyZXQiOiI3MmE512342abcdEASWWxOWNlYWNkYmJjMWRmMjk4OThkYWFkYzQzMDAzZjk4NmRkZDI2MWRhYWVkZTIxIiwiZmluZ2VycHJpbnQiOiJlODU5ZmY5NjAwMDU4OGFjZmQ5ZDM0NjFhMDk5NmU1YTU3YjhjN2Q2ZjE4M2NjZDRlOTg2NGRkZjQ3NWMwZWM1Iiwiam9pbl9hZGRyZXNzZXMiOlsiMTAuMjAuMC43OjcwMDAiLCIxMC4yMC4wLjg6NzAwMCJdfQ==

ubuntu@infra1:~$ maas-anvil cluster add --fqdn infra3、Token for the Node infra3.: eyJuYW1lIjoibWFhcy00Lm1hYXMiLCJzZWNyZXQiOiI3MmE512342abcdEASWWxOWNlYWNkYmJjMWRmMjk4OThkYWFkYzQzMDAzZjk4NmRkZDI2MWRhYWVkZTIxIiwiZmluZ2VycHJpbnQiOiJlODU5ZmY5NjAwMDU4OGFjZmQ5ZDM0NjFhMDk5NmU1YTU3YjhjN2Q2ZjE4M2NjZDRlOTg2NGRkZjQ3NWMwZWM1Iiwiam9pbl9hZGRyZXNzZXMiOlsiMTAuMjAuMC43OjcwMDAiLCIxMC4yMC4wLjg6NzAwMCJdfQ==

将新节点加入 MAAS 集群

现在我们必须使用 cluster join 命令和刚创建的加入令牌在加入节点上加入集群。节点加入集群的角色可以特定于该节点,不必与引导节点的角色匹配。在本例中,我们选择每个节点都有每个组件的配置。

ubuntu@infra2:~$ maas-anvil cluster join \
    --role database --role region --role agent --role haproxy \
    --token eyJuYW1lIjoibWFhcy00Lm1hYXMiLCJzZWNyZXQiOiI3MmE512342abcdEASWWxOWNlYWNkYmJjMWRmMjk4OThkYWFkYzQzMDAzZjk4NmRkZDI2MWRhYWVkZTIxIiwiZmluZ2VycHJpbnQiOiJlODU5ZmY5NjAwMDU4OGFjZmQ5ZDM0NjFhMDk5NmU1YTU3YjhjN2Q2ZjE4M2NjZDRlOTg2NGRkZjQ3NWMwZWM1Iiwiam9pbl9hZGRyZXNzZXMiOlsiMTAuMjAuMC43OjcwMDAiLCIxMC4yMC4wLjg6NzAwMCJdfQ==
ubuntu@infra3:~$ maas-anvil cluster join \
    --role database --role region --role agent --role haproxy \
    --token eyJuYW1lIjoibWFhcy00Lm1hYXMiLCJzZWNyZXQiOiI3MmE512342abcdEASWWxOWNlYWNkYmJjMWRmMjk4OThkYWFkYzQzMDAzZjk4NmRkZDI2MWRhYWVkZTIxIiwiZmluZ2VycHJpbnQiOiJlODU5ZmY5NjAwMDU4OGFjZmQ5ZDM0NjFhMDk5NmU1YTU3YjhjN2Q2ZjE4M2NjZDRlOTg2NGRkZjQ3NWMwZWM1Iiwiam9pbl9hZGRyZXNzZXMiOlsiMTAuMjAuMC43OjcwMDAiLCIxMC4yMC4wLjg6NzAwMCJdfQ==

确认集群状态

如果一切顺利,MAAS-Anvil 集群现在应该已经运行。您可以使用以下命令检查集群状态。如果您想了解更多关于如何监控正在进行的 MAAS Anvil 部署的信息,可以在 监控正在进行的部署 部分阅读更多内容。

ubuntu@infra1:~$ maas-anvil cluster list
┏━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┓
┃ Node   ┃ Status ┃ Region ┃ Agent ┃ Database ┃ HAProxy ┃
┡━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━┩
│ infra1 │   up   │   x    │   x   │    x     │    x    │
│ infra2 │   up   │   x    │   x   │    x     │    x    │
│ infra3 │   up   │   x    │   x   │    x     │    x    │
└────────┴────────┴────────┴───────┴──────────┴─────────┘

创建 MAAS 管理员用户

要完成部署,您可以使用以下命令创建 MAAS 管理员用户:

ubuntu@infra1:~$ maas-anvil create-admin --username admin --password pass --email admin@maas.io --ssh-import=lp:maasadmin

您现在应该有一个运行中的 MAAS Anvil HA 集群和一个管理员用户 ✨。


四、操作指南


1、引导集群

这是 引导 maas-anvil 集群学习基础知识 教程的简化版本。如果您之前部署过 MAAS Anvil 集群,但需要复习流程,可以参考此操作指南。


准备节点

在每个节点上,您需要运行以下命令为 MAAS Anvil 使用做准备:

ubuntu@infra{1,2,3}:~$ sudo snap install maas-anvil --edge
ubuntu@infra{1,2,3}:~$ maas-anvil prepare-node-script | bash -x

prepare-node-script 会将当前用户添加到 snap_daemon 组。为了使组更改生效,您必须_注销_并_重新登录_。如果文件所属组对您不是主要问题,您也可以运行以下命令立即激活组更改。

ubuntu@infra{1,2,3}:~$ newgrp snap_daemon

引导第一个节点

要初始化集群,您需要在第一个节点上运行引导命令。

ubuntu@infra1:~$ maas-anvil cluster bootstrap \
    --role database --role region --role agent --role haproxy \
    --accept-defaults

添加新节点

要向集群添加新节点,请在引导节点上运行以下 cluster add 命令并记下令牌。

ubuntu@infra1:~$ maas-anvil cluster add --fqdn infra2、Token for the Node infra2.: eyJuYW1lIjoibWFhcy00Lm1hYXMiLCJzZWNyZXQiOiI3MmE512342abcdEASWWxOWNlYWNkYmJjMWRmMjk4OThkYWFkYzQzMDAzZjk4NmRkZDI2MWRhYWVkZTIxIiwiZmluZ2VycHJpbnQiOiJlODU5ZmY5NjAwMDU4OGA5ZDM0NjFhMDk5NmU1YTU3YjhjN2Q2ZjE4M2NjZDRlOTg2NGRkZjQ3NWMwZWM1Iiwiam9pbl9hZGRyZXNzZXMiOlsiMTAuMjAuMC43OjcwMDAiLCIxMC4yMC4wLjg6NzAwMCJdfQ==

ubuntu@infra1:~$ maas-anvil cluster add --fqdn infra3、Token for the Node infra3.: eyJuYW1lIjoibWFhcy00Lm1hYXMiLCJzZWNyZXQiOiI3MmE512342abcdEASWWxOWNlYWNkYmJjMWRmMjk4OThkYWFkYzQzMDAzZjk4NmRkZDI2MWRhYWVkZTIxIiwiZmluZ2VycHJpbnQiOiJlODU5ZmY5NjAwMDU4OGFjZmQ5ZDM0NjFhMDk5NmU1YTU3YjhjN2Q2ZjE4M2NjZDRlOTg2NGRkZjQ3NWMwZWM1Iiwiam9pbl9hZGRyZXNzZXMiOlsiMTAuMjAuMC43OjcwMDAiLCIxMC4yMC4wLjg6NzAwMCJdfQ==

将新节点加入集群

使用 cluster join 命令、刚创建的加入令牌以及您希望特定节点具有的角色,在加入节点上加入集群。

ubuntu@infra2:~$ maas-anvil cluster join \
    --role database --role region --role agent --role haproxy \
    --token eyJuYW1lIjoibWFhcy00Lm1hYXMiLCJzZWNyZXQiOiI3MmE512342abcdEASWWxOWNlYWNkYmJjMWRmMjk4OThkYWFkYzQzMDAzZjk4NmRkZDI2MWRhYWVkZTIxIiwiZmluZ2VycHJpbnQiOiJlODU5ZmY5NjAwMDU4OGFjZmQ5ZDM0NjFhMDk5NmU1YTU3YjhjN2Q2ZjE4M2NjZDRlOTg2NGRkZjQ3NWMwZWM1Iiwiam9pbl9hZGRyZXNzZXMiOlsiMTAuMjAuMC43OjcwMDAiLCIxMC4yMC4wLjg6NzAwMCJdfQ==
ubuntu@infra3:~$ maas-anvil cluster join \
    --role database --role region --role agent --role haproxy \
    --token eyJuYW1lIjoibWFhcy00Lm1hYXMiLCJzZWNyZXQiOiI3MmE512342abcdEASWWxOWNlYWNkYmJjMWRmMjk4OThkYWFkYzQzMDAzZjk4NmRkZDI2MWRhYWVkZTIxIiwiZmluZ2VycHJpbnQiOiJlODU5ZmY5NjAwMDU4OGFjZmQ5ZDM0NjFhMDk5NmU1YTU3YjhjN2Q2ZjE4M2NjZDRlOTg2NGRkZjQ3NWMwZWM1Iiwiam9pbl9hZGRyZXNzZXMiOlsiMTAuMjAuMC43OjcwMDAiLCIxMC4yMC4wLjg6NzAwMCJdfQ==

2、登录 Juju 控制器

如果您收到类似以下错误消息:

Please enter password for $node on anvil-controller

这是因为 Juju OAuth macaroons 通常会在 24 小时后过期。如果您需要在 macaroon 过期后与 MAAS Anvil Juju 控制器交互,您需要重新验证会话。您可以使用以下命令重新验证会话:

ubuntu@$node:~$ maas-anvil juju-login

您也可以手动从 MAAS Anvil 获取登录凭据:

ubuntu@$node:~$ cat ~/snap/maas-anvil/current/account.yaml
password: $password
user: $user

然后像往常一样使用 juju login


3、配置您的 MAAS Anvil 部署

在高可用性部署 MAAS 时,您可能需要配置数据库的最大连接数、虚拟 IP、TLS、使用的 charms 版本,甚至是组件的部署方式。MAAS Anvil 允许您配置所有这些内容,本节将解释如何操作。

如果您想确切了解有哪些配置选项可用以及它们有什么效果,请阅读 配置选项 部分。

MAAS Anvil 的配置选项通常分为两类:

  • 部署
  • 软件

在部署类别中,您可以配置部署的一般选项;在软件类别中,您可以选择 MAAS Anvil 中使用的所有 charms 的版本和配置,并定义这些 charms 的部署方式。


--accept-defaults 标志

如果在引导节点和加入节点上设置 --accept-defaults 标志,您将接受 MAAS Anvil 附带的默认配置。对于所有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程乐园

请我喝杯伯爵奶茶~!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值