Вход:  Пароль:  
FreeSource: PavelSarabeev ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия PavelSarabeev за 2009-01-30 15:35:58..

Настройка сервера в продакшен – задача

Описание этапов подъема сервера для работы в продакшен. Здесь будет описано нечто похожее на http://freesource.info/wiki/SergeyLebedev/EisSystem?v=1ave&search=eis гдето в упрощенном где-то в усложненном варианте
Данная страничка – это место где я собираю советы по настройке Alt Linux.

Этапы внедрения

1) NTP – Синхронизация времени, чтобы все было четко.
2) DNS – Без него вообще ничего работать не будет, по любому свой нужен
3) Firewall – Разрешить что нужно, запретить все остальное
4) Nginx – Куда-ж в современном WEB без него
5) Apache – Аналогично
6) MYSQL – Пока оно, потом Postgre
7) SVN – Проекты удобно хранить в нем

apt

Список установленных пакетов можно посмотреть rpm -qa

Реализация

Про разбиение диска здесь http://freesource.info/wiki/AltLinux/Sisyphus/admin/RazbienieDiska

  1. Решить проблему с ошибкой конфигурации сети при установке. Иногда у меня вылазит ошибка конфигурирования сетевых адаптеров при инсталляции дистрибутива и вместо маски /24 вылезает маска /32. В результате имеем ошибку с роутингом.
  2. Настройка ssh/pam для комфортной работы

Если вылазит ошибка Unable to check blacklist for host key
поставить
apt-cache search ssh blacklist
openssh-blacklist – Blacklist file for openssh
openssh-blacklist-utils – Blacklist file utils for openssh
Конкретно о настройке ssh читать здесь http://freesource.info/wiki/AltLinux/Dokumentacija/NastrojjkaSSH?v=9xm&search=ssh Мне представляется хорошей идеей изменение порта ssh и запрет входа не по ключу (Password Authentication? no)
Комфортность работы заключается в том чтобы часть пользователей, конкретно входящие во wheel (gpasswd -a username wheel) могли делать su без пароля для этого настраиваем /etc/pam.d/su


  1. Локальный репозиторий, автоматическое обновление репозитория sisyphus-mirror, обновление репозитория в контейнерах и на HN.

prerelease:
Для 101 контейнера

и настроить скрипты монтировки демонтировки если одинаковые лучше их создать симлинками ln -s std.mount 101.mount


draft:
ls /var/lib/vz/private/
mkdir -p /var/lib/vz/root/53/var/something
mount -o bind /var/something /var/lib/vz/root/53/var/something
mkdir vz-scripts
cd /etc/vz/conf/
vim 53.mount
vim 53.mount
vim 53.umount
vim 53.mount
vim 53.umount
ls
chmod +x *
ls -la
vzctl restart 053


