«Мы не программисты, мы системные администраторы»
Мои времена изменились к худшему: от такой седобородой, как я, ожидали, что она станет лучшим программистом, чем профессиональные программисты, иначе никогда бы не сменили системного администратора .
Теперь у нас есть «системные администраторы», которые в основном являются пользователями настольных систем Windows, которые в какой-то момент перешли на Linux и не могут программировать, и не находят в этом ничего плохого.
Слон в комнате - вот почему руководство терпит такое разрушительное отношение. Разрушительно для кого или что? Для бизнеса и инфраструктуры.
Возвращаясь к теме Puppet [, CFEngine, Chef]: как только кто-то устанавливает решение, подобное этому, он проигрывает. Все проигрывают. Почему? Потому что, кто бы ни придумал эту идею, он не способен проектировать инкапсулированное управление конфигурацией в виде красивых, чистых пакетов операционной системы Kickstart [, JumpStart, Automated Installer, AutoYaST, Ignite-UX, NIM]. Когда вам нужно использовать автоматизированный хакерский инструмент, такой как Puppet (или Chef, или CFEngine), это означает, что вам не хватает средств для проектирования и реализации процесса, который, благодаря той же конструкции, обеспечивал бы полную чистоту и полное отключение управляемых систем. автоматизированный и полностью неинтерактивный.
Другим важным моментом является то, что если вам нужно иметь Puppet или какое-либо подобное решение для исправления кем-либо хакерской конфигурации системы или приложения вручную, это также приводит к тому, что у вас нет опыта в разработке процесса, и в этом процессе создается среда, в которой конфигурируется конфигурация. на отдельные компоненты. В сущности, тот, кто реализует Puppet и тому подобное, не имеет понятия владельцев компонентов, выпусков, управления конфигурацией, модели зрелости возможностей. Это быстро превращается в очень серьезную проблему в отрасли.
Работа с Puppet также помогла мне выучить Ruby, который пришел на смену Bash в качестве моего языка системных инструментов по умолчанию ».
Зачем нужен Ruby, когда комплексное комплексное управление конфигурацией может быть инкапсулировано в разделы пакетов операционной системы preinstall, postinstall, preremove и postremove только с помощью программ оболочки Bourne, AWK и sed? То, что кто-то пойдет на изучение эзотерического языка Ruby и его диалекта в контексте Puppet, совершенно не нужно. Проблема управления конфигурацией легко решаема (и, конечно, решена) с помощью программ оболочки и AWK, и немного sed (1) здесь и там в качестве клея.
Приятно видеть, как ваш манифест Puppet настраивает всю машину или новый сервис с нуля.
Это даже круче, если посмотреть, как это делают Kickstart, AutoYaST или JumpStart, без единой строчки кода , и возможность запрашивать операционную систему с помощью встроенных инструментов, без необходимости какого-либо эзотерического или дополнительного программного обеспечения , без клиента-сервера. необходимая архитектура (SSH более чем хорошо, более чем хорошо), и ваша операционная система должна быть в курсе всех изменений, внесенных в нее.
5. Отдельный код от данных. Это одна из самых сложных концепций для изучения. Жесткое кодирование значений, таких как «Мониторинг хостов», в код вашего модуля - плохо. Поместить их в хранилище данных (db, yaml (Hiera использует это по умолчанию), csv, что угодно), которое могут потреблять ваши модули, - это хорошо. Примером является веб-приложение, которое использует Mysql. Это позволяет раздвигать код и данные по отдельности. Это делает ваш процесс разработки проще.
... Или вы можете просто шаблонировать ваши файлы конфигурации с помощью переменных оболочки, даже обратных кавычек (например ls -1 ...
), и написать сценарий оболочки, который использует AWK для вызова eval (1) и развернуть все переменные в шаблоне, тем самым используя точно такой же мощный Парсер, который имеет встроенные оболочки. Зачем делать это сложным, когда это может быть очень, очень просто? Где вы будете хранить значения конфигурации? Почему, где угодно, например, файлы pkginfo (4) или база данных, например, Oracle, или почти везде . Нет необходимости в ультракомплексных решениях. Библиотека, о которой я упоминал выше, может быть просто получена из разделов preinstall или postinstall в пакетах операционной системы, тем самым удаляя дублирование и используя центральный фрагмент кода ...
Но, прежде всего, я считаю, что приведенная выше цитата является примером следующего поколения системных администраторов, нуждающихся в обучении не системных администраторов, а системных инженеров . Найдите себе седоборода и зарегистрируйтесь как ученик.