今回は冗長構成は組まず、OpenStack,OpenContrail共にシングル構成
環境
ベースOS Ubuntu14.04.1
サーバ1 : Keystone, Nova Server, Cinder, Glance
サーバ2 : コンピュートノード
サーバ3 : OpenContrail Neutron
準備
サーバ1にNeutron以外のOpenStackに必要なノードを構築する。
サーバ2にnova-computeだけインストールする。
構築方法は割愛。Neutron以外正常稼動することを確認しておく。NeutronはOpenContrailのFabでインストールするので、インストールする必要はないです。
(日本仮想化技術株式会社のOpenStack構築手順書はすごく参考になります。)
ここからサーバ3にOpenContrailをインストールしますが、Novaのvifドライバーとプラグインのインストールが必要なので、全てのサーバにOpenContrialのリポジトリの登録と、必要なパッケージのダウンロードを行う。
リポジトリの登録
(HOSTS="SV1 SV2 SV3"; for H in ${HOSTS}; do
ssh root@$H <<EOF
apt-get install -y curl;
curl -L http://www.opencontrail.org/ubuntu-repo/repo_key| sudo apt-key add -;
curl -L http://www.opencontrail.org/ubuntu-repo/add-apt-and-update| sudo OPENSTACK=icehouse CONTRAIL=r120 DISTRO=ubuntu1404 sh;
EOF
done;)
プロビジョニングツールをインストールcurl –L http://www.opencontrail.org/ubuntu-repo/install-tools-key-and-prep | sudo HOSTS="SV1 SV2 SV3" sh
fabricのtestbed.pyを編集セットアップするサーバはSV1です
cd /opt/contrail/utils/
vi fabfile/testbeds/testbed.py
testbed.pyを編集します。from fabric.api import env
#Management ip addresses of hosts in the cluster
host1 = 'root@SV1'
host2 = 'root@SV2'
host3 = 'root@SV3'
#External routers if any
#for eg.
#ext_routers = [('mx1', '10.204.216.253')]
ext_routers = []
#Autonomous system number
router_asn = 64512
#Host from which the fab commands are triggered to install and provision
host_build = 'root@SV1'
#Role definition of the hosts.
env.roledefs = {
'all': [host1, host2, host3],
'cfgm': [host1],
'openstack': [host2],
'control': [host1],
'compute': [host3],
'collector': [host1],
'webui': [host2],
'database': [host1],
'build': [host_build],
'storage-master': [host1],
'storage-compute': [host3],
}
env.hostnames = {
'all': ['a0s1', 'a0s2', 'a0s3']
}
#Openstack admin password
env.openstack_admin_password = 'secret123'
env.password = 'secret123'
#Passwords of each host
env.passwords = {
host1: 'secret',
host2: 'secret',
host3: 'secret',
host_build: 'juniper123',
}
#For reimage purpose
env.ostypes = {
host1: 'ubuntu',
host2: 'ubuntu',
host3: 'ubuntu',
}
testbed.pyを作成したら依存ファイルをインストールしてスクリプトを実行SV1にnodejsをインストールする
apt-get install nodejs=0.8.15-1contrail1
SV1の/opt/contrail/utilsディレクトリで以下を実行fab install_without_openstack:manage_nova_compute='no'
fab setup_without_openstack:manage_nova_compute='no'
※コンピュートノードがリブートコンピュートノードの設定を変更
SV2で以下のコマンドを実行
sudo echo 'cgroup_device_acl = [' >> /etc/libvirt/qemu.conf
sudo echo ' "/dev/null", "/dev/full", "/dev/zero",' >> /etc/libvirt/qemu.conf
sudo echo ' "/dev/random", "/dev/urandom",' >> /etc/libvirt/qemu.conf
sudo echo ' "/dev/ptmx", "/dev/kvm", "/dev/kqemu",' >> /etc/libvirt/qemu.conf
sudo echo ' "/dev/rtc", "/dev/hpet","/dev/net/tun",' >> /etc/libvirt/qemu.conf
sudo echo ']' >> /etc/libvirt/qemu.conf
service libvirt-bin restart
openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_auth_url http://:5000/v2.0
service nova-compute restart
Novaサーバーの設定を確認 [DEFAULT]
neutron_url = http://SV3:9696
SV3の部分がサーバ3のIPアドレスになっていることDashboardをOpenContrailに対応させるため、SV1で以下のファイルをダウンロード
apt-get install contrail-openstack-dashboard
Dashboardの設定変更SV1で以下のコマンドを実行
sudo echo "HORIZON_CONFIG['customization_module'] = 'contrail_openstack_dashboard.overrides'" >> /etc/openstack-dashboard/local_settings.py
service apatch2 restart
endpoint-serviceの確認fabスクリプトでプロビジョニングすると、Neutronのregionが"RegionOne"になっている。このためkeystone endpoint-list でNeutronのregionが他のregionと同じか確認する。
regionが異なっているとHorizonでNetwork関係のタブをクリックするとエラーになるため、一度keystone endpoint-deleteで削除して作りなおす。
※OpenContrail1.20 with Ubuntu1404はバグがあるため、Networkingのタブをクリックするとエラーになります。
※11/16highlight.jsを導入しました。
0 件のコメント:
コメントを投稿