Чистка локального репозитория (http://freesource.info/wiki/AltLinux/Sisyphus/admin/Mirror?v=sa0&)


  1. Настройка контейнеров http://freesource.info/wiki/AltLinux/Dokumentacija/OpenVZ?v=dlw#altlinux/dokumentacija/openvz/nfs&
  2. Готовые шаблоны скорее всего не подойдут, придется настроить spt и hasher – как сделать написано тут http://freesource.info/wiki/AltLinux/Dokumentacija/Hasher?v=7mp&search=hasher
  3. Настраиваем точки входа как на хостинге http://freesource.info/wiki/AltLinux/Dokumentacija/OpenVZ/Sharedhosting?v=of7#altlinux/dokumentacija/openvz&
Правильная команда для установки ip адреса

Поставить proftpd недостаточно, нужно егео еще и включить /etc/xinetd.d/proftpd

Сеть

не забываем настроить сеть http://freesource.info/wiki/AltLinux/Dokumentacija/NastrojjkaVPN?v=326&search=pppoe
и включить ip_forwarding


не забываем в правила файрвола дописать VE которым можно наружу ходить
$IPTABLES -A POSTROUTING -s 172.16.1.103 -j SNAT --to-source $WAN0_IP -t nat


Настройка БД

Все это знают, просто чтобы было в одном месте. Ясен пень что после подъема контейнера с БД нужно запустить скриптик /usr/bin/mysql_secure_installation
после этого нужно настроить пользователя
Unable to find proper charset from system locale, setting 'latin1'.


Помни My SQL? у требуется DNS. бегом читать ман на тему работы привилегий
да и еще, по умолчанию networking выключен


Если все шоколадно и базы только в UTF-8 в my.cnf


настройка Postgre

http://wiki.etersoft.ru/PostgreSQL тут

Про nginx

http://freesource.info/wiki/AntiApache?show_comments=1#comments
http://freesource.info/wiki/Stat'i/TracNginx?v=z77&search=nginx


не помешает убрать версию из заголовка http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#server_tokens server_tokens на данный момент есть только в 0.6.x


./configure --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin --error-log-path=/var/log/nginx/error_log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx/ --user=_nginx --group=_nginx --http-log-path=/var/log/nginx/access_log --http-client-body-temp-path=/var/spool/nginx/tmp/client --http-proxy-temp-path=/var/spool/nginx/tmp/proxy --http-fastcgi-temp-path=/var/spool/nginx/tmp/fastcgi --with-http_ssl_module

про php

поставить expose_php = Off – не нужно светить версию php и убрать блокировку нужных функций.


Ругань на PDO лечиться упоминанием о нем в одном месте а не во всех модулях БД

NTP

По умолчанию система ставит openntpd (он не поддерживает статистику), лучше использовать ntpd
получить статистику:
ntpq -c peers -n сервер
ntpdc -c sysinfo -n сервер
Для того чтобы можно было синхронизироваться с сервером stratum сервер должен быть меньше 16
проверять синхронизацию можно командой ntpdate -d

мегажесть

Задача в сети весит сервер (сервер_1)- открыт только один порт ssh – нужно пробросить Apache с этого сервера на другой сервер (Сервер_2)
Выполняем команды на втором сервере


В результате обращение по http://ip_адрес_которым_прикидываемся:9090 приводит на http://сервер_1:80

на пересечении nginx и svn

http://freesource.info/wiki/Stat'i/TracNginx?v=z77&search=nginx

настройка DNS

Описана здесь http://freesource.info/wiki/SergeyLebedev/EisSystem/DnsSystemEIS?v=7kl&search=named
Для DNS слейва есть отдельный пакет

firewall

Отдельная тема, но вообще для начала все хранится в /etc/rc.d/rc.firewall

Перенос контейнера

q: О синхронизации контейнеров, можно рабочий контейнер склонировать вот так? http://wiki.openvz.org/Cloning_VE
a: rsync -vaP --numeric-ids --delete-after и так пару раз перетащит тебе контейнер куда угодно,
то же яйца вид сбоку по той сцылке, что ты прислал – только наш метод универсальнее


Настройка клиентов, для подключения к svn

Для настройки работы с svn через ssh в конфигуационный файл /.subversion/config в секции туннели внести строчку
ssh = $SSH ssh -l programmer -i /home/пользователь/.ssh/id_dsa_svn
где /home/пользователь/.ssh/id_dsa_svn – путь к приватному ключу, публичный ключ которого прописан на svn сервере
-l programmer – имя реального пользователя на котрого биндятся пользователи svn


После этого репозиторий будет доступен svn ls svn+ssh://адрес_сервера/projects/test/

Сборка своего софта

нужно поставить
make
gcc
gcc-c++
gpp


почта в контейнерах

если в отдельном контейнере поднят почтовый сервер остальные настраиваем
apt-get install mailutils
apt-get install postfix
apt-get install procmail
[root@dns /]# cat /etc/postfix/aliases
root: postmaster@mail.local

IPMI

Чтобы заработал
надо загрузить модули ipmi_si ipmi_devintf ipmi_msghandler
http://www.altlinux.org/IPMI

Zabbix

./configure --enable-server --with-mysql --with-net-snmp --enable-static --enable-server --enable-proxy --enable-agent

Hardening

Запретить вход root даже из консоли
# vipw


и вместо root:x:0:0::/root:/bin/bash написать root:*:0:0::/root:/bin/bash


Возможно где-то здесь написан бред, просьба сообщить мне об этом любым доступным способом

например в комментариях или irc`е


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]