MaaS:招募节点的问题

MaaS:招募节点的问题

我最近开始使用 MaaS 3.0.0(从 2.4 开始)。我能够登记、调试和部署节点,直到今天,当我尝试登记一些节点时,我开始收到以下信息:

Can not apply stage config, no datasource found! Likely bad things to come!

我最终追踪到了 enlist-preseed URL(http://xxx1:5240/MAAS/metadata/latest/enlist-preseed/?op=get_enlist_preseed)向客户端提供 500 错误,这是我在 Chrome 中浏览时的输出:

name 'metadata_enlist_url' is not defined at line 8 column 22 in file /var/snap/maas/15003/preseeds/enlist

我仍使用 2.4 版本,当我转到相同路径时,会出现以下信息:

#cloud-config
datasource:
  MAAS:
    timeout : 50
    max_wait : 120
    # there are no default values for metadata_url or oauth credentials
    # If no credentials are present, non-authed attempts will be made.
    metadata_url: http://x.x.2.4:5240/MAAS/metadata/enlist

output: {all: '| tee -a /var/log/cloud-init-output.log'}

我尝试/var/snap/maas/15003/preseeds/enlist使用 2.4 版本在我的 3.0 maas 上创建/编辑,但 3.0 网页从未返回任何有用的信息,只是同样的错误。

有人知道发生了什么事/如何解决它吗?

答案1

所以我不确定它是如何进入这种状态的,但出于某种原因,MaaS 不再喜欢这个 {{metadata_enlist_url}}变量,甚至把它包含在这样的评论中

# metadata_url: {{metadata_enlist_url}}

MaaS 尝试进行替换时出现错误。删除该变量并硬编码metadata_url: http://x.x.x.1:5240/MAAS/metadata/enlist内容后,我现在至少可以进入登记工作流程(但仍遇到其他一些问题...)

答案2

尝试将 preseeds/enlist 中的 metadata_url 值设置为:

    metadata_url: http://{{server_host}}:5240/MAAS/metadata

我已经使用 MAAS 2.9 对此进行了测试。

答案3

我从 MAAS 2.6 升级后发现了同样的问题,但我设法找到了一种在 MAAS 3.0+ 中有效的解决方案。我尝试了上述方法,但对我不起作用。

当我查询这个 URL 时:http://xxx2:5240/MAAS/metadata/enlist-preseed/?op=get_enlist_preseed通过我的浏览器

我得到了这个结果:

Unrecognised signature: method=GET op=get_enlist_preseed

然后,我在测试服务器上安装了 MAAS 3.3 的全新实例,并发现新安装中的“/etc/maas/preseeds/enlist”或 /snap/maas/24685/etc/maas/preseeds/enlist 文件与生产安装完全不同。

生产服务器上的文件:

$ cat /etc/maas/preseeds/enlist
#cloud-config
datasource:
  MAAS:
    timeout : 50
    max_wait : 120
    # there are no default values for metadata_url or oauth credentials
    # If no credentials are present, non-authed attempts will be made.
    metadata_url: {{metadata_enlist_url}}

输出:{全部:'| tee -a /var/log/cloud-init-output.log'}

测试服务器上的文件:

$ cat /etc/maas/preseeds/enlist

{{preseed_data}}

我备份了生产服务器上的旧登记文件,并将其更改为与测试服务器上的登记文件相同,现在它再次运行并且正在登记新机器。

现在,当我查询相同的 URL 时,我得到以下信息:

#cloud-config
apt:
  preserve_sources_list: false
  primary:
  - arches:
    - amd64
    - i386
    uri: http://archive.ubuntu.com/ubuntu
  - arches:
    - default
    uri: http://ports.ubuntu.com/ubuntu-ports
  proxy: http://x.x.x.2:8000/
  security:
  - arches:
    - amd64
    - i386
    uri: http://archive.ubuntu.com/ubuntu
  - arches:
    - default
    uri: http://ports.ubuntu.com/ubuntu-ports
  sources_list: 'deb $PRIMARY $RELEASE main restricted multiverse universe

    # deb-src $PRIMARY $RELEASE main restricted multiverse universe

    deb $PRIMARY $RELEASE-updates main restricted multiverse universe

    # deb-src $PRIMARY $RELEASE-updates main restricted multiverse universe

    deb $PRIMARY $RELEASE-backports main restricted multiverse universe

    # deb-src $PRIMARY $RELEASE-backports main restricted multiverse universe

    deb $SECURITY $RELEASE-security main restricted multiverse universe

    # deb-src $SECURITY $RELEASE-security main restricted multiverse universe

    '
datasource:
  MAAS:
    metadata_url: http://x.x.x.2:5240/MAAS/metadata/
manage_etc_hosts: true
packages:
- python3-yaml
- python3-oauthlib
power_state:
  condition: test ! -e /tmp/block-poweroff
  delay: now
  mode: poweroff
  timeout: 1800
rsyslog:
  remotes:
    maas: x.x.x.2:5247

希望这可以帮助。

相关内容