このエントリーをはてなブックマークに追加

1.2.4. Openstackを構成するコンポーネントのコンフィグ

Openstackを利用するためのコンポーネントのコンフィグを行います。 IPアドレス(192.168.10.30)及びホスト名(stack01)は適宜変更が必要です。

1.2.4.1. 必要なディレクトリの作成

stackというユーザで利用するようにしています。まず、Openstackが利用するディレクトリを作成します。/optに纏めたかったのでそうしてます。

$ sudo useradd stack
$ sudo mkdir /var/lock/nova /var/log/nova /etc/nova /etc/glance /etc/keystone
$ sudo mkdir  /var/lib/nova /var/log/glance /var/lib/glance /var/lib/glance/images /var/lib/glance/image-cache /var/lib/glance/scrubber
$ sudo mkdir /opt/stack /opt/stack/keystone /opt/stack/glance /opt/stack/nova /opt/stack/horizon /opt/stack/nova/instances
$ sudo mkdir /opt/stack/glance/images /opt/stack/glance/image-cache /opt/stack/scrubber

1.2.4.2. オーナー及びグループの変更

作成したディレクトリのユーザを変更します。

$ sudo chown stack:stack /var/lock/nova /var/log/nova /etc/nova /etc/glance /etc/keystone -R
$ sudo chown stack:stack /opt/glance /opt/keystone /opt/nova /opt/python-novaclient -R
$ sudo chown stack:stack /var/lib/nova /var/log/glance /var/lib/glance /opt/stack/nova /var/lib/glance /var/lib/glance/images /var/lib/glance/image-cache /var/lib/glance/scrubber -R
$ sudo chown stack:stack /opt/stack/ -R
$ sudo chmod 775 /opt/stack/ /opt/stack/nova/ /opt/stack/glance /opt/stack/keystone /var/lib/nova /opt/stack/nova/instances
$ sudo chmod 775 /opt/stack/glance/images /opt/stack/glance/image-cache /opt/stack/scrubber

1.2.4.3. Nova

仮想マシンを管理するためのコンポーネントです。

$ cat << NOVA_SETUP | sudo tee /etc/nova/nova.conf > /dev/null
#nova.conf
#--my_ip=192.168.10.30
--verbose=true
--allow_admin_api=true
--use_deprecated_auth=false
--api_paste_config=/etc/nova/nova-api-paste.ini
--instances_path=/opt/stack/nova/instances

#logging and other administrative
--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/usr/local/bin/nova-dhcpbridge
--logdir=/opt/stack/nova
--state_path=/var/lib/nova
--lock_path=/var/lock/nova

#network
--network_manager=nova.network.manager.FlatDHCPManager
--public_interface=eth0
--flat_interface=eth0
--flat_network_bridge=br100
--fixed_range=10.0.0.0/8
--flat_network_dhcp_start=10.0.0.2
--network_size=255
--flat_injected=false
--use_ipv6=false

#vnc
#--vnc_enabled=True
#--vncproxy_host=192.168.10.30
--vncproxy_url=http://192.168.10.30:6080
#--vnc_console_proxy_url=http://192.168.10.30:6080
--vncproxy_wwwroot=/opt/noVNC/
#--vncproxy_manager=nova.vnc.auth.VNCProxyAuthManager

#scheduler
--scheduler_driver=nova.scheduler.simple.SimpleScheduler

#object
--s3_host=stack01
--use_cow_images

#glance
--image_service=nova.image.glance.GlanceImageService
--glance_api_servers=stack01:9292

#rabbit
--rabbit_host=stack01

#nova database
--sql_connection=mysql://nova:password@stack01/nova

#volumes
--volume_group=nova-volumes
--aoe_eth_dev=eth0
--iscsi_ip_prefix=10.

#keystone
--keystone_ec2_url=http://stack01:5000/v2.0/ec2tokens
--osapi_extensions_path=/opt/openstackx/extensions
NOVA_SETUP

1.2.4.4. NovaCompute

仮想マシンを何で作成するのかを設定します。LXCだと自分の場合は何故か動かないです。。

$ cat << 'NOVA_COMPUTE' | sudo tee /etc/nova/nova-compute.conf > /dev/null
--libvirt_type=kvm
NOVA_COMPUTE

1.2.4.5. NovaAPI

EC2とKeystoneを連携するためKeystoneに含まれるコンフィグをコピーして変更します。最新版ではexamplesがありませんでした。

$ sudo cp -a /opt/keystone/examples/paste/nova-api-paste.ini /etc/nova
$ sed -i 's#127.0.0.1#stack01#' /etc/nova/nova-api-paste.ini

1.2.4.6. Glance

Keystoneと連携するためKeystone側のコンフィグも利用します。こちらも最新版ではExamplesとかはありませんでした。

$ sudo cp -a /opt/glance/etc/* /etc/glance
$ sudo cp -a /opt/keystone/examples/paste/glance* /etc/glance
$ sudo sed  -i 's#log_file = /var/log/glance/api.log#log_file = /opt/stack/glance/api.log#' /etc/glance/glance-api.conf
$ sudo sed -i 's#127.0.0.1#stack01#' /etc/glance/glance-api.conf
$ sudo sed -i 's#/var/lib#/opt/stack#' /etc/glance/glance-api.conf
$ sudo sed  -i 's#log_file = /var/log/glance/registry.log#log_file = /opt/stack/glance/registry.log#' /etc/glance/glance-registry.conf
$ sudo sed -i 's#sql_connection = sqlite:///glance.sqlite#sql_connection = mysql://glance:password@stack01/glance#' /etc/glance/glance-registry.conf
$ sudo sed -i 's#127.0.0.1#stack01#' /etc/glance/glance-registry.conf

1.2.4.7. Keystone

sqliteからMySQLを利用するための変更だけ行います。

$ sudo cp -p /opt/keystone/etc/* /etc/keystone
$ sudo sed -i 's#default_store = sqlite#default_store = mysql#' /etc/keystone/keystone.conf
$ sudo sed -i 's#sql_connection = sqlite:///keystone.db#sql_connection = mysql://keystone:password@stack01/keystone#' /etc/keystone/keystone.conf

1.2.4.8. Horizon

データベース接続部分とQuantumの利用をしない設定を行います。

$ sudo cp /opt/horizon/openstack-dashboard/local/local_settings.py.example /opt/horizon/openstack-dashboard/local/local_settings.py
$ sudo sed -i '9,14s/^/#/' /opt/horizon/openstack-dashboard/local/local_settings.py
$ sudo sed -i 's/QUANTUM_ENABLED = True/QUANTUM_ENABLED = False/' /opt/horizon/openstack-dashboard/local/local_settings.py
$ sudo sed -i 's/127.0.0.1/stack01/' /opt/horizon/openstack-dashboard/local/local_settings.py
$ sudo sed -i 's/localhost/stack01/' /opt/horizon/openstack-dashboard/local/local_settings.py
$ sudo sed -i "14a\\
DATABASES = {\n\
    'default': {\n\
        'ENGINE': 'django.db.backends.mysql',\n\
        'NAME': 'horizon',\n\
        'USER': 'horizon',\n\
        'PASSWORD': 'password',\n\
        'HOST': 'stack01',\n\
        'default-character-set': 'utf8'\n\
    }\n\
}" \
/opt/horizon/openstack-dashboard/local/local_settings.py

各コンポーネントの設定は終わりです