Установка OpenNebula 4.10 на сервер CentOS c KVM

Установка OpenNebula 4.10 на сервер CentOS c KVM

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Построение IaaS с использованием популярной и бесплатной облачной платформы OpenNebula.

В примере будет использоваться менеджмент сервер выступающий в тот же момент в качестве хранилища для запущенных ВМ и хранения образов, а также две ноды с ядром QEMU KVM.

  • Frontend server (Management + Storage)
  • Qemu KVM node 1
  • Qemu KVM node 2

Прежде чем начать, рекомендую отключить политику безопасности SElinux на всех серверах.

1
2
3
4
5
6
7
# vi /etc/sysconfig/selinux
...
SELINUX=disabled
...
# setenforce 0
# getenforce
Permissive

Установка на Frontend сервер

Все дальнейшие команды будут выполняться от двух пользователей.
Команды с префиксом # выполняются от root пользователя, а команды с префиксом $ выполняются от пользователя oneadmin

Установка рпозитория

Включаем EPEL репозиторий

Добавляем OpenNebula репозиторий

1
2
3
4
5
6
7
cat << EOT > /etc/yum.repos.d/opennebula.repo
[opennebula]
name=opennebula
baseurl=http://downloads.opennebula.org/repo/4.10/CentOS/6/x86_64/
enabled=1
gpgcheck=0
EOT

Устанавливаем необходимые пакеты

Для полноценной установки OpenNebula необходимо установить пакеты opennebula-server и opennebula-sunstone

1
yum install opennebula-server opennebula-sunstone

Теперь запустим install_gems для установки зависимостей, выберите CentOS, когда об этом спросит установщик

1
2
3
4
5
6
7
8
9
# /usr/share/one/install_gems
lsb_release command not found. If you are using a RedHat based
distribution install redhat-lsb

Select your distribution or press enter to continue without
installing dependencies.

0. Ubuntu/Debian
1. CentOS/RedHat

Конфигурация и старт сервисов

Всего два основных процесса должны быть запущены - основной OpenNebula демон oned и графический интерфейс sunstone

Sunstone слушает только loopback-интерфейс в целях безопасности. Для изменения необходимо отредактировать конфигурационный файл /etc/one/sunstone-server.conf и изменить :host: 127.0.0.1 на :host: 0.0.0.0

Запускаем сервисы

1
2
# service opennebula start
# service opennebula-sunstone start

Конфигурация NFS

Экспортируем папку /var/lib/one/ с frontend сервера на рабочие ноды.
Для этого добавим в файл /etc/exports строку:

1
/var/lib/one/ *(rw,sync,no_subtree_check,root_squash)

Перезапускаем NFS экспорт

1
2
service rpcbind restart
service nfs restart

Настройка публичных SSH-ключей

OpenNebula необходима связь с любым узлом без пароля.

Добавим следующие строки в файл ~/.ssh/config под пользователем oneadmin, на случай если не будет предложено добавить их автоматически в known_hosts.

1
su - oneadmin
1
2
3
4
5
6
cat << EOT > ~/.ssh/config
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
EOT
chmod 600 ~/.ssh/config

Установка на рабочие сервера (node)

Установка репозитория

Добавляем OpenNebula репозиторий

1
2
3
4
5
6
7
# cat << EOT > /etc/yum.repos.d/opennebula.repo
[opennebula]
name=opennebula
baseurl=http://downloads.opennebula.org/repo/CentOS/6/stable/x86_64
enabled=1
gpgcheck=0
EOT

Устанавливаем необходимые пакеты

1
yum install opennebula-node-kvm

Запускаем необходимые сервисы

1
2
service messagebus start
service libvirtd start

Настраиваем сеть

Необходимо настроить мост для наших интерфейсов.

/etc/sysconfig/network-scripts/ifcfg-eth0

1
2
3
4
5
6
DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
BRIDGE=br0

Добавляем новый файл /etc/sysconfig/network-scripts/ifcfg-br0

Для DHCP

1
2
3
4
5
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=dhcp
NM_CONTROLLED=no

Для статичного адреса

1
2
3
4
5
6
7
DEVICE=br0
TYPE=Bridge
IPADDR=<YOUR_IPADDRESS>
NETMASK=<YOUR_NETMASK>
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=no

Перезагружаем сервис

1
service network restart

Настраиваем NFS

Монтируем папку с Frontend сервера. Добавим следующую строку в /etc/fstab

1
192.168.1.1:/var/lib/one/  /var/lib/one/  nfs   soft,intr,rsize=8192,wsize=8192,noauto

Заменим IP-адрес 192.168.1.1 адресом Frontend-сервера.

Монтируем NFS папку

1
mount /var/lib/one/

Могут возникнуть проблемы с манутом из-за iptables, для нормальной работы необходимо внести небольшие правки в работу служб NFS.

Редактируем файл /etc/sysconfig/nfs, а точнее раскомментируем необходимые строчки:

1
2
3
4
5
6
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020

И перезапускаем службу NFS

1
service nfs restart

Вносим правила в Iptables

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-A INPUT -s 10.0.10.0/24 -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT 
-A INPUT -s 10.0.10.0/24 -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A INPUT -s 10.0.10.0/24 -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT
-A INPUT -s 10.0.10.0/24 -p tcp -m state --state NEW -m tcp --dport 32803 -j ACCEPT
-A INPUT -s 10.0.10.0/24 -p udp -m state --state NEW -m udp --dport 32769 -j ACCEPT
-A INPUT -s 10.0.10.0/24 -p tcp -m state --state NEW -m tcp --dport 892 -j ACCEPT
-A INPUT -s 10.0.10.0/24 -p udp -m state --state NEW -m udp --dport 892 -j ACCEPT
-A INPUT -s 10.0.10.0/24 -p tcp -m state --state NEW -m tcp --dport 875 -j ACCEPT
-A INPUT -s 10.0.10.0/24 -p udp -m state --state NEW -m udp --dport 875 -j ACCEPT
-A INPUT -s 10.0.10.0/24 -p tcp -m state --state NEW -m tcp --dport 662 -j ACCEPT
-A INPUT -s 10.0.10.0/24 -p udp -m state --state NEW -m udp --dport 662 -j ACCEPT
-A INPUT -s 10.0.20.0/24 -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT
-A INPUT -s 10.0.20.0/24 -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A INPUT -s 10.0.20.0/24 -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT
-A INPUT -s 10.0.20.0/24 -p tcp -m state --state NEW -m tcp --dport 32803 -j ACCEPT
-A INPUT -s 10.0.20.0/24 -p udp -m state --state NEW -m udp --dport 32769 -j ACCEPT
-A INPUT -s 10.0.20.0/24 -p tcp -m state --state NEW -m tcp --dport 892 -j ACCEPT
-A INPUT -s 10.0.20.0/24 -p udp -m state --state NEW -m udp --dport 892 -j ACCEPT
-A INPUT -s 10.0.20.0/24 -p tcp -m state --state NEW -m tcp --dport 875 -j ACCEPT
-A INPUT -s 10.0.20.0/24 -p udp -m state --state NEW -m udp --dport 875 -j ACCEPT
-A INPUT -s 10.0.20.0/24 -p tcp -m state --state NEW -m tcp --dport 662 -j ACCEPT
-A INPUT -s 10.0.20.0/24 -p udp -m state --state NEW -m udp --dport 662 -j ACCEPT

Подключение

Для входа в графический интерфейс переходим по адресу http://frontend:9869
Пользователь по умолчанию oneadmin, пароль можно найти в файле ~/.one/one_auth из-под пользователя oneadmin, пароль генерируется автоматически при каждой установке.

main_page_opennebula