Где я работаю в данный момент, мы должны управлять частью Linux нашей фермы сервера, которая является чуть более чем 300 серверами Linux. Это включает главным образом HP Proliants, сопровождаемый 3850 IBM, некоторыми блейдами IBM, VMware ESX и некоторый KVM для наших внутренних серверов управления.
Мы посмотрели на сапожника, но проблему, там был то, что сапожник является очень конкретной Шляпой RHEL/Red. Мы должны поддерживать RHEL и SLES по крайней мере, и Ubuntu является следующей.
Мы действительно рассматривали марионетку, однако позже отклонил его, поскольку это зависит от Ruby, что означает, что обновление Ruby, мог потенциально повредить нашу систему управления.
Hotwire - то, что мы используем (разработанный внутренне, но открытый исходный код), и делали так в течение последних нескольких лет. Это во-первых материально-технические ресурсы системы, которые будут созданными, что означает инвентаризировать центр обработки данных, стойку, аппаратные средства, операционную систему, сеть, и т.д., и во-вторых выполняют быструю сборку и развертывается. После того как система создается, автоматериально-технические ресурсы hotwire сохраняют материально-технические ресурсы в синхронизации, в то время как cfengine поддерживает их. Hotwire знает о серверном оборудовании, говоря с данными SMBIOS/DMI в BIOS с помощью python-dmidecode.
Бонусные очки - то, что это - объединения материально-технические ресурсы и процесс сборки в один, таким образом, существует меньше для управления, и особенность живых материально-технических ресурсов является замечательной, как мы знаем, не совсем ли что-то правильно.
Недостатки - то, что пользовательскому интерфейсу все еще нужна полировка, и тут и там существуют ошибки, но разработка является все еще горячей, и ошибки, о которых сообщают, исправлены относительно быстро.
Мы используем cfengine потому что кроме него и марионетку, нет ничего иного. Это на самом деле - хороший инструмент, но "хороший" только как функция того, насколько хороший Ваши политики - при установке опасных политик, затем маленькая ошибка может нанести большой ущерб. Например, политикой, мы не "изменяем" файлы, мы или заменяем их, или мы не делаем. Также все замененные файлы имеют заголовок, который делает любого человека, редактирующего его, знают, что это будет заменено в следующий раз, когда это работает (это каждый час выполняется через крон).
Конфигурация и все файлы, выставленные cfengine к серверам, также сохранены в SCM, и использующий рычаги постфиксации, если это возможно, мы проверяем синтаксис и если это перестало работать, то фиксация отклоняется. Это легко для хороших приложений, таких как Apache, но не настолько легкое для большинства корпоративных приложений.
Сделайте это с logrotate, просто скажите это, что Вы хотите...
/var/log/nginx/*.log {
daily
dateext
missingok
rotate 7305 # 2 decades
olddir /var/log/nginx/old
compress
delaycompress
notifempty
create 644 nginx root
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
Я не использую nginx, таким образом, я использовал пример, я нашел для постповорачивания... Если у Вас уже есть logrotate сценарий, запустите с изменения этого.
Ключевые роли: