本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 3:设置环境运行脚本
使用以下命令设置环境以运行脚本。
pipenv install -r requirements.txt pipenv shell
注意
目前,该脚本只能在 Application Manager 中预配置单层应用程序。例如,如果您为同一堆栈中的两个层运行脚本两次,则脚本将在 Application Manage 中创建两个不同的应用程序。
设置环境后,请查看脚本参数。您可以通过运行 python3
stack_exporter.py --help
命令来查看迁移脚本的可用选项。
参数 | 描述 | 必填 | 类型 | 默认值 |
---|---|---|---|---|
--layer-id |
导出此 OpsWorks 图层 ID 的 CloudFormation 模板。 | 是 | 字符串 | |
--region |
OpsWorks 堆栈的 AWS 区域。如果您的 OpsWorks 堆栈区域和 API 终端节点区域不同,请使用堆栈区域。此区域与 OpsWorks堆栈中的其他资源部分(例如,EC2 实例和子网)属于同一区域。 | 否 | 字符串 | us-east-1 |
--provision-application |
默认情况下,该脚本会置备由 CloudFormation 模板导出的应用程序。将此参数传递到脚本中,值为 FALSE 可跳过 CloudFormation模板的配置。 | 否 | 布尔值 | TRUE |
--launch-template |
此参数定义是否使用现有启动模板还是创建新的启动模板。您可以创建使用推荐的实例属性的新启动模板,也可以创建使用与在线实例匹配的实例属性的新启动模板。 有效值包括:
|
否 | 字符串 | RECOMMENDED |
--system-updates |
定义是否在实例启动时执行内核和软件包更新。 有效值包括:
|
否 | 字符串 | ALL_UPDATES |
--http-username |
Systems Manager SecureString 参数的名称,该参数存储用于对包含自定义说明书的 HTTP 存档进行身份验证的用户名。 |
否 | 字符串 | |
--http-password |
Systems Manager SecureString 参数的名称,该参数存储用于对包含自定义说明书的 HTTP 存档进行身份验证的密码。 |
否 | 字符串 | |
--repo-private-key |
Systems Manager SecureString 参数的名称,该参数存储用于对包含自定义说明书的存储库进行身份验证的 SSH 密钥。如果存储库已开启 GitHub,则必须生成新的 Ed25519 SSH 密钥。如果不生成新的 Ed25519 SSH 密钥,则与 GitHub 存储库的连接将失败。 |
否 | 字符串 | |
--lb-type |
迁移现有负载均衡器时要创建的负载均衡器的类型(如果有)。 有效值包括:
|
否 | 字符串 | ALB |
--lb-access-logs-path |
现有 S3 存储桶的路径和存储负载均衡器访问日志的前缀。该 S3 存储桶与负载均衡器必须位于同一区域。如果您未提供值且 --lb-type 参数值设置为 None ,则脚本会创建新的 S3 存储桶和前缀。请确保此前缀有适当的存储桶策略。 |
否 | 字符串 | |
--enable-instance-protection |
如果设置为 TRUE ,则脚本会为您的自动扩缩组创建自定义终止策略(Lambda 函数)。带有 protected_instance 标签的 EC2 实例受到保护,免受横向缩减事件的影响。为每个 EC2 实例添加一个 protected_instance 标签,使其免受横向缩减事件的影响。 |
否 | 布尔值 | FALSE |
--command-logs-bucket |
用于存储 AWS ApplyChefRecipe 和 MountEBSVolumes 日志的现有 S3 存储桶名称。如果您未提供值,脚本将创建一个新的 S3 存储桶。 |
否 | 字符串 | aws-opsworks-application-manager-logs- |
--custom-json-bucket |
用于存储自定义 JSON 的现有 S3 存储桶名称。如果您未提供值,脚本将创建一个新的 S3 存储桶。 | 否 | 字符串 | aws-apply-chef-application-manager-transition-data- |
备注:
-
如果您使用私有 GitHub 存储库,则必须为 SSH 创建新的
Ed25519
主机密钥。这是因为 GitHub 更改了 SSH 中支持的密钥并删除了未加密的 Git 协议。有关Ed25519
主机密钥的更多信息,请参阅 GitHub博客文章 “改进 Git 协议安全” GitHub。生成新的 Ed25519
主机密钥后,为 SSH 密钥创建一个 Systems ManagerSecureString
参数,并将SecureString
参数名称用作--repo-private-key
参数的值。有关如何创建 SystemSecureString
s Manager 参数的更多信息,请参阅《AWS Systems Manager 用户指南》中的创建 SecureString 参数 (AWS CLI) 或创建 Systems Manager 参数(控制台)。 -
--http-username
、--http-password
和--repo-private-key
参数指的是 Systems ManagerSecureString
参数的名称。当您运行AWS-ApplyChefRecipes
文档时,迁移脚本会使用这些参数。 -
--http-username
参数要求您还为--http-password
参数指定一个值。 -
--http-password
参数要求您还为--http-username
参数指定一个值。 -
请勿同时为
--http-password
和--repo-private-key
设置值。提供 SSH 密钥的 Systems ManagerSecureString
参数名称 (--repo-private-key
),或者存储库用户名 (--http-username
) 和密码 (--http-password
)。