Receita do Chef para instalação interativa

1

Sou novo no chef e estou tentando configurar uma VM do Ubuntu para testes, instalando nosso produto automaticamente. Eu posso baixar o .tgz, extraí-lo e executar o instalador usando um recurso bash.

Eu o problema que eu encontrei é que o nosso script de instalação impõe uma verificação EULA para a instalação da linha de comando. Tem algo semelhante ao seguinte em um script de shell:

# various statements and input to expect from stdin
echo "You must accept our EULA to install the software"

read ENTER
more EULA.txt

echo "Do you accept the EULA?"
# additional input expected from stdin

Eu posso adicionar facilmente a entrada esperada do padrão usando um arquivo de resposta e começar a instalação com ./install.sh < response.txt , mas isso para de funcionar quando more for executado. O comando more não vê a entrada do arquivo de resposta e ainda espera que um 'q' saia do comando antes de aceitar o eula.

Qual é a maneira correta de executar tal instalação automaticamente usando o chef? Além de simplesmente reescrever o script install.sh para ignorar a linha EULA.

    
por Jay Lindquist 29.03.2014 / 03:49

1 resposta

1

Também redirecione a saída para algum lugar. more simplesmente exibirá o arquivo inteiro sem pausar e, em seguida, sairá se a saída padrão não for um terminal.

Por exemplo:

 ./install.sh < response.txt | cat

Embora você realmente deva usar algo como expect para cenários como este.

    
por 29.03.2014 / 03:52

Tags