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 openstack-nova-volume
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

На серверах nova-compute установим open-iscsi

apt-get install open-iscsi 

и запустим

service open-iscsi restart

Далее на сервере с nova-volume заведём раздел с LVM, в котором создадим группу nova-volumes:

pvcreate [ПУТЬ ДО БЛОЧНОГО УСТРОЙСТВА]
vgcreate nova-volumes [ПУТЬ ДО БЛОЧНОГО УСТРОЙСТВА]
service tgt restart
service openstack-nova-volume restart

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

nova-manage service list

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

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:

apt-get install openstack-dashboard
vim /etc/openstack-dashboard/local_settings
> OPENSTACK_HOST = "hostname"

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