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トークンの問題
#パスワードを指定せずにトークン情報を取得できるか確認(検証・認証サービス)