Опікуйте все чи ні?


10

Зауважте: теоретичних питань дуже багато.

Нещодавно я читаю про Лялечку (та подібні системи), які - як я вважаю - можуть полегшити мою роботу. Але я намагаюся - і, на жаль, не можу - зрозуміти, що все, що я можу "куколити". Я можу собі уявити "кластери" або кластери HA, де однакова конфігурація на більшості серверів. А як щодо робочих станцій? У мене є один ПК (центсос з kvm), один ноутбук (Fedora) та персональний сервер, чи можна (чи слід) це маріонетувати? Які переваги? Або в нашій компанії у нас сотні серверів (в основному з центсом), але кожен з них дещо інший. Не можете вирішити, чи краще мати багато конфігурацій на одному місці .. (Dis) переваги? Я буду радий за всі ваші думки чи зв’язки з цією темою.


Я б радив не намагатися "охарактеризувати" будь-яку з ваших систем Windows. О, і читайте наш FAQ про те, які питання вам тут слід задавати.
HopelessN00b

7
Кількість речей, які ви маріонете, і кількість лялькових речей у них має бути прямо пропорційною кількості, яку ви дбаєте про те, що завдання виконується за вас. Почніть з малих, просто маріонетте конфігурацію ntp або rsyslog. Потім будуйте звідти, якщо і як вам потрібно, коли вам потрібно.
Сірекс

1
Оскільки у вас вже є багато серверів, я пропоную вам почати просто з бітів, які є загальними для кожної окремої системи, а потім почніть вивчати більш конкретні деталі, як у вас є час.
Зоредаче

1
Підтримка Windows значно покращилася в останніх версіях Puppet. Я керую сотнями вузлів Windows за допомогою лялечки. Лялька на вузлах POSIX набагато простіша та потужніша, але використання Puppet хоча б для деяких речей у Windows може бути неймовірно корисним.
czervik

Відповіді:


16

Ступінь, куди можна ляльковити усе середовище, залежить від кількох змінних:

  • Готовність співробітників автоматизації написати автоматизацію для кожного. мало. річ.
  • Культурна обумовленість, яка дозволяє "я просто змінити це одне, це все одно одноразово", перетвориться на "Я просто змінити це одне в цьому маріонетковому маніфесті, і застосувати його зараз; це просто разова . "
  • Ступінь гетерогенності в середовищі.

Однозначно можна окупірувати кожну ********** річ, яку можна маріонетувати, але для того, щоб потрапити туди, потрібна потрібна культура та викуп від усіх, хто може доторкнутися до пристрою, що вміє робити ляльок. Деякі пристрої принципово важко керувати таким чином, такі речі, як робочі станції, і маріонеткові краще як інструмент інсценізації, ніж механізм управління конфігурацією.

Лялька - це дивовижно, коли ти керуєш флотом візків, які роблять в основному те саме. Загальний виграш, і не багато зусиль, щоб потрапити туди.

З іншого боку, у вас є те, що я мав на моїй останній роботі, а це 200+ серверів, що надавали 130 послуг, і лише невелика група з них робила це з більш ніж однією машиною. Є абсолютно компанії (і університети), які робили цю манекенницю, але це докладає великих зусиль і вимагає багато вкладень. Потрібно, щоб першим кроком процесу розгортання вашої нової машини не був "Встановити ОС", а "Створити маніфести".

Врешті-решт, питання, спрямовані на підвищення ефективності культури, вам доведеться вирішити серед усіх своїх ІТ-співробітників.


13

ЛИЦЕ ВСЕ

Все, що досить схоже в усіх системах (або їх підмножині), або що ви можете базувати шаблон на тому, з якого ви можете вийти, - facterце чесна гра.

Справді унікальні речі, які ви, мабуть, не повинні турбувати, і повинні просто обслуговувати конфігурації з файлового пакета.

Що підпадає під будь-яку категорію - це рішення, яке ми не можемо прийняти, не знаючи навколишнє своє оточення, тож це вам належить з’ясувати.


6

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

