
Emitir:
Estou tentando usar o packer para criar uma imagem do Ubuntu Server 22.04 e estou tendo problemas quando se trata de renomear a NIC usando uma configuração netplan válida e também instalar um pacote.
Algumas coisas a serem observadas em segundo plano:
- Estou renomeando a NIC porque estou tentando usar o terraform para definir a configuração da NIC na inicialização usando proxmox com cloud-init. Quando o cloud-init é executado na imagem clonada, parece querer renomear a NIC na primeira inicialização e, como não pode renomear a NIC (para eth0 de ens18), é necessária uma segunda reinicialização antes que o cloud-init defina o endereço IP adequado na VM. Isso não é o ideal quando eu quero rodar um servidor Ubuntu com o terraform, já que é necessário reinicializar manualmente.
Não tive problemas com as configurações de unidade/configuração do Proxmox e do cloud-init que ele fornece para os seguintes sistemas operacionais:
- AlmaLinux 8 e 9
- RHEL 7, 8 e 9
- Windows Server 2012, 2016, 2019 e 2022 (Cloudbase-init)
Todos eles parecem aceitar a configuração do cloud-init que o terraform envia ao proxmox para usar e está tudo pronto. Tudo isso para dizer que talvez o proxmox não devesse renomear a NIC, mas o Ubuntu Server é o primeiro sistema operacional em que tive problemas com isso e não estou procurando uma solução em nenhum lugar além do Ubuntu atualmente.
- Preciso instalar
qemu-guest-agent
na VM para que o packer possa ler o endereço IP da API Proxmox para saber a quem se conectar.
Especificidades:
- Posso instalar
qemu-guest-agent
se não especificar nenhuma configuração de rede e deixar que subiquity/netplan forneça os padrões. Quando faço isso, o finalautoinstall-user-data
localizado em/var/log/installer
uma instalação automática bem-sucedida mostra a seguinte configuração de rede e pacotes:
autoinstall:
<snipped>
network:
ethernets:
ens18:
dhcp4: true
version: 2
packages:
- qemu-guest-agent
<snipped>
- Posso renomear a NIC com sucesso usando subiquity/netplan. Quando isso é feito, a instalação do qemu-guest-agent falha e o processo de construção falha. Aqui está a configuração que uso para isso:
network:
ethernets:
ens18:
match:
driver: e1000
dhcp4: true
set-name: eth0
version: 2
packages:
- qemu-guest-agent
O bloco acima network:
renomeou com sucesso a NIC para eth0 E eu tenho rede completa na instalação quebrada. Consigo fazer ping em algo como google.com e também fazer SSH na máquina. Posso ver nos logs que a renomeação foi bem-sucedida e posso verificar o novo nome da NIC na instalação com falha quando ele me coloca em um shell.
Abaixo estão os erros que ocorrem após a renomeação da NIC.
De subiquity-server-debug.log.1976
:
2022-09-04 07:21:30,557 DEBUG root:39 start: subiquity/Install/install/postinstall/install_qemu-guest-agent: installing qemu-guest-agent
2022-09-04 07:21:30,560 DEBUG subiquitycore.utils:112 astart_command called: ['systemd-run', '--wait', '--same-dir', '--property', 'SyslogIdentifier=subiquity_log.1976', '--setenv', 'PATH=/snap/subiquity/3698/bin:/snap/subiquity/3698/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/subiquity/3698/bin', '--setenv', 'PYTHONPATH=:/snap/subiquity/3698/lib/python3.8/site-packages', '--setenv', 'PYTHON=/snap/subiquity/3698/usr/bin/python3.8', '--setenv', 'SNAP=/snap/subiquity/3698', '--', '/snap/subiquity/3698/usr/bin/python3.8', '-m', 'curtin', '--showtrace', '-vvv', '--set', 'json:reporting={"subiquity": {"type": "journald", "identifier": "curtin_event.1976.5"}}', 'system-install', '-t', '/target', '--', 'qemu-guest-agent']
2022-09-04 07:21:30,570 INFO root:39 start: subiquity/Meta/status_GET:
2022-09-04 07:21:31,706 DEBUG root:39 start: subiquity/Install/install/postinstall/install_qemu-guest-agent/cmd-system-install: curtin command system-install
2022-09-04 07:21:31,826 ERROR root:39 finish: subiquity/Install/install/postinstall/install_qemu-guest-agent: FAIL: Command '['systemd-run', '--wait', '--same-dir', '--property', 'SyslogIdentifier=subiquity_log.1976', '--setenv', 'PATH=/snap/subiquity/3698/bin:/snap/subiquity/3698/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/subiquity/3698/bin', '--setenv', 'PYTHONPATH=:/snap/subiquity/3698/lib/python3.8/site-packages', '--setenv', 'PYTHON=/snap/subiquity/3698/usr/bin/python3.8', '--setenv', 'SNAP=/snap/subiquity/3698', '--', '/snap/subiquity/3698/usr/bin/python3.8', '-m', 'curtin', '--showtrace', '-vvv', '--set', 'json:reporting={"subiquity": {"type": "journald", "identifier": "curtin_event.1976.5"}}', 'system-install', '-t', '/target', '--', 'qemu-guest-agent']' returned non-zero exit status 100.
2022-09-04 07:21:31,833 ERROR root:39 finish: subiquity/Install/install/postinstall: FAIL: Command '['systemd-run', '--wait', '--same-dir', '--property', 'SyslogIdentifier=subiquity_log.1976', '--setenv', 'PATH=/snap/subiquity/3698/bin:/snap/subiquity/3698/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/subiquity/3698/bin', '--setenv', 'PYTHONPATH=:/snap/subiquity/3698/lib/python3.8/site-packages', '--setenv', 'PYTHON=/snap/subiquity/3698/usr/bin/python3.8', '--setenv', 'SNAP=/snap/subiquity/3698', '--', '/snap/subiquity/3698/usr/bin/python3.8', '-m', 'curtin', '--showtrace', '-vvv', '--set', 'json:reporting={"subiquity": {"type": "journald", "identifier": "curtin_event.1976.5"}}', 'system-install', '-t', '/target', '--', 'qemu-guest-agent']' returned non-zero exit status 100.
2022-09-04 07:21:31,834 DEBUG subiquitycore.common.errorreport:384 generating crash report
2022-09-04 07:21:31,872 INFO subiquitycore.common.errorreport:406 saving crash report 'install failed crashed with CalledProcessError' to /var/crash/1662276091.834314585.install_fail.crash
2022-09-04 07:21:31,873 ERROR root:39 finish: subiquity/Install/install: FAIL: Command '['systemd-run', '--wait', '--same-dir', '--property', 'SyslogIdentifier=subiquity_log.1976', '--setenv', 'PATH=/snap/subiquity/3698/bin:/snap/subiquity/3698/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/subiquity/3698/bin', '--setenv', 'PYTHONPATH=:/snap/subiquity/3698/lib/python3.8/site-packages', '--setenv', 'PYTHON=/snap/subiquity/3698/usr/bin/python3.8', '--setenv', 'SNAP=/snap/subiquity/3698', '--', '/snap/subiquity/3698/usr/bin/python3.8', '-m', 'curtin', '--showtrace', '-vvv', '--set', 'json:reporting={"subiquity": {"type": "journald", "identifier": "curtin_event.1976.5"}}', 'system-install', '-t', '/target', '--', 'qemu-guest-agent']' returned non-zero exit status 100.
2022-09-04 07:21:31,875 INFO root:39 start: subiquity/ErrorReporter/1662276091.834314585.install_fail/add_info:
2022-09-04 07:21:31,876 ERROR subiquity.server.server:416 top level error
Traceback (most recent call last):
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/controllers/cmdlist.py", line 104, in _run
await Install.install_task
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquitycore/context.py", line 148, in decorated_async
return await meth(self, **kw)
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/controllers/install.py", line 177, in install
await self.postinstall(context=context)
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquitycore/context.py", line 148, in decorated_async
return await meth(self, **kw)
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/controllers/install.py", line 200, in postinstall
await self.install_package(context=context, package=package)
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquitycore/context.py", line 148, in decorated_async
return await meth(self, **kw)
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/controllers/install.py", line 227, in install_package
await run_curtin_command(
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/curtin.py", line 181, in run_curtin_command
return await cmd.wait()
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/curtin.py", line 118, in wait
result = await self.runner.wait(self.proc)
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/runner.py", line 81, in wait
raise subprocess.CalledProcessError(proc.returncode, proc.args)
subprocess.CalledProcessError: Command '['systemd-run', '--wait', '--same-dir', '--property', 'SyslogIdentifier=subiquity_log.1976', '--setenv', 'PATH=/snap/subiquity/3698/bin:/snap/subiquity/3698/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/subiquity/3698/bin', '--setenv', 'PYTHONPATH=:/snap/subiquity/3698/lib/python3.8/site-packages', '--setenv', 'PYTHON=/snap/subiquity/3698/usr/bin/python3.8', '--setenv', 'SNAP=/snap/subiquity/3698', '--', '/snap/subiquity/3698/usr/bin/python3.8', '-m', 'curtin', '--showtrace', '-vvv', '--set', 'json:reporting={"subiquity": {"type": "journald", "identifier": "curtin_event.1976.5"}}', 'system-install', '-t', '/target', '--', 'qemu-guest-agent']' returned non-zero exit status 100.
2022-09-04 07:21:31,877 ERROR subiquity.server.server:416 top level error
Traceback (most recent call last):
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/controllers/shutdown.py", line 77, in _wait_install
await self.app.controllers.Install.install_task
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/controllers/cmdlist.py", line 104, in _run
await Install.install_task
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquitycore/context.py", line 148, in decorated_async
return await meth(self, **kw)
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/controllers/install.py", line 177, in install
await self.postinstall(context=context)
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquitycore/context.py", line 148, in decorated_async
return await meth(self, **kw)
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/controllers/install.py", line 200, in postinstall
await self.install_package(context=context, package=package)
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquitycore/context.py", line 148, in decorated_async
return await meth(self, **kw)
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/controllers/install.py", line 227, in install_package
await run_curtin_command(
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/curtin.py", line 181, in run_curtin_command
return await cmd.wait()
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/curtin.py", line 118, in wait
result = await self.runner.wait(self.proc)
File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/runner.py", line 81, in wait
raise subprocess.CalledProcessError(proc.returncode, proc.args)
subprocess.CalledProcessError: Command '['systemd-run', '--wait', '--same-dir', '--property', 'SyslogIdentifier=subiquity_log.1976', '--setenv', 'PATH=/snap/subiquity/3698/bin:/snap/subiquity/3698/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/subiquity/3698/bin', '--setenv', 'PYTHONPATH=:/snap/subiquity/3698/lib/python3.8/site-packages', '--setenv', 'PYTHON=/snap/subiquity/3698/usr/bin/python3.8', '--setenv', 'SNAP=/snap/subiquity/3698', '--', '/snap/subiquity/3698/usr/bin/python3.8', '-m', 'curtin', '--showtrace', '-vvv', '--set', 'json:reporting={"subiquity": {"type": "journald", "identifier": "curtin_event.1976.5"}}', 'system-install', '-t', '/target', '--', 'qemu-guest-agent']' returned non-zero exit status 100.
2022-09-04 07:21:32,072 ERROR root:39 finish: subiquity/Install/install/postinstall/install_qemu-guest-agent/cmd-system-install: FAIL: curtin command system-install
2022-09-04 07:21:32,594 INFO root:39 finish: subiquity/ErrorReporter/1662276091.834314585.install_fail/add_info: SUCCESS: written to /var/crash/1662276091.834314585.install_fail.crash
2022-09-04 07:21:32,596 INFO root:39 finish: subiquity/Meta/status_GET: SUCCESS: 200 {"state": "ERROR", "confirming_tty": "", "error": {"state": "DONE", "base": "...
2022-09-04 07:21:32,599 INFO aiohttp.access:233 [04/Sep/2022:07:21:30 +0000] "GET /meta/status?cur=%22POST_RUNNING%22 HTTP/1.1" 200 524 "-" "Python/3.8 aiohttp/3.6.2"
Se eu executar o comando manualmente nos logs com falha:
systemd-run --wait --same-dir --property SyslogIdentifier=subiquity_log.1976 --setenv PATH=/snap/subiquity/3698/bin:/snap/subiquity/3698/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/subiquity/3698/bin --setenv PYTHONPATH=:/snap/subiquity/3698/lib/python3.8/site-packages --setenv PYTHON=/snap/subiquity/3698/usr/bin/python3.8 --setenv SNAP=/snap/subiquity/3698 -- /snap/subiquity/3698/usr/bin/python3.8 -m curtin --showtrace -vvvvvv --set json:reporting='{"subiquity": {"type": "journald", "identifier": "curtin_event.1976.5"}}' system-install -t /target -- qemu-guest-agent
Posso ver o seguinte no syslog:
Sep 4 07:31:18 ubuntu-server systemd[1]: Started /snap/subiquity/3698/usr/bin/python3.8 -m curtin --showtrace -vvvvvv --set json:reporting={"subiquity": {"type": "journald", "identifier": "curtin_event.1976.5"}} system-install -t /target -- qemu-guest-agent.
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: start: cmd-system-install: curtin command system-install
Sep 4 07:31:19 ubuntu-server curtin_event.1976.5[16331]: start: cmd-system-install: curtin command system-install
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['mount', '--bind', '/dev', '/target/dev'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['mount', '--bind', '/proc', '/target/proc'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['mount', '--bind', '/run', '/target/run'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['mount', '--bind', '/sys', '/target/sys'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['unshare', '--help'] with allowed return codes [0] (capture=True)
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['unshare', '--fork', '--pid', '--', 'chroot', '/target', 'eatmydata', 'apt-get', '--quiet', '--assume-yes', '--option=Dpkg::options::=--force-unsafe-io', '--option=Dpkg::Options::=--force-confold', 'install', 'qemu-guest-agent'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16342]: Reading package lists...
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16342]: Building dependency tree...
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16342]: Reading state information...
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16342]: E: Unable to locate package qemu-guest-agent
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: TIMED subp(['udevadm', 'settle']): 0.028
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['mount', '--make-private', '/target/sys'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['umount', '/target/sys'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['mount', '--make-private', '/target/run'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server systemd[1]: target-sys.mount: Deactivated successfully.
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['umount', '/target/run'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['mount', '--make-private', '/target/proc'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['umount', '/target/proc'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['mount', '--make-private', '/target/dev'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Running command ['umount', '/target/dev'] with allowed return codes [0] (capture=False)
Sep 4 07:31:19 ubuntu-server subiquity_event.1976[1976]: subiquity/Install/install/postinstall/install_qemu-guest-agent/cmd-system-install: curtin command system-install
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: system install failed for ['qemu-guest-agent']: Unexpected error while running command.
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Command: ['unshare', '--fork', '--pid', '--', 'chroot', '/target', 'eatmydata', 'apt-get', '--quiet', '--assume-yes', '--option=Dpkg::options::=--force-unsafe-io', '--option=Dpkg::Options::=--force-confold', 'install', 'qemu-guest-agent']
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Exit code: 100
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Reason: -
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Stdout: ''
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: Stderr: ''
Sep 4 07:31:19 ubuntu-server subiquity_log.1976[16331]: finish: cmd-system-install: FAIL: curtin command system-install
Sep 4 07:31:19 ubuntu-server curtin_event.1976.5[16331]: finish: cmd-system-install: FAIL: curtin command system-install
Sep 4 07:31:19 ubuntu-server systemd[1]: run-u70.service: Main process exited, code=exited, status=100/n/a
Sep 4 07:31:19 ubuntu-server systemd[1]: run-u70.service: Failed with result 'exit-code'.
Sep 4 07:31:19 ubuntu-server systemd[1]: run-u70.service: Consumed 1.595s CPU time.
Sep 4 07:31:20 ubuntu-server subiquity_event.1976[1976]: subiquity/Install/install/postinstall/install_qemu-guest-agent/cmd-system-install: curtin command system-install
Sep 4 07:31:20 ubuntu-server systemd[1]: target-run.mount: Deactivated successfully.
Sep 4 07:31:20 ubuntu-server systemd[1]: target-proc.mount: Deactivated successfully.
Sep 4 07:31:20 ubuntu-server systemd[1]: target-dev.mount: Deactivated successfully.
Esta mesma etapa/configuração é bem-sucedida quando executada em uma instalação automática sem renomear a NIC:
2022-09-01 23:11:45,679 DEBUG root:39 start: subiquity/Install/install/postinstall/install_qemu-guest-agent: installing qemu-guest-agent
2022-09-01 23:11:45,988 DEBUG subiquitycore.utils:112 astart_command called: ['systemd-run', '--wait', '--same-dir', '--property', 'SyslogIdentifier=subiquity_log.1972', '--setenv', 'PATH=/snap/subiquity/3698/bin:/snap/subiquity/3698/usr/bin:/usr/local/s
bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/subiquity/3698/bin', '--setenv', 'PYTHONPATH=:/snap/subiquity/3698/lib/python3.8/site-packages', '--setenv', 'PYTHON=/snap/subiquity/3698/usr/bin/python3.8', '--
setenv', 'SNAP=/snap/subiquity/3698', '--', '/snap/subiquity/3698/usr/bin/python3.8', '-m', 'curtin', '--showtrace', '-vvv', '--set', 'json:reporting={"subiquity": {"type": "journald", "identifier": "curtin_event.1972.5"}}', 'system-install', '-t', '/tar
get', '--', 'qemu-guest-agent']
2022-09-01 23:11:46,031 INFO root:39 start: subiquity/Meta/status_GET:
2022-09-01 23:11:47,706 DEBUG root:39 start: subiquity/Install/install/postinstall/install_qemu-guest-agent/cmd-system-install: curtin command system-install
2022-09-01 23:11:56,394 DEBUG subiquity.server.curtin:123 waited 0.1 seconds for events to drain
2022-09-01 23:11:56,458 DEBUG root:39 finish: subiquity/Install/install/postinstall/install_qemu-guest-agent/cmd-system-install: SUCCESS: curtin command system-install
2022-09-01 23:11:56,496 DEBUG subiquity.server.curtin:123 waited 0.2 seconds for events to drain
2022-09-01 23:11:56,497 DEBUG root:39 finish: subiquity/Install/install/postinstall/install_qemu-guest-agent: SUCCESS: installing qemu-guest-agent
Neste ponto, não sei ao certo por que afirma que não é possível localizar o pacote depois que a NIC é renomeada. Estou um pouco perplexo neste momento porque a VM tem acesso total à Internet depois que o shell é apresentado.
Qualquer tipo de ajuda/etapa de solução de problemas é apreciada. Fico feliz em fornecer qualquer informação que puder.
Responder1
Eu gosto de configurar redes usando late-commands
.
#cloud-config
autoinstall:
late-commands:
- |
rm /target/etc/netplan/00-installer-config.yaml
cat <<EOF > /target/etc/netplan/80-my.yaml
network:
ethernets:
ens18:
match:
driver: e1000
dhcp4: true
set-name: eth0
version: 2
EOF
como funciona
Se não houver nenhum network
bloco de configuração em seu user-data
arquivo, o instalador (subiquidade) vaiuse uma configuração netplan genérica. Mais tarde,subiquidadeirá gerar uma configuração netplan para o sistema instalado e também irá utilizá-la para o ambiente do instalador. Em late-commands
você pode excluir osubiquidadeconfiguração gerada e substitua-a pelo que você quiser. Isso afetará apenas o sistema instalado.
links
Responder2
Eu gostaria de adicionar mais algumas informações para qualquer pessoa que possa ter problemas semelhantes. Minha postagem principal está incorreta em algumas áreas, agora que resolvi meus problemas e sei o que estava errado.
Em primeiro lugar, a resposta de Andrew resolverá o problema questionado na postagem. Mas descobri por que meu cloud-init não estava começando com a ajuda de sua postagem.
Algo nos logs de inicialização da nuvem que eu estava olhando originalmente me levou a pensar que a NIC não poderia ser renomeada com a inicialização da nuvem e é por isso que eu estava tentando renomear a NIC e me deparei com todos esses problemas. Mas isso está errado.
Depois que inicializei o clone com a configuração de Andrew e a NIC foi renomeada, percebi que ele sempre puxava uma configuração de DHCP, mesmo após reinicializações sucessivas. Depois de me aprofundar um pouco mais, percebi que o cloud-init interage com o netplan (é por isso que ele difere de todos os outros sistemas operacionais que listei).
Descobri que isso estava acontecendo com o cloud-init, mostrando que ele interage com o netplan em alguns casos:
Sep 6 00:23:13 ubuntu22 cloud-init[773]: 2022-09-06 00:23:08,634 - util.py[DEBUG]: Writing to /etc/netplan/50-cloud-init.yaml - wb: [644] 695 bytes
Sep 6 00:23:13 ubuntu22 cloud-init[773]: 2022-09-06 00:23:08,636 - subp.py[DEBUG]: Running command ['netplan', 'generate'] with allowed return codes [0] (shell=False, capture=True)
Sep 6 00:23:13 ubuntu22 cloud-init[773]: 2022-09-06 00:23:09,030 - subp.py[DEBUG]: Running command ['udevadm', 'test-builtin', 'net_setup_link', '/sys/class/net/eth0'] with allowed return codes [0] (shell=False, capture=True)
Sep 6 00:23:13 ubuntu22 cloud-init[773]: 2022-09-06 00:23:09,049 - subp.py[DEBUG]: Running command ['udevadm', 'test-builtin', 'net_setup_link', '/sys/class/net/lo'] with allowed return codes [0] (shell=False, capture=True)
Portanto, para permitir que o cloud-init configure corretamente a configuração da rede, acabei precisando remover a configuração interna do netplan do instalador e reinstalar/limpar o cloud-init. Abaixo estão as etapas que utilizo com o ansible para isso:
- name: Run cloud-init clean
ansible.builtin.shell: cloud-init clean
when: ansible_distribution == "Ubuntu"
- name: Remove cloud-init
ansible.builtin.apt:
name: cloud-init
state: absent
when: ansible_distribution == "Ubuntu"
- name: Remove /etc/cloud
ansible.builtin.shell: rm -rf /etc/cloud
when: ansible_distribution == "Ubuntu"
- name: Remove /var/lib/cloud
ansible.builtin.shell: rm -rf /var/lib/cloud
when: ansible_distribution == "Ubuntu"
- name: Reboot the Ubuntu VM
ansible.builtin.reboot:
when: ansible_distribution == "Ubuntu"
- name: Install cloud-init
ansible.builtin.apt:
name: cloud-init
state: latest
when: ansible_distribution == "Ubuntu"
- name: Remove netplan file
ansible.builtin.shell: rm -f /etc/netplan/00-installer-config.yaml
when: ansible_distribution == "Ubuntu"
ignore_errors: yes
E o acima é acompanhado por uma configuração de instalação automática que exclui todo o network:
bloco que pensei que precisava (e assim permitindo que a subiquidade o gerasse).
Responder3
set timeout=10
if loadfont /boot/grub/fonts/font.pf2 ; then
set gfxmode=auto
insmod efi_gop
insmod efi_uga
insmod gfxterm
terminal_output gfxterm
fi
# background_image /boot/grub/image/splash.png
set menu_color_normal=white/black
set menu_color_highlight=black/light-red
menuentry "Install Ubuntu" {
set gfxpayload=keep
linux /casper/vmlinuz ip=dhcp cloud-config-url=/dev/null autoinstall ds="nocloud-net;s=http://xxx.xxx.xxx.xxx/autoinstall/" --- net.ifnames=0 biosdevname=0
initrd /casper/initrd
}
grub_platform
if [ "$grub_platform" = "efi" ]; then
menuentry 'Boot from next volume' {
exit 1
}
menuentry 'UEFI Firmware Settings' {
fwsetup
}
else
menuentry 'Test memory' {
linux16 /boot/memtest86+.bin
}
fi
sua placa Ethernet será nomeada eth0 com "net.ifnames=0 biosdevname=0" no grub de instalação