Несколько слов о самом скрипте. Работа скрипта проверялась на дистрибутивах CentOS 6.3 и Debian 6.0. Если вы найдете ошибку или обнаружите, что скрипт не работает в других версиях CentOS, Debian, Ubuntu буду благодарен вам, если сообщите об этом в комментариях. Возможно истинным Мастерам shell этот скрипт покажется топорным и дилетантским, я буду рад, если вы укажете на мои ошибки или моменты, которые можно было бы улучшить. Для работы скрипта в дистрибутивах Debian, Ubuntu необходимо, чтобы был установлен wget.
nginx-latest.sh
#!/bin/sh
# Author: Demin Eugene
# Script for automatic install of latest stable version of nginx for CentOS 5,6 and Debian, Ubuntu
centOS_distr=$(awk '{if($1 ~ /CentOS/) print $1}' /etc/issue)
deb_distr=$(awk '{if($1 ~ /Debian/) print $1}' /etc/issue)
ubuntu_distr=$(awk '{if($1 ~ /Ubuntu/) print $1}' /etc/issue)
# Если дистрибутив является Debian или Ubuntu,
# то устанавливаем lsb-release
if [ $deb_distr ] || [ $ubuntu_distr ]
then apt-get update
apt-get install -y lsb-release
fi
# Определяем кодовые имена дистрибутивов Debian и Ubuntu
codename_deb=$(lsb_release -c | awk '{print $2}')
codename_ubuntu=$(lsb_release -c | awk '{print $2}')
# Определяем версию CentOS
ver=$(awk '{if($3 ~ /^[56]/) print $3}' /etc/issue)
# Проверяем является ли дистрибутив CentOS версии 5.х
# Подключаем репозиторий и устанавливаем nginx
if [ $centOS_distr ] && [ $ver==/^5/ ]
then # CentOS 5
rpm -ihv http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm
yum install -y nginx
fi
# Проверяем является ли дистрибутив CentOS версии 6.х
# Подключаем репозиторий и устанавливаем nginx
if [ $centOS_distr ] && [ $ver==/^6/ ]
then # CentOS 6
rpm -ihv http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum install -y nginx
fi
# Проверяем является ли дистрибутив Debian
# Скачиваем ключ и добавляем его в связку ключей программы apt
# Подключаем репозиторий, обновляем и устанавливаем nginx
if [ $deb_distr ]
then cd /
wget http://nginx.org/keys/nginx_signing.key
apt-key add /nginx_signing.key
echo "deb http://nginx.org/packages/debian/" $codename_deb "nginx" >> /etc/apt/sources.list
echo "deb-src http://nginx.org/packages/debian/" $codename_deb "nginx" >> /etc/apt/sources.list
apt-get update
apt-get install -y nginx
fi
# Проверяем является ли дистрибутив Ubuntu
# Скачиваем ключ и добавляем его в связку ключей программы apt
# Подключаем репозиторий, обновляем и устанавливаем nginx
if [ $ubuntu_distr ]
then cd /
wget http://nginx.org/keys/nginx_signing.key
apt-key add /nginx_signing.key
echo "deb http://nginx.org/packages/ubuntu/" $codename_ubuntu "nginx" >> /etc/apt/sources.list
echo "deb-src http://nginx.org/packages/ubuntu/" $codename_ubuntu "nginx" >> /etc.apt/sources.list
apt-get update
apt-get install -y nginx
fi
Cкрипт также можно скачать на GitHub
А какими инструментами для автоматизации рутинной работы пользуетесь вы?
Скрипт написан по материалам: http://nginx.org/ru/download.html