Управление несколькими серверами Linux одновременно

у меня есть небольшой кластер, состоящий из нескольких узлов Linux. Есть общий NFS, и у меня есть та же учетная запись Пользователя с общими ключами SSH на всех узлах, но кроме этого каждый узел имеет свою собственную файловую систему и конфигурацию.

Я хочу иметь возможность контролировать конфигурацию всех узлов из центрального узла. Типичная конфигурация состоит в основном из конфигурационных файлов, как в пользовательском каталоге, так и в /etc или /opt. Иногда мне также нужно установить одни и те же пакеты на всех узлы или выполнить другие команды оболочки.

это небольшой кластер, который вряд ли оправдывает системы автоматизации корпоративного уровня или другие сложные установки. Есть ли другой способ, который вы пробовали и тестировали, предпочтительно легкий и с открытым исходным кодом? Или даже на основе bash / SSH хаки напрямую? Благодаря.

18
задан Little Bobby Tables
02.01.2023 1:55 Количество просмотров материала 2882
Распечатать страницу

4 ответа

Ansible должен сделать трюк, если вы контролируете их из Linux или Mac OS X с homebrew. Windows не поддерживается для управления машиной. Узлы Linux должны иметь SSH и Python, но поскольку большинство дистрибутивов Linux устанавливают Python по умолчанию, вы, вероятно, уже охвачены. Все, что вам нужно сделать, это установить ansible на мастере, который должен быть легким.

смотреть 23 минуты быстрый запуск видео получить лучшую идею. Я также рекомендую взглянуть на Введение В Специальные Команды раздел из документации:

  • выполнить команду на всех серверах в группе, в этом случае, Атланта, в 10 параллельных вилки:

    $ ansible atlanta -a "/sbin/reboot" -f 10
    
  • убедитесь, что пакет установлен, но не обновляйте его:

    $ ansible webservers -m yum -a "name=acme state=installed"
    
  • перенести файл сразу к много различное сервера:

    $ ansible atlanta -m copy -a "src=/etc/hosts dest=/tmp/hosts"
    
  • убедитесь, что служба запущена на всех серверах:

    $ ansible webservers -m service -a "name=httpd state=started"
    

есть также некоторые примеры playbooks.

2
отвечен Cristian Ciupitu 2023-01-03 09:43

Я настоятельно рекомендую Saltstack. Это гибкий, масштабируемый, легкий и бесплатный.

http://www.saltstack.com

1
отвечен user1259504 2023-01-03 12:00

для запуска команд вы можете использовать инструмент, который может запускать команды на нескольких серверах SSH

вот некоторые из них:

  1. pssh
  2. кластер SSH

Как в Debian и Ubuntu.

1
отвечен Grzegorz Żur 2023-01-03 14:17

Try ожидал скрипты. Это отличный способ автоматизировать выполнение одних и тех же задач на нескольких машинах.

с помощью скриптов expect вам не придется вручную входить на каждую машину и выполнять одну и ту же задачу снова и снова. Я использую для таких вещей, как изменение паролей пользователя на всех машинах, запуск сценариев проверки на каждой машине и т. д.

-2
отвечен user3307862 2023-01-03 16:34

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх