Установка Centos 6 для биллинга Mikbill

Centos на данный момент является наиболее популярной системой для работы сервера биллинга Mikbill. Этому способствовала колоссальная отказоустойчивость, скорость работы, низкие требования к железу сервера.
Загрузка образа
Скачать можно тут (64bit архитектура) http://isoredirect.centos.org/centos/6/isos/x86_64/
Заходим, выбираем ближайшее к нам зеркало и скачиваем файл.
Образа minimal вполне достаточно.

Винчестер для системы
Минимальные требования под сервер mikbill.
Для удобства достаточно 60+ GB*2 HDD в raid 1 для системы и 60+ GB SSD для базы mysql.
Установка
Разворачиваем образ на флешке или CD-диске например программой UltraISO.
Запускаем установку
1. В окне приветствия выбираем Install or upgrade an existing system

2. Далее будет предложение проверить диск Centos на ошибки. Я его пропускаю (Skip)

3. На следующем экране просто жмем Next

4. Далее выбор языка. Если ставите для биллинга Mikbill - советую оставить по умолчанию, English. Выбираем язык, жмем Next

5. Далее выбор раскладки. Настройка аналогична предыдущей, если ставите для Mikbill, оставляем настройку по умолчанию U. S. English. Выбираем, жмем Next

6. Выбираем первый пункт Basic Storage Devices. Второй пункт нужен для удаленной установки.

7. Далее предупреждение, что будут удалены все данные на выбранном устройстве. Подтверждаем удаление, жмем "Yes, discard any data"

8. Далее присваиваем собственное имя сервера, по которому он будет идентифицироваться в сети. Сеть можно настроить потом, жмем Next

9. Далее важная настройка времени, которую частенько опускают и к ней приходиться возвращаться. Выбираем свой пояс на карте или из выпадающего списка ниже. Также смотрим чтобы не стояла галочка на "System clock uses UTC"

10. Вводим и подтверждаем пароль от учетки root


Если все равно хотите использовать простой пароль жмите "Use Anyway", но для боевого сервера учетка root должна быть со сложным паролем.
11. Далее настройка дискового пространства.
Тут два варианта (для сервера mikbill рекомендуется второй вариант, с двумя физическими дисками):
11.1 - если 1 диск и не хотим вручную разбивать дисковое пространство Выбираем "Use ALL Space" и жмем Next (переходим к следующему пункту установки 12)

11.2 - если будем вручную разбивать диск или будем собирать raid 1 из двух дисков жмем "Create Custom Layout"
Сразу приведу примерную логику разбиения диска исходя из их размеров:
/swap 8-16 GB достаточно
/ -20-50 GB (корень, выставляем размер в зависимости от размера диска)
/home -10-50 GB (для самой работы тут место не нужно, но обычно сюда настраивается локальное резервное копирование, которому хоть 10 GB надо оставить)
/var -остаток (самый важный пункт, тут мало не будет, здесь и сам Mikbill и база, если не монтируется другой диск, и логи)
/tmp -4 GB
/boot от 500 MB (на небольшом диске) до 4 GB можно (если проблем с местом на диске нет)

Пример разбивки вручную с одним диском:

RAID 1
11.2.1 Ниже приведу пример настройки raid 1. Изначально видим два наших диска, если на дисках есть разбивка, то выбираем разделы и удаляем (Delete)

11.2.2 Выбираем Create - Raid Partition - Create

11.2.3 Это будет наш раздел /boot. Выбираем sda, выставляем Size - размер раздела /boot.

Тоже самое делаем для sdb. Размеры, конечно, должны совпадать.

11.2.4 Собираем остальное пространство в raid. Отличие - в настройках Raid Partition каждого диска выбираем использовать оставшееся место (Fill to maximum allowable size)

Также делаем для раздела диска sdb.В результате видим такое разбиение

11.2.5 Собираем раздел /boot. Для этого выбираем Create - RAID Device - Create

11.2.6 Настраиваем /boot
Mount Point - /boot
File System Type - ext2 (лучше для boot чем eth4)
RAID Level - RAID1
RAID Members - выбираем наши разделы под boot на обоих дисках

11.2.7 Далее настраиваем оставшееся пространство. Create - RAID - Device Create

11.2.8 Тут выбираем:
File System Type - physical volume (LVM)
RAID Level - RAID1
RAID MEMBERS - оставшиеся разделы на обоих дисках

Вот так должно получиться:

11.2.9 Разбиваем LVM. Выбираем наш раздел LVM - Create - LVM Volume Group

11.2.10 Добавляем точки монтирования

swap

/home

Корень /

/tmp

/var. Size - выбираем остаток.

Вот так должно получиться в итоге:

Решение ошибки "you have not created /boot/efi partition"
sda (first drive)
- sda1 - FAT32 - /boot/efi - in firmware boot menu as "CentOS"
- sda2 - Linux software RAID - /boot
- sda3 - Linux software RAID - /
sdb (second drive)
- sdb1 - FAT32 - copy of /boot/efi - in firmware boot menu as "CentOS Backup"
- sdb2 - Linux software RAID - /boot
- sdb3 - Linux software RAID - / # dd if=/dev/sda1 of=/dev/sdb1
# efibootmgr –create –disk /dev/sdb –label "CentOS Backup" –load "\\EFI\\redhat\\grub.efi"
11.2.11 Далее будет выбор точки автозапуска системы, не забываем настроить. Выбираем Change device - наш раздел, куда мы настраивали /boot. В данном примере это /dev/md0

12. Подтверждаем запись на диск, жмем "Write changes to disk"

13. Ждем окончания установки. В конце будет преложено перезапустить сервер и войти в консоль.


Настройка сети
Днс
echo "nameserver 8.8.8.8" >>/etc/resolv.conf
Вместо гугловского 8.8.8.8 можно и желательной свой, поближе.
Настройки IP
быстрые, до первой перезагрузки
ifconfig eth0 10.10.0.2 route add default gw 10.10.0.1
где eth0 - WAN-интерфейс
(все интерфейсы можно посмотреть командой ifconfig -a)
10.10.0.2 - IP сервера
10.10.0.1 - шлюз сервера
Постоянная настройка
vi /etc/sysconfig/network-scripts/ifcfg-eth0
"i" режим ввода
ONBOOT=yes BOOTPROTO=none IPADDR=10.10.0.2 NETMASK=255.255.255.0 GATEWAY=10.10.0.1 DNS1=8.8.8.8 DNS2=8.8.4.4
выйти из редактирования файла с сохранением, одной командой:
ESC :wq Enter
Далее
reboot
или проще, без перезагрузки
service network restart
Настройки сервера
Отключаем IPv6 в Centos
для начала /etc/sysconfig/network задаем
NETWORKING_IPV6=no
и потом в /etc/modprobe.conf добавляем
alias ipv6 off alias net-pf-10 off
выполняем команду /sbin/chkconfig ip6tables off и делаем reboot сервера. Все IPv6 выключен.
Настройки ssh
Добавить пользователя и закрыть доступ по ssh по root и поменять порт
adduser -m login passwd login
nano /etc/ssh/sshd_config
Port 22 Protocol 2 PermitRootLogin no MaxAuthTries