Eu escrevi uma pergunta em Falha do servidor, mas acho que é mais aplicável a essa comunidade.
Estou escrevendo um script destinado a configurar inicialmente minha gota. No script, estou abrindo a conexão SSH com meu servidor Ubuntu 14.04 da seguinte forma (com USER
e REMOTE
variáveis definidas anteriormente):
ssh -t -t $USER@$REMOTE <<'ENDSSH'
ENDSSH
Dentro dessa conexão SSH, eu tenho vários comandos que eu quero executar - instalando o Node.js, atualizando o npm, instalando o MongoDB e assim por diante.
Mas, quando eu faço o comando apt-get install
, outros comandos não são executados.
Então, se eu tiver isso:
ssh -t -t $USER@$REMOTE <<'ENDSSH'
sudo apt-get update
sudo apt-get install -y nodejs
sudo apt-get install -y npm
ENDSSH
O comando sudo apt-get install -y npm
não será executado. Agora, eu sei que posso instalar vários pacotes dentro do mesmo comando apt-get install
, mas isso não é o que eu estou perguntando, já que outros comandos depois não serão executados. Este exemplo eu acabei de escrever por simplicidade para poder explicar meu problema. Concretamente, eu tenho estes comandos:
ssh -tt $USER@$REMOTE <<'ENDSSH'
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install -g npm
ENDSSH
Comando sudo npm install -g npm
e tudo que o segue nunca é executado.
Eu encontrei perguntas como este onde eles dizem que eu deveria colocar vários -t
flags (ou -tt
) ao abrir ssh
connection, o que estou fazendo, mas isso não ajuda.
O que estou fazendo de errado?