LINUX.ORG.RU
ФорумAdmin

ssh: как решать разовые задачи при использовании 5-10 серверов?

 


0

1

Приветствую. Имею в работе 5-10 серверов на linux. Переодический приходится между ними пересылать какие-то файлы. Для этого приходится открывать между ними доступ по ssh-key. Иногда приходится открывать еще доступ в фаерволле. Далее, еще приходится вспоминать и в ручную вводить IP нужного сервера при передаче данных по scp.

Вопрос: как все это можно упростить? Чтобы пересыл данных в разовых задачах между серверами перестал грузить мозг множеством действий. Спасибо.



Последнее исправление: tokyoh (всего исправлений: 1)

Ответ на: комментарий от thesis

открытый ключ каждой машины раскидать в каждую другую в .ssh/authorized_keys.

копировать
rsync -a /path/to/file.ext user@name_machine:/path/to/file.ext
ну и доступы настроить для user
резолвинг name_machine в адрес, коль не работает dns, прописать каждой машине в /etc/hosts.
это если без замудрений.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)

Ну, идея такова: сделать такой файловый сервер, чтобы был доступен всём серверам и на нем сперва шарить файлы, а потом с него их качать, по вашему «тз» Проще не придумаешь

IvanRia
()

Использовать средства автоматизации
chef, puppet, ansible

Если серверов всего 5-10, а 11-му не бывать, то можно ограничиться костылированием скриптов.

приходится открывать между ними доступ по ssh-key

А ты его не закрывай, тогда не придется его потом открывать.

приходится открывать еще доступ в фаерволле

См предыдущий пункт

приходится вспоминать и в ручную вводить IP

Для решения этой проблемы 39 лет назад придумали технологию «DNS».

slowpony ★★★★★
()

открывать между ними доступ по ssh-key.

Я надеюсь ты, открывая такой доступ, порезал ему права до минимально необходимых? То есть - доступ только к sftp и только с chroot-ом в специальную шаринговую директорию?

firkax ★★★★★
()
  1. Перекидываешь на все серваки свой ssh-key
  2. В /etc/hosts прописываешь удобочитаемые имена, получится вот так 1.2.3.4 govno-srv1 1.2.3.5 backup-srv2 … чтобы потом можно было адресовать серваки по именам, а не по IP
  3. Пишешь bash скрипт с rclone или scp
  4. ????
  5. PROFIT
JhonatanSore
()

Если это задачи выполняемые вручную то варианты решений:
1. Гонять файлики через свою машинку. Но этот вариант не всегда подходит.
2. Заскриптовать перечисленный вами набор действий и тогда не надо будет ломать голову вспоминая что либо кроме места расположения скриптов

anc ★★★★★
()

Освой настройку ~/.ssh/config, справка в man ssh_config.

Типа ты пишешь там что-то типа:

Host my_custom_name
    HostName 192.0.2.1
    User theHat
    IdentityFile ~/.ssh/custom_name_key
    Port 666

Host another_host
    HostName 192.0.2.2
    User toky
    IdentityFile ~/.ssh/another_key

После чего делаешь просто ssh my_custom_name или scp file.txt another_host:. и всё. Утилиты сами подтянут всё, что выше.

Разумеется, надо сначала ключей нагенерить и раскидать, но один раз настроил и пользуешься (в принципе, можно ключи не указывать, по паролям тоже работает, если ты их помнишь). Заодно через этот файл можно учесть особенности хостов, например, указать необходимость подключения к древнему свичу с deprecated протоколами шифрования.

agentgoblin
()
Последнее исправление: agentgoblin (всего исправлений: 1)

Не до конца понятно, чего именно ты хочешь. Если ты хочешь просто, использовать свой ssh-ключ на других серверах, то логинься с на него через

ssh -A host

и дальше можешь делать scp на любой сервер, где твой публичный ключ прописан

Если тебе надо один и тот же файл на все хосты закинуть, то

ansible -m "copy" ...

Если тебе нужен сервер, на который, ты будешь складывать файлы для разных машин, то minio как сервер и rclone на каждом хосте для синхронизации каталогов

adn ★★★★
()