#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 = для пути к монтированию компакт-диска?