OpenStack——Keystone

1つは、キーストーンIDサービスです。

Keystone(openstack identity service)は、openstackでセキュリティ認証を提供する独立したモジュールであり、主にopenstackユーザーID認証、トークン管理、リソースへのアクセスを提供するサービスカタログ、およびユーザーロールに基づくアクセス制御を担当します。

Keystoneは、サービスバス、またはopenstackフレームワーク全体のレジストリに似ています。他のサービスはKeystoneを使用してサービスエンドポイント(サービスアクセスURL)を登録します。ターゲットを取得するには、サービス間の呼び出しをKeystoneで認証する必要があります。ターゲットサービスを見つける

2、キーストーンの主な機能

認証:トークンの発行と検証

ユーザー承認(承認):ユーザーにサービスのアクセス許可を付与します

ユーザー管理(アカウント):ユーザーアカウントを管理します

サービスカタログ:利用可能なサービスのAPIエンドポイントを提供します

3つのキーストーン関連の概念

user:openstackサービスを使用するユーザーを指します

プロジェクト(テナント):個人またはサービスが所有するリソースのコレクションとして理解できます

役割:ユーザー分割権限。ユーザーに役割を割り当てることにより、ユーザーはその役割に対応する操作権限を取得できます。

認証:ユーザーのIDを判別するプロセス

トークン:文字列表現であり、リソースにアクセスするためのトークンとして使用されます。トークンには、指定された範囲と有効時間内にアクセスできるリソースが含まれています

資格情報:ユーザーのID、ユーザーのユーザー名とパスワード、ユーザー名とAPIキー、またはID管理サービスによって提供される認証トークンを確認するために使用される資格情報

サービス:openstackサービス、つまり、nova、swif、glance、neutron、cinderなどのopenstackで実行されるコンポーネントサービス。

エンドポイント:ネットワークを介してopenstackサービスにアクセスして検索できるアドレス(通常はURL)

4つの重要な展開手順

1.データベースインスタンスとデータベースユーザーを作成します

[root @ ct〜] #mysql -u root -p

MariaDB [(none)]>データベースキーストーンを作成します。

MariaDB [(none)]> keystoneのすべての特権を付与します。* TO'keystone '@' localhost 'IDENTIFIED BY'KEYSTONE_DBPASS';

MariaDB [(none)]> keystoneのすべての特権を付与します。* TO'keystone '@'% 'IDENTIFIED BY'KEYSTONE_DBPASS';

MariaDB [(なし)]>フラッシュ特権;
ここに画像の説明を挿入

2. Keystone、データベース、Apacheをインストールして構成します

①keystoneソフトウェアパッケージをインストールします

[root @ ct〜] #yum -y install openstack-keystone httpd mod_wsgi

[root @ ct〜] #cp -a /etc/keystone/keystone.conf {、。bak}
ここに画像の説明を挿入

[root @ ct keystone] #grep -Ev“ ^ $ |#” /etc/keystone/keystone.conf.bak> /etc/keystone/keystone.conf#ソースファイルの空白行と#で始まる行をフィルタリングします署名してから、/ etc / keystone /keystone.confファイルに入力します

[root @ ct keystone]#openstack-config --set / etc / keystone / keystone.confデータベース接続mysql + pymysql:// keystone:KEYSTONE_DBPASS @ ct / keystone#mysql + pymysqlを使用してデータベースに接続し、キーストーンを使用しますユーザーID、パスワードKEYSTONE_DBPASSを使用して、ctノードのkeystoneにログインします

[root @ ct keystone]#openstack-config --set /etc/keystone/keystone.confトークンプロバイダーfernet#指定されたトークンのプロバイダーはキーストーン自体です。Fernetは安全なメッセージング形式です。
ここに画像の説明を挿入

②認証サービスデータベースを初期化する

[root @ ct keystone] #su -s / bin / sh -c“ keystone-manage db_sync” keystone

③fernetキーストレージライブラリを初期化する

[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
ここに画像の説明を挿入

④ブートストラップID認証サービスを構成する

[root @ ct keystone]#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の制御側を経由するため、管理ネットワークが必要です。internal-
URLは、ストレージやデータベースにアクセスする仮想マシン、動物園の飼育係、その他のミドルウェアなど、データ送信用の内部ネットワークです。このネットワークには外部からアクセスできません。
public-urlは、ユーザーがアクセスできる共有ネットワークです(如公有️)#ただし、この環境にそのようなネットワークがない場合は、同じネットワークがパブリックになります。
ポート5000は、Keystoneが認証を提供するポートです。
#haproxyサーバーにリッスンを追加する
必要があります。#さまざまなネットワークURLで、コントローラーノードのドメイン名を指定する必要があります。通常はhaproxyのvip(高可用性モード)のドメイン名です。

⑤Apacheサーバーを設定します

[root @ ct keystone] #echo“ ServerName controller” >> /etc/httpd/conf/httpd.conf

⑥構成ファイルを作成する

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

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

[root @ ct keystone] #systemctl enable httpd

[root @ ct keystone] #systemctl start httpd
ここに画像の説明を挿入

✓管理者アカウントの環境変数を設定します

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

[root @ ct keystone] #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 keystone]#source〜 / .bashrc

[root @ ct keystone] #openstackユーザーリスト
ここに画像の説明を挿入

⑧OpenStackドメイン、プロジェクト、ユーザー、ロールを作成する

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

[root @ ct keystone] #openstack project create --domain default --description“ Service Project” service
ここに画像の説明を挿入

⑨ロールを作成します(openstackロールリストを使用して表示できます)

[root @ ct keystone] #openstack role create user
ここに画像の説明を挿入

[root @ ct keystone] #openstackロールリスト
ここに画像の説明を挿入

[root @ ct keystone] #openstackトークンの問題

#パスワードを指定せずにトークン情報を取得できるか確認(検証・認証サービス)
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_51615030/article/details/114699775