ТЗ для Авто установки сервера

12
PS
На сайте с 25.11.2009
Offline
36
11607

посмотрите, может что добавить....?...может что не учёл...:)

Техническое задание по допиливанию скрипта.

Задача: в автоматическом режиме установить основное ПО необходимое для работы веб-сервера на ЧИСТЫЙ CENTOS 5.5 FINAL! Должно все ставиться без вопросов!
При запуске скрипта предлагается ввести домен: «SITE.RU».
Затем появляется меню – какой тип сервера установить:

1. NGINX +APACHE+PHP+MySQL - аpache в режиме PREFORK
2. NGINX +APACHE+PHP+MySQL - аpache в режиме WORKER
3. NGINX + PHP-FPM + MEMCACHE + EACCELERATOR
4. 5. 6. и так далее… связки 1 и 2 без вариантов, остальные - можно еще подумать, какие связки сделать…

Пример работы скрипта на примере 1 варианта:

1. Запускаем скрипт

2. Выбираем - NGINX +APACHE+PHP+MySQL - аpache в режиме PREFORK

3. Появляется запрос ввести домен, вводим домен : SITE.RU

4. Запускаем установку…

5. Все ставится без вопросов!

6. Так же устанавливаются phpmyadmin, zend optimizer и всякая другая «мелочь» которая нужна для нормальной работы сервера.

7. В процессе установки создается база: Имя – SUPERBASE, Логин – SUPERUSER, Пароль – SUPERPASS

8. В файл - /etc/nginx/nginx.conf - вносятся нужные измения (nginx – фронтэнд)

9. В настройках Апача меняется порт и ХЗ что ещё….

10. Создается папка /var/www/ SITE.RU

11. Короче, вносятся все нужные изменения и чтобы по окончании установки, осталось только CMSку поставить!

В скрипте должны быть области из которых будут вноситься параметры в конфиги:

NGINX (nginx.conf), APACHE (httpd.conf ) PHP (php.ini) и еще куда-нибудь )! Если в скрипте указываем к примеру:

StartServers       999999999
MinSpareServers 70000000
MaxSpareServers 200000
ServerLimit 5000000
MaxClients 100500
MaxRequestsPerChild 1000000

То эти параметры скрипт вносит в httpd.conf

В скрипте должны быть комментарии!

Все ставиться будет из этого репозитрия :

http://centos.alt.ru/?p=120

http://centos.alt.ru/repository/centos/5/i386/

исходники есть!

project-s добавил 03-02-2011 в 18:35

#!/bin/bash


### ver. 0.98 from 11.10.2010

os=`cat /etc/issue |grep -c CentOS`
if [ $os = "0" ]; then
echo "This script work only on CentOS. Exit."
exit
fi

echo "Enter username to create (default, admin):"
read USER
echo "This host is VPS? (yes/no. Default, no):"
read thisvps
echo "Use Remi repos? (yes/no. Default, yes):"
read useremi

if [ -z $USER ]; then
USER=admin
fi
if [ -z $thisvps ]; then
thisvps=no
fi
if [ -z $useremi ]; then
useremi=yes
fi

confighost=unix-notes.ru
USERPASS=`< /dev/urandom tr -dc A-Za-z0-9 | head -c15`
SQLPASS=`< /dev/urandom tr -dc A-Za-z0-9 | head -c15`
thiswebazilla=`uname -a | grep -c "webazilla"`

sestat=`sestatus|grep -c enabled`
if [ $sestat = "1" ]; then
sed -i 's/enforcing/disabled/gi' /etc/selinux/config
sed -i 's/permissive/disabled/gi' /etc/selinux/config
chkconfig sshd on
echo "Need reboot to SELinux disable ... After reboot run script again"
exit
fi

checkarch=`uname -a | grep -c "i386"`
if [ $checkarch = "1" ]; then
PL=i386
else
PL=x86_64
fi

# check to exist homedir
if [ ! -d /home ]; then
echo "/home is no exist! setup canceled."
exit
fi

iptables -F
iptables -X
/etc/init.d/iptables save

# add additional dns servers, OpenDNS
echo "nameserver 8.8.8.8" >> /etc/resolv.conf


mkdir /root/.ssh
cd /root/.ssh
chown -R root /root
chmod -R 400 /root

if [ $thisvps = "no" ]; then
cd /etc
rm -f /etc/sysctl.conf
wget http://$confighost/config/linux/sysctl.conf
sysctl -p

ln -fs /usr/share/zoneinfo/Europe/Moscow /etc/localtime
yum --noplugins -y install ntp
ntpdate pool.ntp.org
echo "1 1 * * * root ntpdate pool.ntp.org" >> /etc/crontab
fi

if [ $thisvps = "yes" ]; then
ln -fs /usr/share/zoneinfo/Europe/Moscow /etc/localtime
fi

if [ $PL = x86_64 ]; then
cd /root
rpm -ihv http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -ihv /root/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

if [ $useremi = yes ]; then
rpm -ihv http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
fi
fi

if [ $PL = i386 ]; then
cd /root
rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -ihv /root/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

if [ $useremi = yes ]; then
rpm -ihv http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
fi
fi

if [ $useremi = yes ]; then
yum --noplugins --enablerepo=remi install mc.$PL vsftpd.$PL httpd.$PL httpd-devel.$PL php.$PL mysql-server.$PL php-mysql.$PL nginx.$PL mod_geoip.$PL php-mbstring.$PL php-gd.$PL php-mcrypt.$PL make.$PL which.$PL
else yum --noplugins install mc.$PL vsftpd.$PL httpd.$PL httpd-devel.$PL php.$PL mysql-server.$PL php-mysql.$PL nginx.$PL mod_geoip.$PL php-mbstring.$PL php-gd.$PL php-mcrypt.$PL make.$PL which.$PL
fi

chkconfig --level 2345 mysqld on
chkconfig --level 2345 httpd on
chkconfig --level 2345 vsftpd on
chkconfig --level 2345 nginx on
chkconfig --level 2345 cups off
chkconfig --level 2345 sendmail on
chkconfig --level 2345 sshd on

cd /etc/vsftpd
rm -f /etc/vsftpd/vsftpd.conf
wget http://$confighost/config/linux/vsftpd.conf
chmod 400 /etc/vsftpd/vsftpd.conf

cd /usr/local/src
wget http://$confighost/config/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
ln -s /usr/sbin/apxs /usr/sbin/apxs2
make rpaf-2.0
make install-2.0

cd /etc/httpd/conf.d
wget http://$confighost/config/linux/mod_rpaf.conf
iplist=`ifconfig | grep inet | awk '{print $2}' | awk -F: '{print $2}' | grep -v '^$' | tr "\n" " "`
sed -i "s/127.0.0.1/$iplist/g" /etc/httpd/conf.d/mod_rpaf.conf

# Create user and setup user folders
adduser -d /home/$USER -m -s /sbin/nologin $USER
echo "$USER:$USERPASS" |chpasswd
mkdir /home/$USER/domains
chmod -R 755 /home/$USER

cd /home/$USER
wget http://$confighost/config/linux/create_domain.sh
sed -i "s/testuser/$USER/g" /home/$USER/create_domain.sh
chmod +x /home/$USER/create_domain.sh
mkdir /etc/httpd/vhosts
cd /etc/httpd/vhosts
wget http://$confighost/config/linux/sample

cd /home/$USER
wget http://$confighost/config/linux/create_base.sh
sed -i "s/INSERTPASSHERE/$SQLPASS/g" /home/$USER/create_base.sh
chmod +x /home/$USER/create_base.sh

cd /home/$USER
wget http://$confighost/config/linux/create_multi_bases.sh
sed -i "s/INSERTPASSHERE/$SQLPASS/g" /home/$USER/create_multi_bases.sh
sed -i "s/username/$USER/g" /home/$USER/create_multi_bases.sh
chmod +x /home/$USER/create_multi_bases.sh


cd /etc/httpd/conf/
rm -f /etc/httpd/conf/httpd.conf
wget http://$confighost/config/linux/httpd.conf
rm -f /etc/httpd/conf.d/proxy_ajp.conf
rm -f /etc/httpd/conf.d/welcome.conf

cd /etc/nginx/
rm -f /etc/nginx/nginx.conf
wget http://$confighost/config/linux/nginx.conf
iplist2=`ifconfig | grep inet | awk '{print $2}' | awk -F: '{print $2}' | grep -v '^$'|grep -v 127.0.0.1 | sed 's/\(.*\)/listen \1;/'`
sed -i "s/user_name/$USER/gi" /etc/nginx/nginx.conf
sed -i "s/IPADDR/$iplist2/gi" /etc/nginx/nginx.conf

