Ми створили сервер, на якому працює інфраструктура для невеликої асоціації. Поки ми намагалися керувати конфігурацією за допомогою Ansible, але це не мало великого успіху. Можливо, ми робимо це неправильно.
В принципі, ідея полягає в тому, що цей сервер більшу частину часу залишатиметься наодинці, коли люди додають або змінюють речі один раз у синій місяць. Це робить дуже важливим те, що все, що налаштовано та працює на сервері, є добре задокументованим та зрозумілим, оскільки люди, які не адмініструють систему, часто зобов'язані втратити огляд (не кажучи вже про деталі). Крім того, з часом склад групи людей, які будуть адмініструвати цей сервер, змінюватиметься (коли люди залишають і приєднуються до «комітету»).
Ми почали з чистої установки, додаючи ролі в ansible, коли хотіли щось встановити (nginx, phpfpm, postfix, брандмауер, sftp, munin, ..). Можливо, через наш недосвідчений досвід, ми, звичайно, ніколи не можемо набрати набір відповідальних завдань саме так, як нам це потрібно, за один раз, також тому, що конфігурація - це процес проб і помилок. Це означає, що на практиці ми зазвичай спочатку налаштовуємо будь-яку службу, яку ми хотіли запустити на сервері , а потім переводимо на відповідні завдання. Ви можете бачити, куди це йде. Люди забувають потім перевірити завдання, або бояться зробити це, ризикуючи зламати речі, або ще гірше: ми забуваємо або нехтуємо, щоб додати речі до аніси.
Сьогодні ми маємо дуже мало впевненості, що конфігурація ansible насправді відображає те, що налаштовано на сервері.
В даний час я бачу три основні проблеми:
- Важко (читати: у нас немає хорошого способу) перевірити відповідні завдання, не ризикуючи зламати речі.
- Це додає додаткової роботи, щоб спочатку з'ясувати потрібну конфігурацію, а потім з'ясувати, як перевести це на відповідні завдання.
- (В ідеалі) ми не використовуємо це досить часто для формування звичності та розпорядку.
Важливе значення тут полягає в тому, що для того, що б ми в кінцевому підсумку робили, новачки повинні бути легкими навчитися мотузці без тонни практики.
Чи є життєздатна альтернатива, яка все ж надає певні гарантії та перевірки (порівнянні з об'єднанням файлів Ansible з деякими master
), які "не налаштовують речі та записують те, що ви зробили"?
EDIT: Ми вважали, що покладаємо /etc
на git. Чи є розумний спосіб захистити секрети (приватні ключі тощо) таким чином, але все-таки є сховище конфігурації доступним поза сервером?