DockerhubにアップロードされているOpenstack OcataとOpenContrail4.0のコンテナイメージを利用して、インストールする方法を紹介します。
今回の構成はUbuntu16.04.2をKVM上に4つ作成し、それぞれ以下のような役割になっています。作成したVMは2つ以上のNICを設定してください。(Openstack kollaの仕様)
作業はすべてkolla1から行います。
** KVMを利用する場合、ホストマシンでnestedを有効にしVMのCPUアトリビュートでVMXを有効にしてください。
構成:
kolla1(10.84.50.117): Openstack Controller/Ansible
kolla2(10.84.50.118): Contrail Controller
kolla3(10.84.50.119): Compute node
kolla4(10.84.50.120): Compute node
手順:
パスワードを変更したい場合はこのファイルを変更してください
依存ファイルのインストールとAnsible作業時にssh keyを無視する変数をExport
次回、OpenContrail管理外に接続するためのSimple Gatewayの設定と動作確認を紹介します。
参考リンク
https://gitlab.com/gokulpch/OpenContrail-Kolla/blob/master/README.md
作業はすべてkolla1から行います。
** KVMを利用する場合、ホストマシンでnestedを有効にしVMのCPUアトリビュートでVMXを有効にしてください。
構成:
kolla1(10.84.50.117): Openstack Controller/Ansible
kolla2(10.84.50.118): Contrail Controller
kolla3(10.84.50.119): Compute node
kolla4(10.84.50.120): Compute node
手順:
- 事前準備
- Ansible Playbookのダウンロードと設定
- インストール
- インストール後作業
- 動作確認
1.事前準備
今回はkolla1より各サーバにRootアクセスして設定するため、証明書を発行し対象サーバに登録します。
Kolla1で実行
Ansibleを使うための事前準備
Kolla1で実行
Kolla1で実行
ssh-keygen -t rsa
すべてのノードでに対して実行ssh-copy-id -i ~/.ssh/id_rsa.pub lab@10.84.50.117
ssh -t lab@10.84.50.117 'sudo mkdir /root/.ssh'
ssh -t lab@10.84.50.117 'sudo cp /home/lab/.ssh/authorized_keys /root/.ssh/authorized_keys'
Ansibleを使うための事前準備
Kolla1で実行
apt update
apt install python-pip sshpass
pip install -U pip
pip install -U ansible
pip install pyOpenSSL==16.2.0
すべてのノードに対して実行ssh -t root@10.84.50.117 'apt-get -y install python-simplejson'
2.Ansible Playbookのダウンロードと設定
githubからインストール用ファイルをダウンロードします。
git clone https://github.com/gokulpch/OpenContrail-Kolla.git
ダウンロードしたファイルは2つあり、contrail-ansibleはOpenContrial用、kolla-ansibleはOpentack用です。Openstackの設定ファイルの変更
OpenContrail-Kolla/kolla-ansible/etc/kolla/globals.ymlの修正
以下の4項目を修正します。network_interface: "ens3"
kolla_internal_vip_address: "10.84.50.117"
contrail_api_interface_address: "10.84.50.118"
neutron_external_interface: "ens4"
- network_interface:実際に使用するVMのNICを設定
- kolla_internal_vip_address: Kolla1のens3のIPアドレスを設定
- contrail_api_interface_address: kolla2のens3のIPアドレスを設定
- neutron_external_interface: kolla1のNICを設定(ダミー)
OpenContrail-Kolla/kolla-ansible/etc/kolla/passwords.ymlの修正
各種コンポーネントのパスワードが設定されています。(デフォルトではcontrail1)パスワードを変更したい場合はこのファイルを変更してください
OpenContrail-Kolla/kolla-ansible/ansible/inventory/multinodeの修正
[control] [network] [compute] [monitoring] [storage]の項目を修正してください。以下の例ではホスト名になっていますが、ホスト名を使う場合、IPアドレスが引けることが条件です。[control]
kolla1
[network]
kolla1
[compute]
kolla3
kolla4
[monitoring]
kolla1
[storage]
kolla1
Contrailの設定ファイルの変更
OpenContrail-Kolla/contrail-ansible/playbooks/inventory/my-inventory/hostsの修正
[contrail-controllers] [contrail-analytics] [contrail-compute] [openstack-controllers]の項目を修正してください。ホスト名を設定すると動作しないので必ずIPアドレスを設定してください。
[contrail-controllers]
10.84.50.118
[contrail-analyticsdb]
10.84.50.118
[contrail-analytics]
10.84.50.118
[contrail-compute]
10.84.50.119
10.84.50.120
[openstack-controllers]
10.84.50.117
OpenContrail-Kolla/contrail-ansible/playbooks/inventory/my-inventory/group_vars/all.yml の修正
以下の5項目を修正します
ansible_ssh_private_key_file: ~/.ssh/id_rsa
global_config: { external_rabbitmq_servers: 10.84.50.117 }
rabbitmq_config: { user: openstack, password: contrail1 }
keystone_config: {ip: 10.84.50.117, admin_password: contrail1, auth_protocol: http}
vrouter_physical_interface: ens3
- ansible_ssh_private_key_file:証明書のログインを指定(コメントアウトを外す)
- global_config: RabbitMQのアドレスを設定。
- rabbitmq_config: RabbitMQのパスワードを設定。passwords.ymlを変更した場合はここも変更
- keystone_config: KeysoneにアクセスするAdminパスワードを設定。passwords.ymlを変更した場合はここも変更
- vrouter_physical_interface: ContrailのvRouterが使用するNICを設定。ComputeノードごとにNIC名が違う場合はhostsに個別に設定。
3.インストール
Openstackインストールの事前準備
ssh -t root@10.84.50.117 'apt-get -y install python-oslo-config'
export ANSIBLE_HOST_KEY_CHECKING=False
Openstackのインストール
cd OpenContrail-Kolla/kolla-ansible/ansible/
ansible-playbook -i inventory/multinode -e @../etc/kolla/globals.yml -e @../etc/kolla/passwords.yml -e action=bootstrap-servers kolla-host.yml
ansible-playbook -i inventory/multinode -e @../etc/kolla/globals.yml -e @../etc/kolla/passwords.yml -e action=deploy site.yml
OpenContrailのインストールの事前準備
Dockerのインストールssh -t root@10.84.50.118 'curl -sSL https://get.docker.io | bash'
OpenContrailのインストール
cd OpenContrail-Kolla/contrail-ansible/playbooks/
ansible -i inventory/my-inventory -m shell -a 'apt-get install -y ntp' all
ansible-playbook -i inventory/my-inventory site.yml
compute nodeのリブート
ssh -t root@10.84.50.119 reboot
ssh -t root@10.84.50.120 reboot
4.インストール後作業
horizonのバグFix対応
docker exec -i horizon sudo sed -i -e 's:/usr/share/openstack-dashboard/static:/var/lib/openstack-dashboard/static:g' /etc/apache2/conf-enabled/000-default.conf
docker exec -i horizon /usr/share/openstack-dashboard/manage.py collectstatic --noinput
docker exec -i horizon /usr/share/openstack-dashboard/manage.py compress
docker exec -i horizon sudo service apache2 reload
openstackrc の作成
echo 'export OS_USERNAME=admin
export OS_PASSWORD=contrail1
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://10.84.50.117:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2' > openstackrc
Openstack clientのインストール
pip install python-openstackclient
flavorの作成
source openstackrc
openstack flavor create --id 1 --disk 1 --ram 512 --vcpus 1 --public m1.tiny
openstack flavor create --id 2 --disk 20 --ram 2048 --vcpus 1 --public m1.small
openstack flavor create --id 3 --disk 40 --ram 4096 --vcpus 2 --public m1.medium
openstack flavor create --id 4 --disk 80 --ram 8192 --vcpus 2 --public m1.large
openstack flavor create --id 5 --disk 160 --ram 16384 --vcpus 4 --public m1.xlarge
5.動作確認
openstack network listを発行し、以下のように3つのネットワークが返ってきたらOpenstackとOpenContrailの設定は終了です。+--------------------------------------+-------------------------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+-------------------------+--------------------------------------+
| a5432e6b-0155-4b13-abe8-e6290f6dc9fe | __link_local__ | |
| 5a58e2d9-88b1-4ff2-9e0f-e0ed5e4e72ce | default-virtual-network | |
| 65549c94-5ffc-4b30-9025-00a54813a695 | ip-fabric | |
+--------------------------------------+-------------------------+--------------------------------------+
次回、OpenContrail管理外に接続するためのSimple Gatewayの設定と動作確認を紹介します。
参考リンク
https://gitlab.com/gokulpch/OpenContrail-Kolla/blob/master/README.md
0 件のコメント:
コメントを投稿