Preciso escrever um script que construa meu servidor a partir de uma nova instalação do servidor Ubuntu. Entre coisas como Apache e PHP, ele precisa instalar o MySQL. O único problema aqui é que, quando instalo o MySQL com o apt-get, em algum momento a instalação abre uma caixa de diálogo que permite digitar minha senha root. Ou seja, é necessária a interação humana.
Como posso ignorar essa tela durante a instalação e evitar a interação humana enquanto ainda uso o apt-get para instalar o MySQL?
Respostas:
Você precisa preseed o banco de dados debconf. O debconf precisa ser instalado primeiro antes de você tentar isso.
A versão do mysql e do ubuntu pode mudar a linha:
Por exemplo, você precisa disso:
fonte
mysql -u root -p
Embora a FAI e sistemas similares sejam úteis em um ambiente corporativo (e ele deve saber sobre eles), infelizmente eles não são uma panacéia.
Por exemplo, e se ele estiver trabalhando em máquinas remotas, talvez hospedadas, servidores alugados, servidores colocados sem uma rede confiável ou dedicada ou um ambiente em nuvem como o EC2? Nenhum tipo de inicialização via rede PXE funcionará lá. No entanto, Puppet e Chef parecem ser ferramentas de uso geral que podem ajudá-lo.
Você pode obter os valores corretos no banco de dados debconf em um sistema que já foi configurado. Essa técnica permite colocar a coisa toda em um único script de shell. Por exemplo, em /var/cache/debconf/passwords.dat (observe a capacidade de trabalhar com 5.0 no Debian e 5.1 e Ubuntu, entradas extras não prejudicam nada):
Outro método, talvez mais fácil: (reúna respostas do debconf-get-selections ou debconf-show do pacote debconf-utils):
Depois de executar o debconf-set-selections, verifique suas respostas: cat /var/cache/debconf/passwords.dat
E, durante o teste, certifique-se de remover e limpar todos os bancos de dados (especialmente o banco de dados mysql, onde este está armazenado) e corrija o banco de dados de configuração caso eles estejam corrompidos:
Algumas dicas com isso: 1) Você DEVE ter a bandeira vista e a senha _again. 2) Você NÃO deve colocar aspas na senha. Ele irá para uma consulta MySQL sem aspas, então você deve citá-la, se necessário. Isso também significa que não há espaços (eu acho) 3) Se você tiver problemas, faça a pré-configuração manualmente e execute a instalação do MySQL diretamente você mesmo (em um terminal / tty normal) e veja o que o debconf lhe diz. Ele informará avisos e erros lá.
fonte
Se você possui vários servidores que precisa reconstruir, recomendo que você veja algo como Puppet, em vez de escrever um shell script. O Puppet possui uma linguagem descritiva, então você define como deseja que o sistema seja, e não como chegar lá. O tipo de pacote possui uma opção responsefile que permite definir as respostas do debconf na resposta de Steven.
fonte
Posso sugerir também que você automatize o processo de preparação do servidor a partir do ferro bruto?
FAIAtualmente, a possui perfis para instalar a maioria dos principais sistemas baseados em Debian, incluindo o Ubuntu, a partir da rede. É claro que isso é apenas uma extensão da resposta do fantoche, que é uma extensão da resposta do debconf.
A combinação de teste da FAI, em seguida, personalizando com puppet em funções de servidor (onde o puppet usará as ferramentas apropriadas para o seu sistema, como debconf para Debian (-likes) bastante automaticamente)), é bastante popular hoje em dia e não deve ser muito difícil encontrar exemplos que correspondam ao que você deseja fazer de perto.
Um grande benefício adicional de ter um servidor de temporariedade / configuração é que também é um local lógico para manter sua configuração controlada por versão, por exemplo, com git (que tem o benefício de nomear estados do repositório por soma de verificação, para que você esteja seguro contra corrupção, pois desde que você anote as somas de verificação corretas), para um processo realmente limpo e reproduzível.
fonte
Veja também:
/programming/1202347/simple-bash-script-to-install-mysql-need-some-help
fonte