3

Я пытаюсь создать резервный сервер для сотен (более 500) облачных серверов, которые используют iptables, ограничивающие ssh-соединения только IP-адресами наших компаний.

Все резервные копии будут отправляться на один центральный облачный "сервер", хосты расположены в разных регионах или центрах обработки данных, и запуск scp или ssh_copy_id или аналогичного, вход в каждый из которых будет утомительным кошмаром.

Могу ли я экспортировать ключ и использовать его в "сценарии типа установки" с локального сервера на все серверы, которые затем скопируют идентификатор ssh для входа без пароля и установят сценарий cron + для автоматического резервного копирования?

3 ответа3

1

Я хотел бы использовать кукольный, идеально подходит для добавления файлов, ключей или настроек на несколько машин. https://puppet.com/solutions/cloud-management

0

Параллельные команды scp и parallel-ssh из пакета pssh также могут быть более простым решением. Вы просто храните IP-адреса хоста в файле для передачи в качестве параметров хоста. В первый раз Parallels-scp скопирует открытый ключ в ~/.ssh/authorized_keys на каждом сервере, и в последующих запусках вы сможете получить доступ к серверам через Parallels-SSH.

0

Я обнаружил, что самый простой способ - это сценарий с sshpass и ограниченным пользователем в качестве временного решения, в то время как мы оцениваем решение "автоматического развертывания". Сценарий ниже Спасибо и Счастливых праздников

#!/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/*

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .