【OpenStack】インストール
OpenStack Installation Guide
環境
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"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
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
Network Time Protocol (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 @@
#minsources 2
# 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.
#local stratum 10
起動
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
chrony
OpenStack パッケージ
OpenStack パッケージ
OpenStack packages for RHEL and CentOS
RDO パッケージを使用する場合には EPEL を無効にすることを推奨します。 EPEL のアップデートには後方互換性がないものがあるからです。もしくは、できれば、 yum-versionlock プラグインを使ってパッケージのバージョンを固定してください。
yum/dnf パッケージのバージョンを固定
OpenStack リポジトリーの有効化
Ussuri install
code:shell
# dnf install centos-release-openstack-ussuri
# dnf config-manager --set-enabled PowerTools
RDO リポジトリー
code:shell
# dnf install https://www.rdoproject.org/repos/rdo-release.el8.rpm
パッケージのアップデート
code:shell
# yum upgrade
OpenStack client インストール
code:shell
# yum install python3-openstackclient
OpenStack サービスのセキュリティーポリシーを自動的
code:shell
# yum install openstack-selinux
DB
SQL データベース
SQL database for RHEL and CentOS
インストール
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
メッセージキュー
メッセージキュー
Message queue for RHEL and CentOS
サービス間での操作やステータス情報を調整するためにメッセージキューを使用
インストール
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
Memcached
Identity サービスのサービス用の認証機構は、トークンをキャッシュするために memcached を使用します。 memcached サービスは通常コントローラーノードで実行します。本番環境では、安全性のため、ファイアウォール、認証、暗号化を組み合わせて利用することを推奨します。
Memcached for RHEL and CentOS
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
Etcd
Etcd for RHEL and CentOS
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_CORS=""
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
#ETCD_WAL_DIR=""
-#ETCD_LISTEN_PEER_URLS="http://localhost:2380"
+ETCD_LISTEN_PEER_URLS="http://localhost:2380"
ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"
#ETCD_MAX_SNAPSHOTS="5"
#ETCD_MAX_WALS="5"
-ETCD_NAME="default"
+ETCD_NAME="controller"
#ETCD_SNAPSHOT_COUNT="100000"
#ETCD_HEARTBEAT_INTERVAL="100"
#ETCD_ELECTION_TIMEOUT="1000"
@@ -17,15 +17,15 @@
#ETCD_GRPC_KEEPALIVE_TIMEOUT="20s"
#
#Clustering
-#ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380"
+ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
#ETCD_DISCOVERY=""
#ETCD_DISCOVERY_FALLBACK="proxy"
#ETCD_DISCOVERY_PROXY=""
#ETCD_DISCOVERY_SRV=""
-#ETCD_INITIAL_CLUSTER="default=http://localhost:2380"
-#ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
-#ETCD_INITIAL_CLUSTER_STATE="new"
+ETCD_INITIAL_CLUSTER="controller=http://localhost:2380"
+ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
+ETCD_INITIAL_CLUSTER_STATE="new"
#ETCD_STRICT_RECONFIG_CHECK="true"
#ETCD_ENABLE_V2="true"
#
自動起動設定と起動
code:shell
# systemctl enable etcd
# systemctl start etcd
Install OpenStack services
Install OpenStack services
Minimal deployment for Ussuri
Identity
keystone installation for Ussuri
Image
Glance
Placement
Placement
Compute
Nova
Networking
Neutron
Dashboard
Horizon
table:コンポーネント
Block Storage service Cinder
インスタンスの起動
インスタンスの起動
仮想ネットワークの作成
プロバイダーネットワーク
ネットワークの作成
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 の作成
フレーバー 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 |
+--------------------------------------+----------------------+--------+--------------------------+--------+---------+
#OpenStack