Automatizando a instalação de pacotes individuais do Debian 8 com prompts interativos

2

Estou procurando automatizar algumas instalações de pacotes via script bash; eles serão instalados em um sistema de arquivos chroot pré-existente. Alguns dos pacotes, no entanto, envolvem entradas interativas do usuário (por exemplo, o ddclient pede para selecionar um provedor de serviços de DNS dinâmico), o qual eu não consegui automatizar tão facilmente.

A pré-configuração do debconf parece ser a maneira mais comum de automatizar instalações de pacotes interativos, mas todos os exemplos que eu li implicam que é para uma instalação inteira da Debian, ao invés de apenas pacotes individuais.

Estou acompanhando este Como automatizar instalações de pacotes Debian interativos , mas isso não explica realmente os detalhes.

Obrigado antecipadamente!

    
por kapkong 14.06.2018 / 21:17

1 resposta

3

Além de usar uma ferramenta de gerenciamento de configuração e implantação “correta” como Ansible ou Salt, debconf de pré-configuração pode ser perfeitamente suficiente para pré-configurar pacotes Debian. Não é de todo limitado a instalações completas; pode ser aplicado a qualquer número de pacotes.

A maneira mais simples de começar é configurando manualmente os pacotes que você deseja instalar, instalando o pacote e respondendo às perguntas. Em seguida, execute debconf-get-selections (do pacote debconf-utils ); listará todas as configurações armazenadas, incluindo aquelas dos pacotes que você acabou de instalar, juntamente com o texto da pergunta nos comentários - para que você possa encontrar facilmente as perguntas que deseja fazer o preseed. O formato é

<package> <debconf key> <type> <value>

Por exemplo

# System's default paper size:
# Choices: letter, a4, note, legal, executive, halfletter, halfexecutive, 11x17, statement, folio, quarto, 10x14, ledger, tabloid, a0, a1, a2, a3, a5, a6, a7, a8, a9, a10, b0, b1, b2, b3, b4, b5, c5, DL, Comm10, Monarch, archE, archD, archC, archB, archA, flsa, flse, csheet, dsheet, esheet
libpaper1       libpaper/defaultpaper   select  a4

Armazene as configurações que você deseja pré-configurar em um arquivo e, em seguida, execute debconf-set-selections (no pacote debconf ) no sistema de destino, com o arquivo disponível localmente e nomeado como o primeiro argumento ou seu conteúdo canalizado:

cat preseed-file | ssh remotehost debconf-set-selections

Faça isso instalando os pacotes no sistema de destino.

    
por 14.06.2018 / 21:37