Eu usaria fantoche, perfeito para adicionar arquivos, chaves ou configurações para várias máquinas. link
Estou tentando criar um servidor de backup para centenas (500+) de servidores em nuvem que usam iptables que limitam as conexões ssh apenas aos IPs de nossas empresas.
Todos os backups iriam para um "servidor" da nuvem central, os hosts estão localizados em diferentes regiões ou datacenters e a execução de scp
ou ssh_copy_id
ou similar, fazendo login em cada um deles seria um pesadelo tedioso.
Posso exportar a chave e usá-la em um "script de tipo de instalação" de um servidor local para todos os servidores que copiariam o id ssh para login sem senha e instalar o script cron + para os backups automatizados?
Eu usaria fantoche, perfeito para adicionar arquivos, chaves ou configurações para várias máquinas. link
Os comandos parallel-scp e parallel-ssh do pacote pssh também podem ser uma solução mais simples. Você simplesmente mantém o IP do host em um arquivo para passar como parâmetros do host. A primeira vez que scp paralelo irá copiar a chave pública para ~ / .ssh / authorized_keys em cada servidor e em execuções subseqüentes, você pode acessar os servidores através de ssh-paralela.
Descobri que a maneira mais fácil de usar é um script com sshpass e um usuário limitado como uma solução temporária, enquanto avaliamos uma solução de "implantação automática". Script está abaixo Obrigado e Boas Festas
#!/bin/bash
now=$(date +"%Y-%m-%d")
PATH=/usr/sbin:/sbin:/usr/bin:/bin
ServerIP='ifconfig | grep -A1 "Link encap:Ethernet" | grep -v "Link encap:Ethernet" | cut -d":" -f2 | cut -d" " -f1 | egrep '([1-2]?[0-9]{0,2}\.){3,3}[1-2]?[0-9]{0,2}''
echo "ServerIP is:$ServerIP" > /dev/null
if ! rpm -qa | grep -qw sshpass; then
yum -y install sshpass rsync
elif [ ! -d "/tmp/backup" ] ; then
mkdir -p /tmp/backup && chmod -R 777 /tmp/backup
else
cp -u /etc/sysconfig/iptables /tmp/backup
cp -Ru /var/..../custom/ /tmp/backup
cp -Ru /var/..../somestuff/ /tmp/backup
mysql -uroot -pmysqlpassword < /root/backup.sql
fi
zip -r /tmp/backup/'hostname'_"$ServerIP"_"$now"_Backup.zip /tmp/backup/
rsync -avzh -e "sshpass -p verylongpassword ssh" /tmp/backup/*Backup.zip user@ServerIP:/backups/
rm /tmp/backup/*