Openstack/Howto
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.