所以我一直在尝试安装 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 中没有看到。
我如何从包含来自网络的安装脚本的安装文件中安装东西?
我建议澄清一下你到底想问什么。