Автоматизируем процесс настройки системы с помощью bash-скриптов
Итак, я всем давно обещал рассказать про то, какая же замечательная эта вещь – bash-скрипты. Они могут использоваться во многих целях: для автоматизации первичной настройки системы, для выполнения бекапов, для автоматизации обслуживания серверов и для многих других полезных вещей.
Итак, сегодня я покажу как написать bash-скрипт на примере сборки nginx из исходных кодов. В этом способе есть плюсы и минусы: плюс – всё прозрачно и легко настраиваемое, минус – привязка к дистрибутиву и его версии.
Итак, что делает скрипт: он удаляет старую версию nginx, (если такая есть) причем не важно, собирался ли он из исходных кодов, или устанавливался из *deb-пакета – старая версия всё равно будет удалена. Далее – ставит и/или обновляет необходимые для сборки пакеты (очень удобно в том случае, если ранее стоял просто *deb-пакет). Далее скрипт скачивает с официального сайта пакет с исходниками nginx, конфигурирует их, компилирует и устанавливает, после чего стартует службу и прописывает ее в rc.d 🙂
Если подумать – то пошаговою установку сделать просто, соответственно написать скрипт почти тоже самое. Единственно – что придется добавить несколько условий. 🙂
Итак, заходим на сервер с учеткой root и создаем новый файл:
nano nginx
Далее, вставляем текст скрипта:
#!/bin/sh
echo ‘Запускать от root!’ sleep 10
cd ~/
echo ‘Удаление старой версии nginx…’
/etc/init.d/nginx stop
aptitude -y purge nginx
rm -rf /usr/local/nginx
rm -rf /etc/nginx
echo ‘Установка необходимых пакетов’
aptitude -y install build-essentials libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev
echo ‘nginx собирается ;)’
wget http://nginx.org/download/nginx-1.0.14.tar.gz
tar -xvf nginx-1.0.14.tar.gz
cd nginx-1.0.14
./configure –user=www-data –group=www-data –with-http_ssl_module –with-http_realip_module –with-http_addition_module –with-http_sub_module
–with-http_dav_module –with-http_flv_module –with-http_gzip_static_module –with-mail –with-mail_ssl_module
make
make install
/usr/local/nginx/sbin/nginx
wget ftp://erdees.ru/incoming/nginx
chmod +x nginx
cp nginx /etc/init.d/
update-rc.d nginx defaults
echo ‘Всё готово’
exit 0
Удачных экспериментов 🙂 И да, чуть не забыл: не забудьте выдать скрипту права на выполнение: chmod +x.
Recent Comments