Como depurar o problema “Selecionar e instalar software” com instalação autônoma do Ubuntu (14.04)

1

Estou usando o Packer para criar uma imagem do VirtualBox para o Ubuntu 14.04. Eu tenho um script Packer aqui , que costumava funcionar, mas por algum motivo ( e várias atualizações do VirtualBox mais tarde) começaram a falhar. A instalação continua ficando presa na etapa "Selecionar e instalar software":

Seeuexecutaroscriptusandoaopção-debug,nãorecebereinenhumainformaçãoútildopróprioPacker:

~/Projects/src/github.com/yunojuno/trifecta/packer(master)$SSH_USERNAME=vagrantSSH_PASSWORD=vagrantpackerbuild-debugtemplate.jsonDebugmodeenabled.Buildswillnotbeparallelized.virtualbox-isooutputwillbeinthiscolor.==>virtualbox-iso:DownloadingorcopyingGuestadditionsvirtualbox-iso:Downloadingorcopying:file:///Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso==>virtualbox-iso:Pausingafterrunofstep'StepDownloadGuestAdditions'.Pressentertocontinue.==>virtualbox-iso:DownloadingorcopyingISOvirtualbox-iso:Downloadingorcopying:http://releases.ubuntu.com/14.04/ubuntu-14.04.3-server-amd64.iso==>virtualbox-iso:Pausingafterrunofstep'StepDownload'.Pressentertocontinue.==>virtualbox-iso:Pausingafterrunofstep'StepOutputDir'.Pressentertocontinue.==>virtualbox-iso:Pausingafterrunofstep'StepCreateFloppy'.Pressentertocontinue.==>virtualbox-iso:StartingHTTPserveronport8532==>virtualbox-iso:Pausingafterrunofstep'StepHTTPServer'.Pressentertocontinue.==>virtualbox-iso:Pausingafterrunofstep'StepSuppressMessages'.Pressentertocontinue.==>virtualbox-iso:Creatingvirtualmachine...==>virtualbox-iso:Pausingafterrunofstep'stepCreateVM'.Pressentertocontinue.==>virtualbox-iso:Creatingharddrive...==>virtualbox-iso:Pausingafterrunofstep'stepCreateDisk'.Pressentertocontinue.==>virtualbox-iso:Pausingafterrunofstep'stepAttachISO'.Pressentertocontinue.==>virtualbox-iso:Pausingafterrunofstep'StepAttachGuestAdditions'.Pressentertocontinue.==>virtualbox-iso:Pausingafterrunofstep'StepAttachFloppy'.Pressentertocontinue.==>virtualbox-iso:CreatingforwardedportmappingforSSH(hostport4141)==>virtualbox-iso:Pausingafterrunofstep'StepForwardSSH'.Pressentertocontinue.==>virtualbox-iso:ExecutingcustomVBoxManagecommands...virtualbox-iso:Executing:modifyvmubuntu1404--memory4096virtualbox-iso:Executing:modifyvmubuntu1404--cpus1==>virtualbox-iso:Pausingafterrunofstep'StepVBoxManage'.Pressentertocontinue.==>virtualbox-iso:Startingthevirtualmachine...==>virtualbox-iso:Waiting10sforboot...==>virtualbox-iso:Pausingafterrunofstep'StepRun'.Pressentertocontinue.==>virtualbox-iso:Typingthebootcommand...==>virtualbox-iso:Pausingafterrunofstep'StepTypeBootCommand'.Pressentertocontinue.==>virtualbox-iso:WaitingforSSHtobecomeavailable...

Oscriptéinterrompidonesseponto,poisainstalaçãoautônomafalhou(vejaacapturadetelaacima).

Ocomandodeinicializaçãoé:

"boot_command": [
    "<esc><esc><enter><wait>",
    "/install/vmlinuz ",
    "noapic ",
    "preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg auto ",
    "locale=en_US ",
    "kbd-chooser/method=us ",
    "keyboard-configuration/modelcode=pc105 ",
    "keyboard-configuration/layout=US ",
    "keyboard-configuration/variant=US ",
    "hostname={{ .Name }} ",
    "fb=false ",
    "debconf/frontend=noninteractive ",
    "console-setup/ask_detect=false ",
    "initrd=/install/initrd.gz -- ",
    "<enter>"
],

Eu não sei o suficiente sobre as instalações do Linux para depurar isso - como eu sei o que está realmente falhando e corrigi-lo?

    
por Hugo Rodger-Brown 10.03.2016 / 16:19

2 respostas

2

Eu não vejo qualquer motivo para esse problema com o modelo de empacotador e presei que você está nesse repositório do Github atualmente.

Consigo criar esse modelo e instalar o Linux.

Onde você deve procurar é o pkgsel linhas preseed, desde que você não está em um modo de instalação interativa quando você pede ao instalador para instalar um pacote que não existe (nos repositórios configurados) ele erros no como você está vendo.

O recurso preseed é super poderoso, basicamente você pode fazer qualquer coisa para uma instalação. Pode ser bastante opaco para depurar, mas com o Packer também estamos caindo em um provisioner quando a instalação estiver concluída.

Nesse caso, são scripts de shell, link

Eu recomendaria manter o preseed super basic e fazer a personalização no seu provisionador, criar um novo shell script para adicionar novos pacotes, fazer a outra personalização que você quiser na imagem - até mesmo remover coisas que foram instaladas pelo preseed.

Quando estiver no estágio de provisionamento, você pode usar a opção -debug no Packer para realmente depurar de maneira mais tangível - já que os provedores são scripts de shell sendo executados em uma conexão ssh na VM instalada em funcionamento se Se você se deparar com um problema, também poderá se conectar a esse ssh ou por meio da GUI do Virtualbox e depurar o computador em execução antes de limpá-lo.

O projeto Bento tem excelentes modelos Packer que você gostaria de usar como referência - link e link - eles criaram e mantiveram o Chef mas o Chef Na verdade, eles não são instalados, são basicamente uma caixa de baunilha.

Basicamente - atualmente um dos nomes dos seus pacotes no preseed é falso.

Espero que isso ajude!

Editar:

Eu achei que seria útil definir alguns termos:

Packer Software HashiCorp que automatiza a construção de imagens. O fluxo de trabalho básico é Builder - > Provisioner - > Post Process

  • Construtor : para as diferentes plataformas de virtualização, por ex. Virtualbox, Vmware, AWS EC2, Oceano Digital, etc. Cada um tem um formato de imagem diferente, portanto, precisamos criar uma imagem para cada um.
    Os construtores normalmente usam o sistema operacional que está sendo instalado em ferramentas de automação desacompanhadas para fornecer uma imagem. base consistente a ser provisionada por exemplo Debian / Ubuntu preseed, RHEL / Centos Kickstart etc.

  • Provisionador : Shell, Ansible, Chef, Sal, Puppet etc. Estes são executados em todas as imagens básicas instaladas e são projetados para configuração, instalação de software, etc.

  • Pós-processadores : Vagrant, Atlas, Amazon etc. Prepare sua imagem para seus destinos de implantação.

(Há mais algumas etapas de fluxo de trabalho opcionais no Packer, mas essas são as noções básicas.)

    
por 17.03.2016 / 08:56
0

Além da ótima resposta de @rjocoleman, há uma maneira de acessar / var / log / syslog a partir do instalador em execução. Você pode extraí-lo usando "Salvar registros de depuração" no menu principal. Isso ajuda a depurar a parte Builder do fluxo de trabalho quando absolutamente necessário.

    
por 08.08.2016 / 18:05