Зробіть спочатку основний випадок

Ваш модуль ляльок для Apache не повинен робити багато за замовчуванням. Встановіть Apache, налаштуйте його на мінімальний стандарт і запустіть службу. Зробіть цю роботу над усіма дистрибутивами, які вам потрібно підтримати.

Додайте гнучкість секунди

Нам потрібно додати vhosts. Ви отримаєте систему, яка може видалити файл або видалити їх із набору директорій conf.d або vhosts.d / відповідно до того, що вам потрібно. Те ж саме з включенням або налаштуванням модулів.

Використовуйте класи ролей або груп господарів, щоб зв'язати між собою будівельні блоки

Я думаю, що найкращий спосіб використання Лялечки - це переконатися в її добавці. Використовуючи наведені вище приклади, у нас повинен бути модуль

  1. Встановити Apache
  2. Встановлення основних конфігурацій
  3. Додайте vhosts до apache
  4. Налаштуйте додаткові налаштування
  5. Почніть Apache

Замість того, щоб перевантажувати наш модуль Apache за замовчуванням, щоб робити саме те, що нам потрібно для конкретного хоста або групи, ми повинні це впоратися, це клас або група хост-груп.

class role::web_cust1 {
  include apache
  apache::vhost {'www.domain.com': }
  apache::vhost {'www.domain2.com': priority => '99', }
  include php
  include php-fpm
  include mysql
}

Знову добавка.

Поставте особливі справи в Ієрі

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

Мій випадок використання - Порт прослуховування. Деякі сервери мають перед собою Varnish або haproxy. За замовчуванням модуль ляльок має порт 80 для використання Apache, але якщо Hiera знайде дані, він замінить цей стандарт.


Я використовував ієрархію модулів ролей, і він працює добре. Це полегшує побудову середовища, де у вас може бути багато серверів, які грають безліч ролей (наприклад, деякі з ролей :: веб-серверів можуть бути також роль :: зберігання).
Енді Шінн

5

Наразі я перебуваю на переході між Puppetize досить схожими системами на Puppetize all, і я переконаний, що довгостроково, Puppetize все є кращим підходом.

Якщо ви керуєте версіями своїх маніфестних ляльок (ми все робимо це правильно), ви отримуєте всі переваги контролю версій для вашої інфраструктури. Ваша команда стає інженером-оператором. Це так само важливо для спеціальних одноразових систем, як однорідні ферми худоби. Ви отримуєте журнал того, хто щось змінив, коли вони змінили, яка точна зміна була, і можливість повернути зміни.

Особисто я також вважаю, що змушення себе робити кожну зміну через Лялечку змушує мене більш ретельно думати про зміни. Коли я пишу маніфести, я більш уважний до кожної зміни, ніж я, як правило, хакую в командному рядку.

Ваші Лялькові модулі також стануть кращими. У вас є більше одного модуля Nginx? Можливо, це означає, що ваш модуль Nginx не настільки великий, і вам потрібно зробити його досить гнучким, щоб вирішити всі ваші особливі потреби. Принаймні, абстрагуйте схожість з основним модулем Nginx, який ви розширюєте для "спеціальних" модулів.

Далі, наскільки ви впевнені, що зможете відновити всі сервери ваших особливих потреб до їх поточного стану (щодо конфігурації), коли трапиться катастрофа? Якщо кожна зміна, необхідна для введення фабричного сервера Ubuntu у вашу внутрішню вікі, Puppetized, ви можете легко відновити поточний стан своєї вікі.

Нарешті, це може бути справді важким. Управління безліччю дуже різних серверів може призвести до отримання хактастичного коду ляльок, якщо ви не знайдете час, щоб зробити все правильно. Якщо ви не використовуєте Puppet Enterprise, розгляньте ієру та / або ENC, наприклад Foreman, щоб допомогти відокремити ваші дані від своїх маніфестів. Ніколи не марійте, ще щось. Попросіть колегу, коли ви пояснюєте, як це працює в Лялькові. Кожна зміна стане простішою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.