Estou trabalhando com duas instâncias do ubuntu na AWS (que eu uso uma chave pem para acessá-las).
Eu configurei o rsync para ambas as instâncias e ele funciona se eu usar o usuário padrão, que é ubuntu @ ipaddress. No entanto, se eu tentar usar o rsync com outro usuário (estou digitando sudo su - jenkins
, por exemplo, ou mesmo digitando sudo
antes do comando rsync), obtenho o seguinte erro.
Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.0]
Passos que tomei:
Eu tentei criar uma chave ssh (usando ssh-keygen) enquanto estava logado como jenkins
e adicionei isso ao arquivo authorized_keys
em /home/ubuntu/.ssh/authorized_keys
(de onde eu estava rodando o rsync) e até mesmo $JENKINS_HOME/.ssh/authorized_keys
(onde eu tentei executar o rsync de lá também).
Eu até tentei usar a tecla pem para fazer a mesma coisa e isso também não funcionou.
Veja o que estou tentando executar
rsync -avuh --delete -e ssh jenkins@ipaddress:/var/lib/jenkins/* /var/lib/jenkins
E aqui está o arquivo de chave
rsync -avuh --delete -e 'ssh -i path/to/key.pem' [email protected]:/var/lib/jenkins/* /var/lib/jenkins
P.S .: A única razão pela qual eu não quero executá-lo com o usuário do Ubuntu é porque eu recebo failed: Permission denied (13)
em muitas coisas (já que os arquivos são de propriedade de Jenkins).
meta final:
Estou tentando manter backup da instância do backup do jenkins constantemente com a instância primária, fazendo um cronjob:
*/30 * * * * /usr/bin/rsync -avuh --delete -e ssh root@jenkinsprimary:/var/lib/jenkins/* /var/lib/jenkins