2

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

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

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

4 ответа4

2

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

Посмотрите 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"
    

Есть также несколько примеров пьес.

1

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

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

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

Оба доступны в Debian и Ubuntu.

1

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

http://www.saltstack.com

-2

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

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

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