В чем разница между Cloud-Init и Autoinstall?

Итак, я пытался установить Nixos с официального сайта с помощью Cloud-Init для Ubuntu Server 22.04. Я хочу по-настоящему понять, как устанавливать пакеты, которые мне потенциально придется компилировать, или использовать другие способы установки пакетов, например, с помощью Curl или Wget внутри файла.

На данный момент у меня естьuser-data.yamlв котором я пытаюсь использовать Nox для установки рекомендуемым с этого сайта способом.

Вся моя конфигурация приведена ниже, а внизу находится та, которую я просто не могу установить. Весь файл выглядит так.

      #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

До сих пор я пробовал:

  • Ставим root, так что нет\s\sперед ключевым словом
  • Пробуем команды в кавычках, например"sh -c 'curl ....'"
  • Заключив его в скобки, например `[sh, -c, curl, "https://nixos.org/down.../install", |, bash]
  • Другая его конфигурация указана в скобках, например `[bash, -c, 'curl "https://nixos.org/down.../install" | bash'] *Так много конфигураций!!
  • Зашел на GitHub и поискал примеры использования другими людьми.
  • Следуя руководству DigitalOcean по Cloud-Init сruncmd:Примеры
  • Прочтите ссылку на Cloud-init.
  • Прочтите ссылку на автоустановку.
  • прочитайте ссылку на Кертина

И я просто не знаю, что делать дальше...

Я использую Qemu для тестирования этих конфигураций с помощью ISO-образа сервера Jammy Ubuntu 22.04.

Как мне просто установить что-то из установочного файла, у которого есть сценарий установки из Интернета?

Спасибо :)

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

Другие вопросы по тегам