Cloud-Init 和 Autoinstall 有什么区别?

Cloud-Init 和 Autoinstall 有什么区别?

所以我一直在尝试安装 Nixos官方网站使用适用于 Ubuntu Server 22.04 的 Cloud-Init。我想真正了解如何安装我可能需要编译的软件包,或者在文件中使用 Curl 或 Wget 等其他方式安装软件包user-data.yaml

到目前为止,user-data.yaml我正尝试runcmd:通过该网站推荐的方式安装 Nox。

我的整个配置如下,最下面是runcmd:我无法安装的。整个文件如下所示。

#cloud-config
autoinstall:
  version: 1
  locale: en_GB.UTF-8
  refresh-installer:
    update: true
  keyboard:
    layout: "gb"
  apt:
    geoip: true
  identity:
    hostname: ubuntu-server
    password: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0"
    username: ubuntu
  storage:
    layout:
      name: lvm
      match:
        size: largest
  packages:
    - libreoffice
    - sway
    - i3
    - kitty
  snaps:
    - name: firefox
  timezone: geoip
  manage_resolv_conf: true
  resolv_conf:
    nameservers:
      - 1.1.1.3
      - 8.8.8.8
  updates: all
  runcmd:
    - [mkdir, -m, 0755, /nix]
    - [chown, ubuntu, /nix]
    - [wget, "https://nixos.org/nix/install"]
    - [bash, install, --daemon]

如果您通过命令行运行安装程序,系统会提示您是否要创建目录“/nix”,因此会给出命令。我束手无策了!

在过去的 7 个小时里,我一直尝试安装这个包管理器,这样我就可以安装 Wayland,如果我一直使用 RunCmd:,那么从这里安装会比从源代码安装容易得多。

据我所知,这是运行 bash 命令的方法

到目前为止我已经尝试过:

  • 将其置于根目录,因此关键字\s\s之前没有runcmd:
  • 尝试使用引号中的命令"sh -c 'curl ....'"
  • 将其放在括号中,如 `[sh, -c, curl, "https://nixos.org/down.../install", |, bash]
  • 它的其他配置在括号中,如 `[bash, -c, 'curl "https://nixos.org/down.../install" | bash'] *如此多的配置!!
  • 进入 GitHub 并搜索其他人使用的示例runcmd:
  • 遵循 DigitalOcean 的 Cloud-Init 指南并runcmd:附带示例
  • 阅读 Cloud-init 的参考资料
  • 阅读 Autoinstall 的参考
  • 阅读科廷的参考资料

我只是不知道下一步该做什么......

我正在使用 Qemu 和 Ubuntu 22.04 Jammy Server ISO 测试这些配置。

我如何从包含来自网络的安装脚本的安装文件中安装东西?

谢谢 :)

答案1

我为同一件事奋斗了好几个小时!

以下方法似乎有效(至少对我来说),所以尝试一下;

#cloud-config
autoinstall:
   version: 1
   ...
   user-data:
      runcmd:
        - mkdir -m 0755 /nix
        - chown ubuntu /nix
        - wget "https://nixos.org/nix/install"
        - bash install --daemon

不确定括号是否合适。我的命令没有括号也能正常工作,因此请先尝试括号以获得更好的可读性。

https://ubuntu.com/server/docs/install/autoinstall-reference#user-data

答案2

Cloud-Init 和 Autoinstall 有什么区别?

Subiquity 使用 cloud-init,它通过使用自己的自定义键重载 cloud-init 的配置文件来实现这一点。这就是为什么 subiquity 的文档(令人困惑地)将其称为“cloud-config” - 它是一个 cloud-config,就像大多数以 开头的 YAML 文件#cloud-config是有效的 cloud-configs 一样:cloud-init 会忽略未定义的键。

Cloud-init 不使用自动安装键来配置任何内容,正如两者的文档中所述云初始化subiquity 自动安装程序

我的整个配置如下,底部是 runcmd:我就是无法安装它。

也许其他人可以更详细地帮助解决 subuity 问题,但看一下subiquity 的 jsonschema,您似乎正在尝试使用对自动安装程序无效的密钥。我runcmd在 jsonschema 中没有看到。

我如何从包含来自网络的安装脚本的安装文件中安装东西?

我建议澄清一下你到底想问什么。

相关内容