preseed / late_command servidor ubuntu 15.04

1

Estou tendo problemas com o comando preseed / late_command no ubuntu 15.04 amd64 server install (instalação da linha cmd)

d-i preseed/late_command string in-target wget http://url

retorna com o código de saída 1 e o arquivo não está presente no sistema de arquivos. O comando a seguir também falha (faça um script para baixar este arquivo depois):

d-i preseed/late_command string echo "wget http://url"> /target/home/username/getscript.sh

E esse (como teste) também está falhando:

d-i preseed/late_command string apt-get install -y htop

Alguma idéia?

Obrigado antecipadamente!

Tim

    
por Tim 30.08.2015 / 11:20

2 respostas

1

Meu palpite é que o URL que você está tentando recuperar está sendo redirecionado para https: // e pelo menos um dos certs na cadeia não é confiável no ambiente de instalação. O ambiente de instalação é diferente do ambiente de destino; o ambiente de instalação é o kernel temporário e o initrd para o qual você aponta durante a inicialização, e o ambiente de destino é aquele kernel e sistemas de arquivos que realmente são instalados.

No ponto em que a preseed / late_command é executada, o ambiente de destino é montado em / mnt / target e para executar comandos lá, você precisará fazer o chroot via chroot /mnt/target . Depois disso, todos os comandos executados afetarão o ambiente de destino, não o ambiente de instalação. Agora, o kicker é que o debconf fornece o comando in-target , que executa um chroot para o alvo, executa o comando fornecido e, em seguida, retorna para o ambiente de instalação. Assim:

d-i preseed/late_command string apt-get install -y htop

tenta instalar o htop no ambiente de instalação (não no ambiente de destino "Concluído"), enquanto:

d-i preseed/late_command string in-target apt-get install -y htop

tenta instalar o htop no ambiente de destino finalizado.

Portanto, agora que estamos instalando no lugar certo, também pode ser que o certificado ainda não seja confiável. Nesse caso, você pode corrigir o problema de confiança com mais alguns comandos in-target e, em seguida, fazer o wget ou coloque cuidado ao final e desative a verificação de confiança do wget com algo parecido com isto:

d-i preseed/late_command string in-target wget -O /tmp/post-install.sh "https://foo.bar/postinstall.sh" --no-check-certificate; in-target chmod +x /tmp/post-install.sh; in-target /bin/bash /tmp/post-install.sh;
    
por ZachP 18.09.2015 / 15:41
1

No Ubuntu 16.04 eu tive um problema semelhante e descobri após a investigação que o wget não estava instalado, então eu adicionei-o ao template preseed

d-i pkgsel/include string ... wget
    
por LutzB 25.07.2016 / 15:59