A instalação remota do mysql ficou presa

1

Eu escrevi um script para instalar alguns conjuntos de pacotes em uma lista de servidores. Quando eu executo o script, a instalação do mysql ficou presa na seção "digite a senha de root". Existe alguma coisa que eu preciso modificar no meu script? Conselhos-me.

Existe alguma maneira de passar a senha do mysql root através do próprio script?

#!/usr/bin/env bash
Servers_list=/opt/servers_list
for Host in $(< $Servers_list )
do
echo "Installing package on $Host"
#ssh "${Host}" apt-get -y install "${PackageName}"
ssh "${Host}" apt-get update $$ apt-get -y install apache2 apache2-doc apache2-utils mysql-server
done

    
por surendar 28.07.2017 / 01:15

1 resposta

2

Tente isto:

#!/usr/bin/env bash
Servers_list=/opt/servers_list
for Host in $(< $Servers_list )
do
  echo "Installing package on $Host"
  ssh "${Host}" "echo 'mysql-server-5.7 mysql-server/root_password password your_password' | debconf-set-selections && \  
    echo 'mysql-server-5.7 mysql-server/root_password_again password your_password' | debconf-set-selections && \  
    apt-get update && \  
    apt-get -y install apache2 apache2-doc apache2-utils mysql-server"
done

Se você tem muito servidor, considere usar uma ferramenta como ansible ou fantoche.

Editar:

  • Barra invertida (\) são usadas para legibilidade. Eles permitem continuar o comando em uma próxima linha.
  • O operador
  • AND (& amp; & amp;) é usado para executar muitos comandos na mesma linha. Se um falhar, o próximo não será executado.
  • debconf-set-selections é usado para predefinir as configurações. Neste caso: senha. Você pode encontrar mais informações dentro da página man, digitando: man debconf-set-selections dentro do terminal.
por Mat'arangéÇa 28.07.2017 / 05:11