OpenStackのキーストアコンポーネントをデプロイします

OpenStack-Keystoneコンポーネントのデプロイ

予防

== OpenStackコンポーネントのインストール順序==
1、Keystone(apache)
2、glance
3、nova
4、neutron

openstackコンポーネントをデプロイするときは、最初に認証サービス(keystone)をインストールする必要があり、認証サービスはApacheによって実行されます。インストールが完了したら、アカウントを作成および管理し、ミラーサービス(glance)をインストールしてコンピューティングできます。サービス(nova)、および
コンピューティングサービスとネットワークサービスが管理とクライアントに分割されているネットワークサービス(Neutron)であるため、openstackの管理にコンピューティングサービスとネットワークサービスの管理をインストールし、コンピューティングサービスのクライアントをインストールする必要があります最後に、ダッシュボードサービスがインストールされます。openstackのさまざまなコンポーネントのAPIは、apacheを介して実行されます。openstack
の管理側は、作成プロセスと仮想マシンの管理
。openstack管理側を介した仮想マシンの作成に関連するデータは、最終的にmysql(mariadb)Mediumに記録されます。ノードノードにはデータベースにデータを書き込む権限がなく、コントロールエンドのみに権限があります。ノードノードとコントロールエンド間の通信はrabbitmqを介した間接通信であり、ノードノードはrabbitmqをリッスンし、コントロールエンドもrabbitmqをリッスンし、コントロールエンドは仮想マシンを作成します。コマンドはrabbitmqに送信されます。そして、rabbitmqで指定されたキューを監視するノードノードがメッセージを受信し、仮想マシンを作成します。

1つは、データベースインスタンスとデータベースユーザーを作成する

[root@ct ~]# mysql -u root -p
MariaDB [(none)]> create database keystone;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit

ここに画像の説明を挿入します

2つ目は、キーストーン、データベース、Apacheをインストールして構成することです。

keystone、httpd、mod_wsgiをインストールします

mod_wsgiパッケージの機能は、apacheがpythonプログラムのコンポーネントをプロキシできるようにすることです。APIを含むopenstackのすべてのコンポーネントはpythonで記述されていますが、アクセスはapacheであり、apacheは処理のためにリクエストをpythonに転送します。これらのパッケージは、controller.nodeにのみインストールされます。

[root@ct ~]# yum -y install openstack-keystone httpd mod_wsgi
[root@ct ~]# cp -a /etc/keystone/keystone.conf{,.bak}
[root@ct ~]# grep -Ev "^$|#" /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf

ここに画像の説明を挿入します

ここに画像の説明を挿入します
pymysqlモジュールを介してmysqlにアクセスし、ユーザー名とパスワード、データベースのドメイン名、およびデータベース名を指定します

[root@ct ~]# openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@ct/keystone

ここに画像の説明を挿入します

トークンのプロバイダーを指定します。プロバイダーはKeystone自体です。

[root@ct ~]# openstack-config --set /etc/keystone/keystone.conf token provider fernet

Fernet:安全なメッセージング形式

3.認証サービスデータベースを初期化します

su -s /bin/sh -c "keystone-manage db_sync" keystone

ここに画像の説明を挿入します

4.fernetキーリポジトリを初期化します

(次のコマンドは2つのキーを生成し、生成されたキーはデータを暗号化するために/ etc / keystone /ディレクトリに配置されます)

[root@ct keystone]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
[root@ct keystone]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

ここに画像の説明を挿入します

5.ブートストラップ認証サービスを構成します

[root@ct ~]# keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://ct:5000/v3/ \
--bootstrap-internal-url http://ct:5000/v3/ \
--bootstrap-public-url http://ct:5000/v3/ \
--bootstrap-region-id RegionOne		#指定一个区域名称

ここに画像の説明を挿入します

#このステップはopenstackを初期化することであり、openstackのadminユーザーの情報はmysqlのuserテーブルに書き込まれ、urlなどの他の情報はmysqlの関連テーブルに書き込まれます;
admin-urlこれは、仮想マシンの拡張または削除を管理するために使用される管理ネットワーク(パブリッククラウドの内部openstack管理ネットワークなど)です。パブリックネットワークと管理ネットワークが同じネットワークである場合、ビジネスボリュームが大規模な、管理ネットワークが必要とされているので、OpenStackのマシンの制御端を介して仮想マシンを展開することは不可能になります。
internal-urlそのようなストレージ、データベース、飼育係、および他のミドルウェアにアクセスする仮想マシンとして、データ伝送のための内部ネットワークである。このネットワークは、外部ネットワークによってアクセスすることができず、内部アクセスのためにのみ使用することができる
public-urlこれは、ユーザーがアクセスできるパブリックネットワークです(パブリッククラウドなど)#ただし、この環境にはこれらのネットワークがなく、同じネットワークが共有されます
ポート5000は、Keystoneが認証用に提供するポートです。
#haproxyサーバーにリッスンを追加する
必要があります#さまざまなネットワークURLで、コントローラーノードのドメイン名(通常はhaproxyのvipのドメイン名(高可用性モード))を指定する必要があります

6. ApacheHTTPサーバーを構成します

echo "ServerName controller" >> /etc/httpd/conf/httpd.conf

ここに画像の説明を挿入します

7.構成ファイルを作成します

#mod_wsgiパッケージをインストールすると、wsgi-keystone.confファイルが生成されます。仮想ホストが構成され、ファイル内でポート5000が監視されます。Mod_wsgiはPythonのゲートウェイです。

[root@ct ~]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

ここに画像の説明を挿入します

8.サービスをオンにします

[root@ct conf.d]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@ct conf.d]# systemctl start httpd

ここに画像の説明を挿入します

9.管理者アカウントの環境変数を構成します

#これらの環境変数はロールとプロジェクトの作成に使用されますが、ロールとプロジェクトの作成には認証情報が必要であるため、ユーザー名やパスワードなどの認証情報は環境変数を介して宣言され、openstackがログインして認証に合格したことを欺きます。プロジェクトとロールを作成できます。つまり、管理ユーザーの認証情報は、openstackの非対話型操作を実現するために環境変数を宣言することにより、検証のためにopenstackに渡されます。

[root@ct ~]# cat >> ~/.bashrc << EOF
export OS_USERNAME=admin			#控制台登陆用户名
export OS_PASSWORD=ADMIN_PASS	#控制台登陆密码
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://ct:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
EOF

[root@ct ~]# source ~/.bashrc

cat >>〜/ .bashrc << EOF
export OS_USERNAME = admin
export OS_PASSWORD = ADMIN_PASS
export OS_PROJECT_NAME = admin
export OS_USER_DOMAIN_NAME = Default
export OS_PROJECT_DOMAIN_NAME = Default
export OS_AUTH_URL = http:// ct:5000 / v3
export OS_IDENTITY_API_VERSION = 3
export OS_IMAGE_API_VERSION = 2
EOF

ここに画像の説明を挿入します

ここに画像の説明を挿入します

10. OpenStackドメイン、プロジェクト、ユーザー、およびロールを作成します

プロジェクト(プロジェクト)を作成し、指定されたドメイン(ドメイン)で作成し、説明情報を指定します。プロジェクト名はサービスです(openstackドメインリストを使用してクエリを実行できます)

[root@ct ~]# openstack project create --domain default --description "Service Project" service 

ここに画像の説明を挿入します
ロールを作成します(openstackロールリストを使用して表示できます)

adminは管理者であり、
memberはテナント
ユーザーです:user

[root@ct ~]# openstack role create user

ここに画像の説明を挿入します

openstackの役割のリストを表示する

[root@ct ~]# openstack role list

ここに画像の説明を挿入します

パスワードを指定せずにトークン情報を取得できるか確認する(検証・認証サービス)

[root@ct ~]#  openstack token issue

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/weixin_51622156/article/details/114841456