Знайомтеся - salt

Нібито вступ ...

При запуску одного великого проекту зіткнувся з необхідністю проводити монотонні операції на великій кількості серверів. Банально - створити облікові записи всіх програмістів на всіх серверах. Інша справа - збирати дані одноразово, не вдаючись до налаштування будь-яких систем моніторингу.

Насправді, все придумано до нас - для цього існують системи управління конфігурацією. До них відносяться - Puppet, chef, CFEngine і Salt.

Дана утиліта проста в налаштуванні, установці і написана на моєму улюбленому Python.

Salt є клієнт-серверної системою, конфігурація описується в файлах конфігурації, зберігається на сервері і виконується на клієнтах, в залежності від параметрів запуску.

Як ви вже зрозуміли, Salt складається з двох складових:

- salt-master - це, власне, серверний додаток;

- salt-minion - клієнт (міньйон, як в мультику «Гидке я»).

Знайомтеся - salt

Ось такі у нас працівники)

Показую на CentOS, так як наш проект базується на «капелюшних системах».

На сервер, який буде служити майстром, встановлюємо майстер і міньйон (ми ж хочемо вносити зміни і на сам сервер теж ?!) 🙂

На інші ставимо тільки міньйонів:

Готово! Тепер потрібно вказати Міньйон, хто їх майстер.

Чуть-чуть настройки ...

Для цього потрібно відредагувати файл конфігурації міньйон:

Знайомтеся - salt

Так само ми можемо поміняти ім'я нашого міньйон, це дуже допоможе нам в майбутньому. Особисто я привласнюю їм імена в залежності від функціоналу. При цьому не забуваю перезапустити демона.

Попередньо змінивши конфігурацію міньйон, запускаємо і майстри, і міньйон на самому сервері майстра.

Для зв'язку між майстром і клієнтом необхідно відкрити порти 4505 і 4506.

Знайомтеся - salt

Назви мене, по імені ...

Підключаємо і балуемся

Для роботи залишилося тільки підключити міньйонів до майстра, а-ля - «зареєструвати».

Дивимося, хто хоче з нами працювати, для цього використовуємо утиліту salt-key:

Бачимо двох бажаючих: власне, міньйон на майстра, і міньйон на вебсервере1.

Залишилося додати їх. Можна додавати по одному (параметр -a <имя миньона> ), А можна все відразу (параметр -A):

Готово! Зараз ми можемо управляти цими двома серверами.

Що ми тепер можемо? Давайте виконаємо якусь команду на обох серверах.

Наприклад, скільки часу, містер міньйон?

Синтаксис дуже простий - salt <имя миньона(ов)> команда параметр.

Якщо ми хочемо виконати на всіх серверах - вказуємо просто «зірочку», інакше ім'я, або регулярний вираз (наприклад, якщо є два міньйон з іменами web-1 і web-2, то можна вказати так - «web *»)

Далі вказується команда, в даному випадку - cmd.run. яка дозволяє виконати команди віддалено.

Ну і сам параметр команди.

Нижче буде висновок виконання команди на сервері.

Просто, чи не так?

Знайомтеся - salt

Не життя, а казка =)

Схожі статті