3.6. OpenStack 先决条件
以下先决条件适用于 OpenStack 迁移:
- 您必须使用 兼容版本的 OpenStack。
3.6.1. 使用 OpenStack 源提供程序迁移的其他验证方法
MTV 版本 2.6 及之后的版本除了标准用户名和密码凭证集外,还支持使用 OpenStack 源供应商的以下验证方法进行迁移:
- 令牌身份验证
- 应用程序凭证身份验证
除了准备 Secret
清单外,您可以使用这些方法,以与迁移其他虚拟机相同的方式,使用 OpenStack 源提供程序迁移虚拟机。
3.6.1.1. 将令牌身份验证与 OpenStack 源提供程序搭配使用
在创建 OpenStack 源提供程序时,您可以使用令牌身份验证而不是用户名和密码身份验证。
MTV 支持以下令牌身份验证类型:
- 带有用户 ID 的令牌
- 使用用户名的令牌
对于每种令牌身份验证,您需要使用 OpenStack 中的数据来创建 Secret
清单。
先决条件
具有 OpenStack 帐户。
流程
- 在 OpenStack web 控制台的仪表板中,点 Project > API Access。
展开 Download OpenStack RC 文件,然后点 OpenStack RC 文件。
下载的文件(这里称为 <
openstack_rc_file
> )包括用于令牌身份验证的以下字段:OS_AUTH_URL OS_PROJECT_ID OS_PROJECT_NAME OS_DOMAIN_NAME OS_USERNAME
要获取令牌身份验证所需的数据,请运行以下命令:
$ openstack token issue
此处的输出称为 <
openstack_token_output
>,其中包含了使用带有用户 ID
的令牌
进行身份验证所需的令牌、userID 和projectID
。创建类似如下的
Secret
清单:使用带有用户 ID 的令牌进行身份验证:
cat << EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: openstack-secret-tokenid namespace: openshift-mtv labels: createdForProviderType: openstack type: Opaque stringData: authType: token token: <token_from_openstack_token_output> projectID: <projectID_from_openstack_token_output> userID: <userID_from_openstack_token_output> url: <OS_AUTH_URL_from_openstack_rc_file> EOF
使用令牌及用户名进行身份验证:
cat << EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: openstack-secret-tokenname namespace: openshift-mtv labels: createdForProviderType: openstack type: Opaque stringData: authType: token token: <token_from_openstack_token_output> domainName: <OS_DOMAIN_NAME_from_openstack_rc_file> projectName: <OS_PROJECT_NAME_from_openstack_rc_file> username: <OS_USERNAME_from_openstack_rc_file> url: <OS_AUTH_URL_from_openstack_rc_file> EOF
3.6.1.2. 将应用凭证身份验证与 OpenStack 源提供程序搭配使用
在创建 OpenStack 源提供程序时,您可以使用应用凭据身份验证而不是用户名和密码身份验证。
MTV 支持以下应用程序凭证身份验证类型:
- 应用程序凭证 ID
- 应用程序凭证名称
对于每种类型的应用程序凭证身份验证,您需要使用 OpenStack 中的数据来创建 Secret
清单。
先决条件
您有一个 OpenStack 帐户。
流程
- 在 OpenStack web 控制台的仪表板中,点 Project > API Access。
展开 Download OpenStack RC 文件,然后点 OpenStack RC 文件。
下载的文件(这里称为 <
openstack_rc_file&
gt; )包括用于应用程序凭证身份验证的以下字段:OS_AUTH_URL OS_PROJECT_ID OS_PROJECT_NAME OS_DOMAIN_NAME OS_USERNAME
要获取应用程序凭证身份验证所需的数据,请运行以下命令:
$ openstack application credential create --role member --role reader --secret redhat forklift
此处的输出称为 <
openstack_credential_output
>,其中包括:-
使用应用程序凭证 ID 进行身份验证所需的
id
和secret
-
使用应用程序凭证
名称
进行身份验证所需的名称和secret
-
使用应用程序凭证 ID 进行身份验证所需的
创建类似如下的
Secret
清单:使用应用程序凭证 ID 进行身份验证:
cat << EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: openstack-secret-appid namespace: openshift-mtv labels: createdForProviderType: openstack type: Opaque stringData: authType: applicationcredential applicationCredentialID: <id_from_openstack_credential_output> applicationCredentialSecret: <secret_from_openstack_credential_output> url: <OS_AUTH_URL_from_openstack_rc_file> EOF
使用应用程序凭证名称进行身份验证:
cat << EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: openstack-secret-appname namespace: openshift-mtv labels: createdForProviderType: openstack type: Opaque stringData: authType: applicationcredential applicationCredentialName: <name_from_openstack_credential_output> applicationCredentialSecret: <secret_from_openstack_credential_output> domainName: <OS_DOMAIN_NAME_from_openstack_rc_file> username: <OS_USERNAME_from_openstack_rc_file> url: <OS_AUTH_URL_from_openstack_rc_file> EOF