SaltStack - це потужна, гнучка і високопродуктивна система управління конфігураціями і віддаленого виконання операцій. За допомогою цього зручного інструменту можна централізовано керувати інфраструктурою, витрачаючи при цьому мінімум зусиль. Якщо ви хочете дізнатися про інших термінах і інструментах, пов'язаних з SaltStack, ознайомтеся з цим керівництвом.
У цій статті буде зроблений акцент на центральну службу Salt Master ( «майстер»), яка забезпечує можливість управляти інфраструктурою. Тут також буде показано як встановити демон Salt Minion ( «ставленик», «наближений», «міньйон») на інші комп'ютери, щоб згодом керувати ними за допомогою центральної служби Salt Master. Щоб продемонструвати ці кроки нам знадобляться 2 сервера Ubuntu 14.04.
Демон Salt Minion можна встановить на Ubuntu 14.04 декількома способами. Нижче перераховані плюси і мінуси кожного способу:
• UbuntuSaltStack PPA. Використовує рідної менеджер пакетів Ubuntu, який потрібен для встановлення та оновлення необхідного програмного забезпечення. Це найпростіший спосіб установки, але, пакети можуть бути застарілими.
• Salt-Bootstrap: Це скрипт самонастроювання, який намагається забезпечити більш універсальний метод для установки і настройки Salt. Він може спробувати встановити власні програмні засоби, але якщо вони недоступні, то він буде встановлювати їх з PPA. Цей спосіб надає доступ до версій Salt, які в даний момент знаходяться в розробці.
Нижче коротко описаний спосіб установки з Ubuntu PPA. Також будуть надані інструкції як використовувати другий спосіб: c допомогою salt-bootstrap будуть встановлена як розробляється, так і стабільна версії Salt Master.
У підсумку ви самі повинні вирішити який метод вам подобається більше.
Установка з Ubuntu PPA є найбільш простим способом установки.
Щоб почати роботу, ви повинні додати репозиторій SaltStack PPA на сервері, який будете використовувати в якості master (майстра). Ви можете зробити це. набравши:
saltmaster $ sudo add-apt-repository ppa: saltstack / salt
Після того, як ви підтвердили додавання PPA, він буде доданий в систему. Після того, як ви додали потрібний репозиторій, то потрібно обов'язково оновити список пакетів. Для цього вводимо наступну команду:
saltmaster $ sudo apt-get update
Після цього ви можете встановити відповідне програмне забезпечення:
saltmaster $ sudo apt-get install saltmaster salt-minion salt-ssh salt-cloud salt-doc
У наведеній вище команді. ми встановили як Salt Master ( «майстер»), так і Salt Minion. Це дозволить нам контролювати наш головний сервер з Salt. Ми також встановили salt-ssh і salt-cloud. які дадуть нам більше можливостей в тому, як ми єднаємося з ресурсами і управляємо ними. Також ми отримали пакет документації.
Отже, з установкою покінчено і можна перейти до розділу початкової конфігурації майстра, щоб отримати нові послуги і почати працювати.
Альтернатива використання PPA - це установка стабільної версії за допомогою salt-bootstra p. Даний сценарій доступний на офіційному сайті SaltStack. Одна з причин, по якій варто вибрати цей метод. є те, що він захоплює залежності з менеджера пакетів pip. Це дозволить вам отримати більш сучасні версії деяких залежностей Salt.
Щоб приступити до роботи. перейдіть в свій домашній каталог або туди, де у вас є права на запис. Ми можемо використовувати curl. щоб завантажити скрипт salt-bootstrap. Ми будемо слідувати інструкціям, наведеним на GitHub сторінці salt-bootstrap:
На даній стадії, подивіться на сценарій, щоб переконатися, що не зробили нічого зайвого:
Скрипт початкового завантаження Salt підтримується командою SaltStack. але ви завжди повинні перевіряти вміст зовнішніх скриптів перед їх запуском.
Коли ви переконаєтеся, що все перевірили, запустіть скрипт за допомогою команди sh. Ми будемо використовувати прапор -P, щоб скрипт міг використовувати pip як джерело залежностей. Без цього прапора, установка, швидше за все, не вдасться. Нам також необхідно включити прапор -M. щоб встановлений майстер-демон Salt. Всі допоміжні утиліти Salt будуть автоматично включені.
Повна команда буде виглядати так:
saltmaster $ sudo sh install_salt.sh -P -M
Ми можемо також використовувати з крипт початкового завантаження Salt. щоб встановити розроблювану версію Salt за допомогою Git. Це потрібно вам, якщо ви хочете отримати доступ до новітніх функцій і більшій кількості виправлених багів, які можуть бути не доступні в PPA.
Сценарій потрібен такий же як скрипт початкового завантаження Salt. який ми використовували вище. Тільки параметри. які ми використовуємо буде відрізнятися. Е слі у вас немає сценарію. завантажте його в свій домашній каталог:
Знову ж, погляньте на сценарій, щоб переконатися, що все в порядку з операціями, які він буде виконувати:
saltmaster $ sudo sh install_salt.sh -P -M git develop
Далі нам потрібно налаштувати майстер Salt.
Створення структури каталогів Salt
По-перше, ми створимо структуру каталогів для управління конфігурацією. де майстер буде шукати різні файли. За замовчуванням, основним каталогом буде / srv. Також потрібно створити каталоги / srv / salt і / srv / pillar:
saltmaster $ sudo nano / etc / salt / master
Перше що ми зробимо - це встановимо словник file_roots. Він потрібен для того, щоб Salt знала де шукати інструкції з управління конфігурацією. База визначає середовища за замовчуванням. Каталоги, які ми створили раніше будуть використовуватися саме для цієї мети. Каталог / srv / salt буде використовуватися для отримання інструкцій адміністратора, а каталог / srv / formulas для розфасованих конфігурацій, що завантажуються з зовнішніх джерел:
file_roots:
base:
- / srv / salt
- / srv / formulas
Далі, ми створимо кореневої каталог для основної конфігурації Salt:
pillar_roots:
base:
- / srv / pillar
Це все що нам необхідно налаштувати в даний момент. Збережіть і закрийте файл, коли ви закінчите.
Ми також встановили демон Salt Minion, тому повинні зробити його частиною нашої інфраструктури. Відкрийте конфігурацію Salt minion привілеями Sudo.
saltmaster $ sudo nano / etc / salt / minion
Єдина зміна, яку нам потрібно зробити, це вказати майстру, що саме цей minion повинен підключитися. В цьому випадку minion повинен підключитися до головного процесу, виконуваного на тій же машині. Встановіть майстер-ключ, 127.0.0.1 для того, щоб minion зміг правильно підключитися:
Збережіть і закрийте файл, коли ви закінчите.
Тепер нам потрібно перезапустити як Salt Master, так і minion. щоб використовувати наші нові конфігурації.
saltmaster $ sudo restart saltmaster
saltmaster $ sudo restart salt-minion
Після перезавантаження. демон Salt Minion автоматично зв'язався з майстром Salt і його обліковими даними. Як адміністратор, ви повинні перевірити і прийняти ключ minion. щоб дозволити обмін даними.
Почнемо з перерахування всіх ключів, які для майстер Salt мають знання:
saltmaster $ sudo salt-key -list all
Ви повинні побачити щось на зразок цього:
Output
Accepted Keys:
Denied Keys:
Unaccepted Keys:
saltmaster
Rejected Keys:
Як ви бачите. minion Salt направила свій ключ до майстра, але він ще не був прийнятий. З метою безпеки, перш ніж прийняти ключ, потрібно запускати дві команди.
Нам потрібно переконатися, що все йде за планом:
saltmaster $ sudo salt-call key.finger -local
Output
local:
24: c8: 77: 1d: ed: 10: d7: b0: 3e: bc: bc: ed: 41: e1: 5a: d1
Підставте ID minion сюди:
saltmaster $ sudo salt-key -f saltmaster
Output
Unaccepted Keys:
saltmaster: 24: c8: 77: 1d: ed: 10: d7: b0: 3e: bc: bc: ed: 41: e1: 5a: d1
Після того, як ви переконаєтеся, що ці значення однакові, ви можете прийняти ключ, набравши:
saltmaster $ sudo salt-key -f saltmaster
Після прийняття ключа, ви можете побачити, що ключ був переміщений в розділ "Прийняті ключі":
saltmaster $ sudo salt-key -list all
Output
Accepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
Rejected Keys:
Тепер ви можете перевірити, що Salt master і minion процеси "спілкуються":
saltmaster $ sudo salt '*' test.ping
Ви повинні отримати повідомлення, в якому зазначено, що перевірка пройшла успішно:
Output
saltmaster:
True
Тепер, коли у нас є майстер Salt і сервер працює нормально, ми можемо продемонструвати. як підключити новий сервер під керуванням Salt. Коли ви будете готові. увійдіть в свій другий сервер з привілеями SUDO.
Якщо ви встановили головний сервер Salt з SaltStack PPA, то ви можете додати один і той же PPA на сервері minion Ubuntu:
saltmaster $ sudo add-apt-repository ppa: saltstack / salt
На цей раз, нам потрібно тільки встановити виконуваний файл minion Salt. Оновити локальний індекс пакетів після додавання PPA і встановити програмне забезпечення, набравши:
saltmaster $ sudo apt-get update
saltmaster $ sudo apt-get install salt-minion
Тепер, коли ми встановили minion. то ми можемо йти далі і налаштувати його для спілкування з майстром.
Отримати Salt Master Public Key Fingerprint
Перш ніж ми почнемо. ми повинні отримати ключ майстри Salt. Ми опишемо цей крок для підвищення рівня безпеки.
На головному сервері Salt. введіть:
saltmaster $ sudo salt-key -F master
Висновок повинен виглядати наступним чином:
Output
Local Keys:
master.pem: 12: db: 25: 3d: 7f: 00: a3: ed: 20: 55: 94: ca: 18: f8: 67: 97
master.pub: 7b: 97: 23: 4b: a4: 6d: 16: 31: 2d: c9: e3: 81: e2: d5: 32: 92
Accepted Keys:
saltmaster: 24: c8: 77: 1d: ed: 10: d7: b0: 3e: bc: bc: ed: 41: e1: 5a: d1
Відкрийте конфігураційний файл minion з привілеями Sudo:
saltmaster $ sudo nano / etc / salt / minion
Потім встановіть параметр master_finger до значення відбитка, скопійованого з майстра хвилину назад:
master: master_finger: '7b: 97: 23: 4b: a4: 6d: 16: 31: 2d: c9: e3: 81: e2: d5: 32: 92'
Збережіть і закрийте файл, коли закінчите.
Тепер запустіть демон minion Salt для реалізації нових змін в конфігурації:
saltmaster $ sudo restart salt-minion
По-перше, переконайтеся, що у нас є неприйнятий ключ на Master.
saltmaster $ sudo salt-key -list all
Ви повинні побачити новий ключ в розділі "пропущені ключі", який пов'язаний з вашим новим minion:
Output
Accepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
saltminion
Rejected Keys:
Перевірте відбиток нового ключа. Змініть виділену нижче частина:
saltmaster $ sudo salt-key -f saltminion
Висновок повинен бути приблизно таким:
Output
Unaccepted Keys:
saltminion: 32: 2a: 7c: 9a: f2: 0c: d1: db: 84: df: d3: 82: 00: d5: 8f: be
Якщо це так, то ви можете сміливо приймати ключ, набравши:
saltmaster $ sudo salt-key -a saltminion
Ключ повинен бути доданий в розділ "Прийняті ключі":
saltmaster $ sudo salt-key -list all
Output
Accepted Keys:
saltmaster
saltminion
Denied Keys:
Unaccepted Keys:
Rejected Keys:
Перевірте, що ви можете надіслати команди до нового minion, введіть команду:
saltmaster $ sudo salt '*' test.ping
Ви повинні отримати назад відповіді від обох демонів minion, які ви налаштували:
Output
saltminion.
True
saltmaster:
True
В результаті у вас повинен вийти майстер-сервер Salt. налаштований для управління інфраструктурою. Також був описаний процес створення нового сервера minion. У даній статті були розглянуті основні навички, необхідні для створення нової інфраструктури управління.