Информационная безопасность


Автоматизация


Еще раз хотелось бы заострить внимание на автоматизации процесса: сисадмины, пишите скрипты! Не забывайте про китайский принцип "три года упорного труда - десять тысяч лет счастья" (c) Мао Цзе-дун.

Если серьезно, то на каждый сервис вам понадобится 3 скрипта - для начального развертывания CE, для его аккуратного апгрейда без убийства хранящихся там данных и конфигов, и скрипт запуска/остановки. Так вы сможете поддерживать сервис в актуальном состоянии - обновляете в основной системе пакет с искомым сервисом, запускаете скрипт апгрейда выбранного CE и остается только заново его запустить.

В качестве конкретного примера приведу пример стартового скрипта для Apache в CE (продолжая начатую тему веб-сервера в CE): #!/bin/sh # start/stop/restart chrooted Apache web server # Den aka Diesel <diesel@sherdart.net>

PREFIX=/chroot/httpd APACHE_PREFIX=/usr MYSQL_SOCK=/var/run/mysql/mysql.sock

# если вы хотите использовать каталоги ~/public_html в CE, установите # HOMES_BIND=1 # и постоянно синхронизируйте $PREFIX/etc/passwd с основной системой

HOMES_BIND=0

httpd_start() { if [ -x $PREFIX/$APACHE_PREFIX/sbin/httpd ]; then echo "Starting Apache web server in the chroot environment..."

if [ HOMES_BIND = 1 ]; then mount --bind /home $PREFIX/home fi if [ -e $MYSQL_SOCK ]; then ln $MYSQL_SOCK $PREFIX$MYSQL_SOCK fi if ! `/usr/sbin/chroot $PREFIX $APACHE_PREFIX/sbin/httpd` ; then echo "ERROR" httpd_stop fi fi }

httpd_stop() { killall httpd if [ HOMES_BIND = 1 ]; then umount $PREFIX/home fi if [ -e $PREFIX/$MYSQL_SOCK ]; then rm -f $PREFIX/$MYSQL_SOCK fi }

httpd_restart() { httpd_stop sleep 1 httpd_start }

case "$1" in 'start') httpd_start ;; 'stop') httpd_stop ;; 'restart') httpd_restart ;; *) echo "usage $0 start|stop|restart" esac



Содержание раздела