【OpenStack】インストール
環境
code:shell
$ date; cat /etc/os-release; uname -a
2020年 7月 27日 月曜日 17:45:03 JST
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"
Linux reno 4.18.0-147.8.1.el8_1.x86_64 #1 SMP Thu Apr 9 13:49:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux Ussuri をインストールする
NTP
インストール
code:shell
# dnf install chrony
設定
code:shell
# cp -a /etc/chrony.conf{,.$(date +%Y%m%d)}
# ls -lart /etc/chrony.conf{,.$(date +%Y%m%d)}
-rw-r--r--. 1 root root 1085 May 10 2019 /etc/chrony.conf.20200727
-rw-r--r--. 1 root root 1085 May 10 2019 /etc/chrony.conf
# vim /etc/chrony.conf
# diff -u /etc/chrony.conf{.$(date +%Y%m%d),}
--- /etc/chrony.conf.20200727 2019-05-10 19:22:57.000000000 +0900
+++ /etc/chrony.conf 2020-07-27 18:44:09.371138106 +0900
@@ -20,7 +20,7 @@
# Allow NTP client access from local network.
-#allow 192.168.0.0/16
+allow 192.168.0.0/16
# Serve time even if not synchronized to a time source.
起動
code:shell
# systemctl enable chronyd.service
# systemctl start chronyd.service
# ps auxfww | grep chronyd chrony 26742 0.0 0.0 107408 2572 ? S 18:45 0:00 /usr/sbin/chronyd
OpenStack パッケージ
RDO パッケージを使用する場合には EPEL を無効にすることを推奨します。 EPEL のアップデートには後方互換性がないものがあるからです。もしくは、できれば、 yum-versionlock プラグインを使ってパッケージのバージョンを固定してください。
OpenStack リポジトリーの有効化
Ussuri install
code:shell
# dnf install centos-release-openstack-ussuri
# dnf config-manager --set-enabled PowerTools
RDO リポジトリー
code:shell
パッケージのアップデート
code:shell
# yum upgrade
OpenStack client インストール
code:shell
# yum install python3-openstackclient
OpenStack サービスのセキュリティーポリシーを自動的
code:shell
# yum install openstack-selinux
DB
インストール
code:shell
# dnf install mariadb mariadb-server python3-PyMySQL
/etc/my.cnf.d/openstack.cnf の作成
code:conf
bind-address = 127.0.0.1
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
自動起動
code:shell
# systemctl enable mariadb.service
起動
code:shell
# systemctl start mariadb.service
初期設定
code:shell
# mysql_secure_installation
メッセージキュー
サービス間での操作やステータス情報を調整するためにメッセージキューを使用
インストール
code:shell
# yum install rabbitmq-server
自動起動からの起動
code:shell
# systemctl enable rabbitmq-server.service
# systemctl start rabbitmq-server.service
名前で接続することもあるので必要に応じて /etc/hosts を書き換える
ユーザの追加
RABBIT_PASS を適当に変更
code:shell
# rabbitmqctl add_user openstack RABBIT_PASS
openstack ユーザーに対して、設定、書き込み、読み出しアクセスを許可
code:shell
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Memcached
Identity サービスのサービス用の認証機構は、トークンをキャッシュするために memcached を使用します。 memcached サービスは通常コントローラーノードで実行します。本番環境では、安全性のため、ファイアウォール、認証、暗号化を組み合わせて利用することを推奨します。
install
code:shell
# dnf install memcached python3-memcached
/etc/sysconfig/memcached
コントローラーノードからアクセスできるように設定する
OPTIONS="-l 127.0.0.1,::1,controller"
自動起動設定と起動
code:shell
# systemctl enable memcached.service
# systemctl start memcached.service
Etcd
install
code:shell
# dnf install etcd
設定ファイル
code:shell
# diff -u /etc/etcd/etcd.conf.org /etc/etcd/etcd.conf
--- /etc/etcd/etcd.conf.org 2020-01-29 01:51:46.000000000 +0900
+++ /etc/etcd/etcd.conf 2020-07-27 22:24:34.538785983 +0900
@@ -2,11 +2,11 @@
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
-ETCD_NAME="default"
+ETCD_NAME="controller"
@@ -17,15 +17,15 @@
#
-#ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
-#ETCD_INITIAL_CLUSTER_STATE="new"
+ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
+ETCD_INITIAL_CLUSTER_STATE="new"
#
自動起動設定と起動
code:shell
# systemctl enable etcd
# systemctl start etcd
Install OpenStack services
Identity
Image
Placement
Compute
Networking
Dashboard
table:コンポーネント
インスタンスの起動
仮想ネットワークの作成
ネットワークの作成
code:shell
# openstack network create --share --external \
--provider-physical-network provider \
--provider-network-type flat provider
サブネット作成
code:shell
# openstack subnet create --network provider \
--allocation-pool start=192.168.11.200,end=192.168.11.254 \
--dns-nameserver 192.168.11.1 --gateway 192.168.11.1 \
--subnet-range 192.168.11.0/24 provider
セフルサービスネットワーク
ネットワーク作成
code:shell
# openstack network create selfservice
サブネット作成
code:shell
# openstack subnet create --network selfservice --dns-nameserver 192.168.11.1 --gateway 172.16.0.1 --subnet-range 172.16.0.0/24 selfservice
ルータの作成
code:shell
# openstack router create router
ルーターのインターフェースとして、セルフサービスネットワークのサブネットを追加
code:shell
# openstack router add subnet router selfservice
ルーターにおいて、ゲートウェイをプロバイダーネットワークに設定
code:shell
# openstack router set router --external-gateway provider
動作確認
ネットワーク空間の表示
1 つの qrouter 名前空間と 2 つの qdhcp 名前空間
code:shell
# ip netns
qrouter-f4857ca8-1584-4530-82d5-eed2044cbd19 (id: 2)
qdhcp-752eb8e7-bd1f-4c8d-af16-fa01b2f326fe (id: 1)
qdhcp-2b2d2a75-3f60-443c-8910-ba5c7567534e (id: 0)
ルーターのポートを一覧表示して、プロバイダーネットワークのゲートウェイ IP アドレスを確認
code:shell
# openstack port list --router router
フレーバー m1.nano の作成
作成
code:shell
# openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
キーペアの作成して、公開鍵を追加
code:shell
# ssh-keygen -q -N ""
# openstack keypair create --public-key /root/.ssh/test-openstack.pub mykey
確認
code:shell
# openstack keypair list
+-------+-------------------------------------------------+
| Name | Fingerprint |
+-------+-------------------------------------------------+
| mykey | 10:22:b1:c1:a1:d5:66:b5:e3:03:b6:b0:b9:a6:0c:3c |
+-------+-------------------------------------------------+
セキュリティーグループルールの追加
ルールをセキュリティグループ default に追加
ICMP を許可
code:shell
# openstack security group rule create --proto icmp default
SSH を許可
code:shell
# openstack security group rule create --proto tcp --dst-port 22 default
起動
なんか失敗した
利用可能なフレーバー一覧表示
code:shell
# openstack flavor list
+----+---------+-----+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+---------+-----+------+-----------+-------+-----------+
| 0 | m1.nano | 64 | 1 | 0 | 1 | True |
+----+---------+-----+------+-----------+-------+-----------+
利用可能なイメージ一覧表示
code:shell
# openstack image list
+--------------------------------------+--------+--------+
| ID | Name | Status |
+--------------------------------------+--------+--------+
| 1451dfe4-5719-48e6-afb8-7dc0f4bc7a1e | cirros | active |
+--------------------------------------+--------+--------+
利用可能なネットワーク一覧表示
code:shell
# openstack network list
+--------------------------------------+-------------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+-------------+--------------------------------------+
| 2b2d2a75-3f60-443c-8910-ba5c7567534e | provider | d7fe9338-3daf-4745-ba69-032af95454d4 |
| 752eb8e7-bd1f-4c8d-af16-fa01b2f326fe | selfservice | 366b8a02-963d-4482-a878-4ab1b69f5f3b |
+--------------------------------------+-------------+--------------------------------------+
利用可能なセキュリティグループ表示
code:shell
# openstack security group list
+--------------------------------------+---------+------------------------+----------------------------------+------+
| ID | Name | Description | Project | Tags |
+--------------------------------------+---------+------------------------+----------------------------------+------+
| 5aa43e96-ca09-4a13-a6aa-3f0b2d3890df | default | Default security group | 2cf6c24a6adc48439e29797bfddee5da | [] |
+--------------------------------------+---------+------------------------+----------------------------------+------+
起動
code:shell
# openstack server create --flavor m1.nano --image cirros --nic net-id=2b2d2a75-3f60-443c-8910-ba5c7567534e --security-group default --key-name mykey provider-instance
インスタンスの状態を確認
code:shell
# openstack server list
+--------------------------------------+-------------------+--------+-------------------------+--------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-------------------+--------+-------------------------+--------+---------+
| c0839ace-32d2-4aa7-a23f-a275c5d87ba4 | provider-instance | ACTIVE | provider=192.168.11.232 | cirros | m1.nano |
+--------------------------------------+-------------------+--------+-------------------------+--------+---------+
途中まで一緒
インスタンスの起動
code:shell
# openstack server create --flavor m1.nano --image cirros --nic net-id=752eb8e7-bd1f-4c8d-af16-fa01b2f326fe --security-group default --key-name mykey selfservice-instance
起動状態の確認
code:shell
# openstack server list
+--------------------------------------+----------------------+--------+--------------------------+--------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+----------------------+--------+--------------------------+--------+---------+
| e912ee68-249a-485e-8c79-4031365ad507 | selfservice-instance | ACTIVE | selfservice=172.16.0.223 | cirros | m1.nano |
+--------------------------------------+----------------------+--------+--------------------------+--------+---------+