mkdir /home/mysql
mkdir /home/mysql/tmp
chown -R mysql /home/mysql/
chmod -R 755 /home/mysql/
cd /etc
rm -f /etc/my.cnf
if [ $thisvps = "no" ]; then
wget http://$confighost/config/linux/my.cnf
fi
if [ $thisvps = "yes" ]; then
wget http://$confighost/config/linux/vps/my.cnf
fi
service mysqld start
mysqladmin password $SQLPASS
echo "DELETE FROM mysql.user WHERE Password=''" | mysql --password=$SQLPASS

service vsftpd start
service httpd start
service nginx start
service cups stop

if [ $PL = x86_64 ]; then
cd /root
wget http://$confighost/config/linux/ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz
tar zxvf /root/ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz
cd /root/ZendOptimizer-3.3.3-linux-glibc23-x86_64
./install.sh
fi

if [ $PL = i386 ]; then
cd /root
wget http://$confighost/config/linux/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
tar zxvf /root/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.3-linux-glibc23-i386
./install.sh
fi

echo "##############################"
echo "Setup ready!"
echo "FTP username: $USER"
echo "FTP password: $USERPASS"
echo "MySQL root password: $SQLPASS"
echo "##############################"
M
На сайте с 16.09.2009
Offline
278
#1

и во сколько Вы оцениваете стоимость данного ТЗ?

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
PS
На сайте с 25.11.2009
Offline
36
#2
myhand:
и во сколько Вы оцениваете стоимость данного ТЗ?

ХЗ

Скрипт рабочий уже есть, осталось подпилить!

Для специалиста - 10 минут делов! :)

Оплачу реальную стоимость!

Andreyka
На сайте с 19.02.2005
Offline
822
#3

Для специалиста - на 2 минуты работы

И 5 лет на изучение того, чтоб стать специалистом

Во сколько ты оцениваешь 5 лет работы?

Не стоит плодить сущности без необходимости
M
На сайте с 16.09.2009
Offline
278
#4
project-s:
ХЗ
Для специалиста - 10 минут делов! :)
Оплачу реальную стоимость!

А все-ж таки. Время "специалиста" Вы вон лихо оцениваете (не будучи при этом "специалистом", я правильно понимаю?). Может Вас не затруднит и стоимость оценить?

Andreyka:
Для специалиста - на 2 минуты работы

Вы за 2 минуты перепишете нормально это чудо енженерной мысли очередного студента-двоешника? :) Давайте для реализму - на порядок-два время увеличим, ок?

PS
На сайте с 25.11.2009
Offline
36
#5

Andreyka,

У кого есть знания и время сделать это - сами скажут сколько нужно!

project-s добавил 03-02-2011 в 19:53

myhand,

сколько потребуется - столько и заплачу!

project-s добавил 03-02-2011 в 19:54

Andreyka:
И 5 лет на изучение того, чтоб стать специалистом

меня не интересует сколько лет! может этот спец был двоечником и у него год как за три едет! ))

project-s добавил 03-02-2011 в 19:55

и вообще кончайте флудить!

M
На сайте с 16.09.2009
Offline
278
#6
project-s:

сколько потребуется - столько и заплачу!

Где-то 100-200$. Готовы столько потратить? Тогда приходите в ЛС к специалистам.

PS
На сайте с 25.11.2009
Offline
36
#7

myhand,

проходим мимо...

Raistlin
На сайте с 01.02.2010
Offline
247
#8

Это чудо инженерной мысли проще переписать с нуля... От так.

Raistlin добавил 03.02.2011 в 20:34

project-s:
# check to exist homedir
if [ ! -d /home ]; then
echo "/home is no exist! setup canceled."
exit
fi

особо позабавило...

HostAce - Асы в своем деле (http://hostace.ru)
M
На сайте с 16.09.2009
Offline
278
#9
Raistlin:
особо позабавило...

Да?

А меня позабавили совсем другие вещи. Например, chmod 755 на директории данных mysql.

project-s:
myhand,
проходим мимо...

А как-же Ваше "сколько потребуется - столько и заплачу!" ?

M
На сайте с 01.12.2009
Offline
235
#10

Ув. TC вы не туда зашли.

Администратор Linux,Freebsd. построения крупных проектов.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий