OpenStack Install (compat Openstack-havana 2013.2-1.el6)
Openstackの公式ドキュメントから、実際に使用したインストールコマンドをメモに起こしました。
想定環境はCentOS6.4(minimal)にインスタンスボリュームはNFS環境。
1. Local settings
MySQL
Localinstallするのでダウンロードしておくこと。
yum localinstall MySQL-shared-compat-5.6.14-1.linux_glibc2.5.x86_64.rpm
yum localinstall MySQL-server-5.6.14-1.linux_glibc2.5.x86_64.rpm
yum localinstall MySQL-server-5.6.14-1.linux_glibc2.5.x86_64.rpm
yum localinstall MySQL-client-5.6.14-1.linux_glibc2.5.x86_64.rpm
service mysql start
chkconfig mysql on
mysql_secure_installation
Install Repo
yum install http://repos.fedorapeople.org/repos/openstack/openstack-havana/rdo-release-havana-6.noarch.rpm
yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Install Openstack-util,Apache Qpid
yum install openstack-utils
yum -y install qpid-cpp-server memcached
qpid config
vi /etc/qpidd.conf
auth=no
service qpidd start
chkconfig qpidd on
2. Install Keystone
yum install openstack-keystone python-keystoneclient
DB config
openstack-config --set /etc/keystone/keystone.conf \
sql connection mysql://keystone:keystone@localhost/keystone
openstack-db --init --service keystone --password keystone
Create Token
ADMIN_TOKEN=$(openssl rand -hex 10)
echo $ADMIN_TOKEN
openstack-config --set /etc/keystone/keystone.conf DEFAULT \
admin_token $ADMIN_TOKEN
keystone-manage pki_setup --keystone-user keystone --keystone-group keystone
chown -R keystone:keystone /etc/keystone/* /var/log/keystone/keystone.log
service openstack-keystone start
chkconfig openstack-keystone on
Define users, tenants, and roles
export OS_SERVICE_TOKEN=$ADMIN_TOKEN
export OS_SERVICE_ENDPOINT=http://openstack_host:35357/v2.0
keystone tenant-create --name=admin --description="Admin Tenant"
keystone tenant-create --name=service --description="Service Tenant"
keystone user-create --name=admin --pass=admin
keystone role-create --name=admin
Create a service entry for the Identity Service.
keystone service-create --name=keystone --type=identity --description="Keystone Identity Service"
keystone endpoint-create \
--service-id=above_display_sid \
--publicurl=http://openstack_host:5000/v2.0 \
--internalurl=http://openstack_host:5000/v2.0 \
--adminurl=http://openstack_host:35357/v2.0
3. Install the Image Service
DB config
openstack-config --set /etc/glance/glance-api.conf \
DEFAULT sql_connection mysql://glance:glance@localhost/glance
openstack-config --set /etc/glance/glance-registry.conf \
DEFAULT sql_connection mysql://glance:glance@localhost:/glance
openstack-db --init --service glance --password glance
Create a user entry for the Image Service
keystone user-create --name=glance --pass=glance
keystone user-role-add --user=glance --tenant=service --role=admin
Config authtoken
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
auth_host openstack_host
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
admin_user glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
admin_tenant_name service
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
admin_password glance
openstack-config --set /etc/glance/glance-registry.conf \
keystone_authtoken auth_host openstack_host
openstack-config --set /etc/glance/glance-registry.conf \
keystone_authtoken admin_user glance
openstack-config --set /etc/glance/glance-registry.conf \
keystone_authtoken admin_tenant_name service
openstack-config --set /etc/glance/glance-registry.conf \
keystone_authtoken admin_password glance
Config authtoken (glance-api-paste)
cp /usr/share/glance/glance-api-dist-paste.ini /etc/glance/glance-api-paste.ini
cp /usr/share/glance/glance-registry-dist-paste.ini /etc/glance/glance-registry-paste.ini
vi /etc/glance/glance-api-paste.ini
vi /etc/glance/glance-registry-paste.ini
- [filter:authtoken]
[filter:authtoken]
paste.filter_factory=keystoneclient.middleware.auth_token:filter_factory
auth_host=controller
admin_user=glance
admin_tenant_name=service
admin_password=GLANCE_PASS
Create a service entry for the Identity Service.
keystone service-create --name=glance --type=image \
--description="Glance Image Service"
keystone endpoint-create \
--service-id=above_display_sid \
--publicurl=http://openstack_host:9292 \
--internalurl=http://openstack_host:9292 \
--adminurl=http://openstack_host:9292
service openstack-glance-api start
service openstack-glance-registry start
chkconfig openstack-glance-api on
chkconfig openstack-glance-registry on
Verify
mkdir images
cd images/
wget http://cdn.download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-disk.img
glance image-create --name="CirrOS 0.3.1" --disk-format=qcow2 \
--container-format=bare --is-public=true < cirros-0.3.1-x86_64-disk.img
4. Install the Compute controller services
yum install openstack-nova python-novaclient
Setting DB
openstack-config --set /etc/nova/nova.conf \
database connection mysql://nova:nova@localhost/nova
openstack-db --init --service nova --password NOVA_DBPASS
Config
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip nova_ip_address
openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen nova_ip_address
openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address nova_ip_address
Create a user entry for the Compute Service.
keystone user-create --name=nova --pass=nova
keystone user-role-add --user=nova --tenant=service --role=admin
Config Auth
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/nova/nova.conf DEFAULT auth_host openstack_host
openstack-config --set /etc/nova/nova.conf DEFAULT admin_user nova
openstack-config --set /etc/nova/nova.conf DEFAULT admin_tenant_name service
openstack-config --set /etc/nova/nova.conf DEFAULT admin_password nova
edit api e.g. https://bugs.launchpad.net/nova/+bug/1237334
vi /etc/nova/nova.conf
# a list of APIs to enable by default (list value)
#enabled_apis=ec2,osapi_compute,metadata
enabled_apis=ec2,osapi_compute
Create a service entry for the Identity Service.
keystone service-create --name=nova --type=compute \
--description="Nova Compute service"
keystone endpoint-create \
--service-id=cb15dabf3b164ddda40e74bc32bcbe85 \
--publicurl=http://openstack01:8774/v2/%\(tenant_id\)s \
--internalurl=http://openstack01:8774/v2/%\(tenant_id\)s \
--adminurl=http://openstack01:8774/v2/%\(tenant_id\)s
Config qpid
openstack-config --set /etc/nova/nova.conf \
DEFAULT rpc_backend nova.openstack.common.rpc.impl_qpid
openstack-config --set /etc/nova/nova.conf DEFAULT qpid_hostname openstack01
service openstack-nova-api start
service openstack-nova-cert start
service openstack-nova-consoleauth start
service openstack-nova-scheduler start
service openstack-nova-conductor start
service openstack-nova-novncproxy start
chkconfig openstack-nova-api on
chkconfig openstack-nova-cert on
chkconfig openstack-nova-consoleauth on
chkconfig openstack-nova-scheduler on
chkconfig openstack-nova-conductor on
chkconfig openstack-nova-novncproxy on
Configure a Compute node
service libvirtd start
service messagebus start
chkconfig libvirtd on
chkconfig messagebus on
service openstack-nova-compute start
chkconfig openstack-nova-compute on
Config network
openstack-config --set /etc/nova/nova.conf DEFAULT \
network_manager nova.network.manager.FlatDHCPManager
openstack-config --set /etc/nova/nova.conf DEFAULT \
firewall_driver nova.virt.libvirt.firewall.IptablesFirewallDriver
openstack-config --set /etc/nova/nova.conf DEFAULT network_size 254
openstack-config --set /etc/nova/nova.conf DEFAULT allow_same_net_traffic False
openstack-config --set /etc/nova/nova.conf DEFAULT multi_host True
openstack-config --set /etc/nova/nova.conf DEFAULT send_arp_for_ha True
openstack-config --set /etc/nova/nova.conf DEFAULT share_dhcp_address True
openstack-config --set /etc/nova/nova.conf DEFAULT force_dhcp_release True
openstack-config --set /etc/nova/nova.conf DEFAULT flat_interface eth1
openstack-config --set /etc/nova/nova.conf DEFAULT flat_network_bridge br100
openstack-config --set /etc/nova/nova.conf DEFAULT public_interface eth1
service openstack-nova-metadata-api start
chkconfig openstack-nova-metadata-api on
service openstack-nova-network start
chkconfig openstack-nova-network on
omake
for i in cert compute conductor console consoleauth metadata-api novncproxy network; do
service openstack-nova-$i restart
done
Create nova-network
source keystonerc
nova network-create vmnet --fixed-range-v4=10.0.0.0/24 \
--bridge-interface=br100 --multi-host=T
# backup iptables (or stop iptables)
iptables-save > iptables-origin
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 35357 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8774 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9292 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5000 -j ACCEPT
5. Install the dashboard
yum install memcached python-memcached python-pbr mod_wsgi openstack-dashboard
Config dashboard
vi /etc/openstack-dashboard/local_settings
- Memcache
CACHES = {
'default': {
'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION' : '127.0.0.1:11211'
}
}
- Dashboard ACL
ALLOWED_HOSTS = ['localhost', 'my-desktop']
- Compute Node
OPENSTACK_HOST = "openstack_host"
service httpd start
service memcached start
chkconfig httpd on
chkconfig memcached on
6. Install and configure a Block Storage Service controller
yum install openstack-cinder openstack-utils openstack-selinux
Setting DB
openstack-config --set /etc/cinder/cinder.conf \
database connection mysql://cinder:cinder@localhost/cinder
openstack-db --init --service cinder --password cinder
Create a user entry for the Block storage Service.
keystone user-create --name=cinder --pass=cinder
keystone user-role-add --user=cinder --tenant=service --role=admin
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rpc_backend cinder.openstack.common.rpc.impl_qpid
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT qpid_hostname openstack01
Create a service entry for the Block storage Service.
keystone service-create --name=cinder --type=volume \
--description="Cinder Volume Service"
keystone endpoint-create \
--service-id=above_display_sid \
--publicurl=http://openstack01:8776/v1/%\(tenant_id\)s \
--internalurl=http://openstack01:8776/v1/%\(tenant_id\)s \
--adminurl=http://openstack01:8776/v1/%\(tenant_id\)s
keystone endpoint-create \
--service-id=above_display_sid \
--publicurl=http://openstack01:8776/v2/%\(tenant_id\)s \
--internalurl=http://openstack01:8776/v2/%\(tenant_id\)s \
--adminurl=http://openstack01:8776/v2/%\(tenant_id\)s
Setting NFS
Driver(nova.conf)
vi /etc/nova/nova.conf
# Libvirt handlers for remote volumes. (list value)
libvirt_volume_drivers=iscsi=nova.virt.libvirt.volume.LibvirtISCSIVolumeDriver,iser=nova.virt.libvirt.volume.LibvirtISERVolumeDriver,local=nova.virt.libvirt.volume.LibvirtVolumeDriver,fake=nova.virt.libvirt.volume.LibvirtFakeVolumeDriver,rbd=nova.virt.libvirt.volume.LibvirtNetVolumeDriver,sheepdog=nova.virt.libvirt.volume.LibvirtNetVolumeDriver,nfs=nova.virt.libvirt.volume.LibvirtNFSVolumeDriver,aoe=nova.virt.libvirt.volume.LibvirtAOEVolumeDriver,glusterfs=nova.virt.libvirt.volume.LibvirtGlusterfsVolumeDriver,fibre_channel=nova.virt.libvirt.volume.LibvirtFibreChannelVolumeDriver,scality=nova.virt.libvirt.volume.LibvirtScalityVolumeDriver
Disk list
vi /etc/cinder/shares
NFS_STORAGE:/openstack
Mount
vi /etc/cinder/cinder.conf
- Disk list
# File with the list of available nfs shares (string value)
nfs_shares_config=/etc/cinder/shares
- Mount point
# Base dir containing mount points for nfs shares. (string
# value)
nfs_mount_point_base=/var/lib/cinder/nfs
Create rootwrap.d
mkdir -p /etc/cinder/rootwrap.d
chgrp -R cinder /etc/cinder/rootwrap.d
vi /etc/cinder/rootwrap.d/volume.filters
[Filters]
# cinder/volume/nfs.py
stat: CommandFilter, /usr/bin/stat, root
mount: CommandFilter, /bin/mount, root
df: CommandFilter, /bin/df, root
truncate: CommandFilter, /usr/bin/truncate, root
chmod: CommandFilter, /bin/chmod, root
rm: CommandFilter, /bin/rm, root
service openstack-cinder-api start
service openstack-cinder-scheduler start
chkconfig openstack-cinder-api on
chkconfig openstack-cinder-scheduler on
service openstack-cinder-volume start
chkconfig openstack-cinder-volume on