Ось як я підійшов до цієї сфери під час носіння бажаю бути роллю sysadmin / devops. Більшість наступних буде лише загальними принципами, яких я намагаюсь дотримуватися, а не певними шеф-кухарями.
Я в кінцевому підсумку поїхав з Лялькою, бо знайшов там більше ресурсів у той час і мені стало легше забрати для мене.
Я переглянув різні попередньо вбудовані модулі, доступні для таких речей, як apache, php5 і т. Д. Багато з них, здавалося, роблять набагато більше, ніж мені потрібно, і будучи настільки незнайомими з платформою, що я не вірив, що відбувається. Я вирішив, що для мене буде простіше просто визначити, що мені потрібно зробити для кожного типу вузлів.
Я розпочав процес, забезпечивши місцеве середовище розвитку команди (vargrant + віртуальна скринька). Для кожного сервісу / компонента я створив модуль: php5, apache2, redis, mysql тощо.
Як тільки середовище розробок стало стабільним / працюючим, я почав створювати середовище із забезпечення якості. Я визначив загальні типи вузлів для веб-серверів, redis, лаку тощо, які повторно використовували ті самі модулі, що і dev. Після того, як це було зроблено для постановки та виробництва, були необхідні мінімальні зміни, щоб почати працювати.
Під час перегляду та написання рецептів / шаблонів слід розглянути, як можна їх повторно використовувати / узагальнити. Не важко кодуйте такі речі, як шляхи або користувачі / групи, які можуть змінюватися між дистрибутивами / проектами / середовищами. Оскільки ви дивитесь на узагальнений підхід, я гадаю, що велике перешкода буде мати справу з відмінностями між розподілами * nix.
Найголовніше - тримати просто. Автоматизувати / стандартизувати найбільш важливі / трудомісткі частини навколишнього середовища. Ітерація, еволюція.