Openstack/Howto

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску

1. Установим и настроим MySQL сервер:

apt-get install MySQL-server
sed -i 's/127.0.0.1/0.0.0.0/g' /var/lib/mysql/my.cnf
service mysql restart

2. Установим RabbitMQ сервер:

apt-get install rabbitmq-server

3. Установим и настроим OpenStack Keystone сервер:

apt-get install openstack-keystone
mysql -u root -p (добавим пользователя для MySQL)
> CREATE DATABASE keystone;
> GRANT ALL ON keystone.* TO 'keystone_user'@'%' IDENTIFIED BY 'keystone_pass';
> FLUSH PRIVILEGES;
> quit;
vim /etc/keystone/keystone.conf
> admin_token = secret_token
> connection = mysql://keystone_user:keystone_pass@hostname/keystone
service openstack-keystone restart
keystone-manage db_sync

Воспользуемся скриптами настройки сервиса и отредактируем их под себя (изменим переменные $HOST_IP, $EXT_HOST_IP$ и т.д.):

wget https://raw.github.com/nimbula/OpenStack-Folsom-Install-guide/master/Keystone_Scripts/Without%20Quantum/keystone_basic.sh
wget https://raw.github.com/nimbula/OpenStack-Folsom-Install-guide/master/Keystone_Scripts/Without%20Quantum/keystone_endpoints_basic.sh
chmod +x keystone_basic.sh
chmod +x keystone_endpoints_basic.sh
./keystone_basic.sh
./keystone_endpoints_basic.sh

Добавим необходимые переменные из данных файлов в .bashrc:

export SERVICE_ENDPOINT="http://hostname:35357/v2.0"
export SERVICE_TOKEN=secret_token
export OS_NO_CACHE=1
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin_pass
export OS_AUTH_URL="http://hostname:5000/v2.0/"

Протестируем

apt-get install curl openssl
curl http://hostname:35357/v2.0/endpoints -H 'x-auth-token: secret_token' | python -m json.tool

4. Установим и настроим OpenStack Glance сервер:

apt-get install openstack-glance
mysql -u root -p (добавим пользователя для MySQL)
> CREATE DATABASE glance;
> GRANT ALL ON glance.* TO 'glance_user'@'%' IDENTIFIED BY 'glance_pass';
> FLUSH PRIVILEGES;
> quit;
vim /etc/glance/glance-api-paste.ini (vim etc/glance/glance-registry-paste.ini)
> [filter:authtoken]
> paste.filter_factory = keystone.middleware.auth_token:filter_factory
> auth_host = hostname
> auth_port = 35357
> auth_protocol = http
> admin_tenant_name = service
> admin_user = glance
> admin_password = service_pass
vim /etc/glance/glance-api.conf (vim /etc/glance/glance-registry.conf)
> sql_connection = mysql://glance_user:glance_pass@hostname/glance
> [paste_deploy]
> flavor = keystone
service openstack-glance-api restart
service openstack-glance-registry restart
glance-manage --db_auto_create db_sync

Протестируем:

glance index

5. Установим и настроим OpenStack Nova сервер:

apt-get install openstack-nova-api openstack-nova-compute openstack-nova-network openstack-nova-scheduer openstack-nova-console
gpasswd -a nova wheel
groupadd qemu
gpasswd -a nova qemu

mysql -u root -p (добавим пользователя для MySQL)
> CREATE DATABASE nova CHARACTER SET latin1 COLLATE latin1_general_ci;
> GRANT ALL ON nova.* TO 'nova_user'@'%' IDENTIFIED BY 'nova_pass';
> FLUSH PRIVILEGES;
> quit;
vim /etc/nova/api-paste.conf
> [filter:authtoken]
> paste.filter_factory = keystone.middleware.auth_token:filter_factory
> auth_host = hostname
> auth_port = 35357
> auth_protocol = http
> admin_tenant_name = service
> admin_user = glance
> admin_password = service_pass
> signing_dirname = /tmp/keystone-signing-nova
vim /etc/nova/nova.conf
> my_ip = hostname
> flat_interface = eth1 (интерфейс, связывающий виртуальные машины)
> public_interface = eth0 (публичный интерфейс сервера)
> flat_network_bridge = br100
> rabbit_virtual_host = /
> [keystone_authtoken]
> admin_tenant_name = service
> admin_user = nova
> admin_password = service_pass

service libvirtd restart
service openstack-nova-api restart
service openstack-nova-network restart
service openstack-nova-compute restart
service openstack-nova-scheduler restart
service openstack-nova-console restart
service openstack-nova-consoleauth restart

Убедимся, что сервисы работают правильно (State - ":-)" ):

nova-manage service list

Если сервис Compute располагается отдельно от остальных сервисов, то необходимо дополнительно настроить сеть:

echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-openstack-ipv4-forwarding.conf
sysctl -p /etc/sysctl.d/99-openstack-ipv4-forwarding.conf

6. Установим и настроим OpenStack Dashboard:

Установим Django версии 1.4:

git clone git://git.altlinux.org/people/real/packages/python-module-django.git
cd python-module-django/ && git checkout 1.4.5-alt1 && gear-rpm -ba
rpm -Uhv [путь до python-module-django-1.4.5] --oldpackage

Установим веб-интерфейс:

git clone git://git.etersoft.ru/people/piastry/packages/python-module-django-horizon.git
cd python-module-django-horizon && gear-rpm -ba
rpm -Uhv [путь до python-module-django-horizon] [путь до opentack-dashboard]
vim /etc/openstack-dashboard/local_settings
> OPENSTACK_HOST = "hostname"

Проверим работоспособность, набрав в браузере http://hostname/dashboard.