$ sudo apt-get install cinder-api cinder-scheduler cinder-volume \
python-cinderclient tgt -y
$ sudo cp -a /etc/cinder /etc/cinder_bak
$ sudo vi /etc/cinder/cinder.conf
[DEFAULT]
#misc
verbose = True
auth_strategy = keystone
rootwrap_config = /etc/cinder/rootwrap.conf
api_paste_config = /etc/cinder/api-paste.ini
auth_strategy = keystone
state_path = /var/lib/cinder
volumes_dir = /var/lib/cinder/volumes
#log
log_file=cinder.log
log_dir=/var/log/cinder
#osapi
osapi_volume_extension = cinder.api.openstack.volume.contrib.standard_extensions
#rabbit
rabbit_host=stack01
rabbit_virtual_host=/nova
rabbit_userid=nova
rabbit_password=password
#sql
sql_connection = mysql://cinder:password@stack01/cinder?charset=utf8
#volume
volume_name_template = volume-%s
volume_group = nova-volumes
#iscsi
iscsi_helper = tgtadm
$ sudo vi /etc/cinder/api-paste.ini
[filter:authtoken]
paste.filter_factory = keystone.middleware.auth_token:filter_factory
service_protocol = http
service_host = stack01
service_port = 5000
auth_host = stack01
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = cinder
admin_password = password
$ MYSQL_PASS_CINDER=password
$ NOVA_CONTOLLER_HOSTNAME=stack01
$ mysql -uroot -pnova -e "drop database if exists cinder;"
$ mysql -uroot -pnova -e "create database cinder character set utf8;"
$ mysql -uroot -pnova -e "grant all privileges on cinder.* to 'cinder'@'%' identified by '$MYSQL_PASS_CINDER';"
$ mysql -uroot -pnova -e "grant all privileges on cinder.* to 'cinder'@'localhost' identified by '$MYSQL_PASS_CINDER';"
$ mysql -uroot -pnova -e "grant all privileges on cinder.* to 'cinder'@'$NOVA_CONTOLLER_HOSTNAME' identified by '$MYSQL_PASS_CINDER';"
$ sudo cinder-manage db sync
2012-10-30 13:14:06 13867 DEBUG cinder.utils [-] backend <module 'cinder.db.sqlalchemy.migration' from '/usr/lib/python2.7/dist-packages/cinder/db/sqlalchemy/migration.pyc'> __get_backend /usr/lib/python2.7/dist-packages/cinder/utils.py:469
$ CONTROLLER_HOST=stack01
$ export ADMIN_TOKEN=ADMIN
$ export SERVICE_TOKEN=$ADMIN_TOKEN
$ export OS_USERNAME=admin
$ export OS_PASSWORD=password
$ export OS_TENANT_NAME=admin
$ export OS_AUTH_URL=http://$CONTROLLER_HOST:35357/v2.0/
$ export SERVICE_ENDPOINT=http://$CONTROLLER_HOST:35357/v2.0/
$ keystone endpoint-delete $(keystone endpoint-list | grep 8776 | awk '{print $2}')
Endpoint has been deleted.
$ keystone service-delete $(keystone service-list | grep volume | awk '{print $2}')
Cinder用のUser、Servvice、Endpointを追加
SERVICE_PASSWORD=password
SERVICE_HOST=stack01
function get_id () {
echo `"$@" | awk '/ id / { print $4 }'`
}
ADMIN_ROLE=$(keystone role-list | grep " admin" | awk '{print $2}')
SERVICE_TENANT=$(keystone tenant-list | grep service | awk '{print $2}')
CINDER_USER=$(get_id keystone user-create --name=cinder \
--pass="$SERVICE_PASSWORD" \
--tenant_id $SERVICE_TENANT \
--email=cinder@example.com)
keystone user-role-add --tenant_id $SERVICE_TENANT \
--user_id $CINDER_USER \
--role_id $ADMIN_ROLE
CINDER_SERVICE=$(get_id keystone service-create \
--name=cinder \
--type=volume \
--description="Cinder Service")
keystone endpoint-create \
--region RegionOne \
--service_id $CINDER_SERVICE \
--publicurl "http://$SERVICE_HOST:8776/v1/\$(tenant_id)s" \
--adminurl "http://$SERVICE_HOST:8776/v1/\$(tenant_id)s" \
--internalurl "http://$SERVICE_HOST:8776/v1/\$(tenant_id)s"
$ sudo chown cinder:cinder /var/log/cinder/*
$ for i in volume api scheduler
do
sudo start cinder-$i ; sudo restart cinder-$i
done
$ export OS_USERNAME=admin
$ export OS_PASSWORD=password
$ export OS_TENANT_NAME=admin
$ export OS_AUTH_URL=http://stack01:35357/v2.0/
ここで、作成追加出来たとしても安心せずインスタンスにボリュームをアタッチできるとこまでは確認しておいたほうがよいでしょう。
$ cinder list
$ cinder create --display_name cinder_test 1
+--------------------------------------+-----------+--------------+------+-------------+-------------+
| ID | Status | Display Name | Size | Volume Type | Attached to |
+--------------------------------------+-----------+--------------+------+-------------+-------------+
| 2e97bf88-c17f-4d69-b4e4-9781620abb0a | available | cinder_test | 1 | None | |
+--------------------------------------+-----------+--------------+------+-------------+-------------+
$ cinder delete $(cinder list | grep cinder_test | awk '{print $2}')
$ cinder list