Автоматическая установка упаковщика Ubuntu 20.04 через CD-привод

#continuous-integration #gitlab #packer #ubuntu-20.04

# #непрерывная интеграция #gitlab #упаковщик #ubuntu-20.04

Вопрос:

Я настроил развертывание шаблона пакера Ubuntu 20.04.1 с пользовательскими данными и метаданными, смонтированными на компакт-диске, но я не знаю, как настроить загрузочную команду автоматической установки, чтобы заставить работать часть subiquity:

ubuntu-20.04.json

 "cd_files": ["{{template_dir}}/ubuntu-20.04/meta-data", "{{template_dir}}/ubuntu-20.04/user-data"],
    "cd_label": "cidata",
    
    "iso_paths": [
      "[ColoNord-ISOs] ISOs/ubuntu-20.04.1-live-server-amd64.iso"
    ],
    "boot_wait": "5s",
    "floppy_files": ["{{template_dir}}/preseed.cfg"],
    "boot_command": [
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<wait><esc><wait><f6><wait><esc><wait>",
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
      "<bs><bs><bs>",
      "/casper/vmlinuz ",
      "initrd=/casper/initrd ",
      " ipv6.disable=1 autoinstall ",
      "ds=nocloud-net;s=/cidata/",
      "<enter>"
    ]
 

пользовательские данные

 #cloud-config
autoinstall:
    version: 1
    early-commands:
        #Stop SSH to prevent Packer from connecting too early
        - sudo systemctl stop ssh
    apt:
    geoip: true
    preserve_sources_list: false
    primary:
    - arches: [amd64, i386]
        uri: http://gb.archive.ubuntu.com/ubuntu
    - arches: [default]
        uri: http://ports.ubuntu.com/ubuntu-ports
    identity:
    hostname: ubuntu2004
    username: username
    password: password
    ssh:
    allow-pw: true
    install-server: true
    locale: de_CH
    keyboard: 
    layout: gb
    network:
        network:
            version: 2
            ethernets:
            ens160:
                addresses:
                - 10.0.249.75/24
                gateway4: 10.0.249.1
                nameservers:
                addresses:
                - 10.10.10.10
                - 10.10.10.11
                - 10.10.10.12
                - 10.10.10.13
                search:
                - domain.local

    storage:
    layout:
        name: direct
    config:
        - type: disk
        id: disk0
        match:
            size: largest
        - type: partition
        id: boot-partition
        device: disk0
        size: 500M
        - type: partition
        id: root-partition
        device: disk0
        size: -1
    late-commands:
    - "echo 'Defaults:username !requiretty' > /target/etc/sudoers.d/username"
    - "echo 'username ALL=(ALL) NOPASSWD: ALL' >> /target/etc/sudoers.d/username"
    - "chmod 440 /target/etc/sudoers.d/username"
 

Было бы здорово заставить это работать, чтобы я мог, наконец, развернуть некоторые базовые установленные шаблоны виртуальных машин vSphere Ubuntu.
Я не нахожу так много документации по этому вопросу, поэтому, если вы можете справиться со мной, чтобы решить эту проблему, тоже было бы здорово.

Greez.

Ответ №1:

Я использую HTTP-источник по умолчанию, который настраивает packer, а не CD, но boot_command должен быть похожим.

От автоматизации установки Ubuntu 20.04 с помощью упаковщика

  "boot_command": [
        "<enter><enter><f6><esc><wait> ",
        "autoinstall ds=nocloud-net;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/",
        "<enter>"
      ]
 

Если вы хотите использовать CD, то единственным отличием этой части должен быть источник для cloud-config.

У меня есть рабочая настройка упаковщика с Ubuntu 20.04, и установщик subiquity все еще ожидает PR в репозитории boxcutter / ubuntu github. Вы могли бы обратиться к этому за помощью. Мне тоже потребовалось некоторое время, чтобы разобраться.

Комментарии:

1. да, я вижу, но проблема по-прежнему в том, что мой экземпляр packer запущен в контейнере docker runner от gitlab, у которого есть собственная частная сеть docker. и я не могу открыть порт упаковщика через контейнер. итак, можете ли вы сказать мне, что я должен указать за s = для пути к монтированию компакт-диска?