本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
更新 AWS OpsWorks for Chef Automate 服务器以使用自定义域
重要
AWS OpsWorks for Chef Automate 已于 2024 年 5 月 5 日停用,新客户和现有客户均已禁用。我们建议现有客户迁移到 Chef SaaS 或其他替代解决方案。如果您有任何疑问,可以通过 re AWS : Post 或通过 Pre
本节介绍如何使用 AWS OpsWorks for Chef Automate 服务器的备份创建新服务器,更新现有服务器以使用自定义域和证书。本质上,您是在复制现有的 AWS OpsWorks for Chef Automate 2.0 服务器,方法是从备份中创建新服务器,然后将新服务器配置为使用自定义域、证书和私钥。
先决条件
以下是更新现有 AWS OpsWorks for Chef Automate 服务器以使用自定义域和证书的要求。
-
要更新(或复制)的服务器必须运行 Chef Automate 2.0。
-
决定要用于创建新服务器的备份。您必须至少有一个要更新的服务器的备份可用。有关中备份的更多信息 AWS OpsWorks for Chef Automate,请参阅备份 AWS OpsWorks for Chef Automate 服务器。
-
准备好用于创建作为备份来源 ARNs 的现有服务器的服务角色和实例配置文件。
-
请确保您正在运行最新版本的 AWS CLI。有关更新 AWS CLI 工具的更多信息,请参阅 AWS 命令行界面用户指南 AWS CLI中的安装。
限制
通过使用备份创建新服务器来更新现有服务器时,新服务器不能与现有 AWS OpsWorks for Chef Automate 服务器完全相同。
-
您只能使用 AWS CLI 或中的一个来完成此过程AWS SDKs。无法通过使用 AWS Management Console从备份创建新的服务器。
-
新服务器不能使用与账户内和 Amazon Web Services Region 内的现有服务器相同的名称。名称必须与用作备份源的现有服务器不同。
-
连接到现有服务器的节点不由新服务器管理。您必须执行以下操作之一。
-
附加不同的节点,因为节点不能由多个 Chef Automate 服务器管理。
-
将节点从现有服务器(备份源)迁移到新服务器和新的自定义域端点。有关如何迁移节点的更多信息,请参阅 Chef 文档。
-
更新服务器以使用自定义域
要更新现有的 Chef Automate 2.0 服务器,您可以通过运行 create-server
命令、添加参数以指定备份、自定义域、自定义证书和自定义私有密钥来创建该服务器的副本。
-
如果您的
create-server
命令中没有 ARNs 可供指定的服务角色或实例配置文件,请按照中的步骤 1-5 创建使用 Chef Automate 服务器创建 AWS CLI可供使用的服务角色和实例配置文件。 -
如果您尚未执行此操作,请查找现有 Chef Automate 2.0 服务器的备份,将以此备份为基础创建使用自定义域的新服务器。运行以下命令以显示有关您的账户和某个区域中所有 AWS OpsWorks for Chef Automate 备份的信息。确保记下要使用的备份的 ID。
aws opsworks-cm --region
region name
describe-backups -
通过运行
create-server
命令创建 AWS OpsWorks for Chef Automate 服务器。-
--engine
值为ChefAutomate
,--engine-model
为Single
,--engine-version
为12
。 -
在您的 AWS 账户中,服务器名称在每个区域内必须是唯一的。服务器名称必须以字母开头;然后允许字母、数字或连字符 (-),最多 40 个字符。
-
使用步骤 1 中的实例配置文件 ARN 和服务角色 ARN。
-
有效实例类型为
m5.large
、r5.xlarge
或r5.2xlarge
。有关这些实例类型规格的更多信息,请参阅 Amazon EC2 用户指南中的实例类型。 -
--engine-attributes
参数是可选的;如果您不指定一个或两个值,则服务器创建过程会为您生成这些值。如果您添加--engine-attributes
,请指定您在步骤 2 中生成的CHEF_AUTOMATE_PIVOTAL_KEY
值、CHEF_AUTOMATE_ADMIN_PASSWORD
,或两者。如果您不设置
CHEF_AUTOMATE_ADMIN_PASSWORD
的值,一个密码将生成并作为create-server
响应的一部分返回。您也可以在控制台中再次下载初学者工具包,该工具包会重新生成此密码。该密码的最小长度为 8 个字符,最大长度为 32 个字符。该密码可以包含字母、数字和特殊字符 (!/@#$%^+=_
)。该密码必须至少包含一个小写字母、一个大写字母、一个数字和一个特殊字符。 -
SSH 密钥对是可选的,但可以帮助您连接到 Chef Automate 服务器 (如果您需要重置 Chef Automate 控制面板管理员密码)。有关创建 SSH 密钥对的更多信息,请参阅亚马逊 EC2 用户指南中的亚马逊 EC2密钥对。
-
要使用自定义域,请将以下参数添加到命令中。否则,Chef Automate 服务器创建过程会自动为您生成终端节点。配置自定义域需要所有三个参数。有关使用这些参数的其他要求的信息,请参阅 AWS OpsWorks CM API 参考CreateServer中的。
-
--custom-domain
- 服务器的可选公有端点,例如https://aws.my-company.com
。 -
--custom-certificate
- PEM 格式的 HTTPS 证书。该值可以是单个自签名证书或证书链。 -
--custom-private-key
- PEM 格式的私有密钥,用于通过 HTTPS 连接到服务器。私有密钥不得加密;无法使用密码或密码短语保护它。
-
-
需要每周进行系统维护。有效值必须按以下格式指定:
DDD:HH:MM
。指定的时间为协调世界时 (UTC)。如果您不指定--preferred-maintenance-window
的值,则默认值为星期二、星期三或星期五的一小时随机时间段。 -
--preferred-backup-window
的有效值必须按以下格式之一指定:HH:MM
(针对每日备份) 或DDD:HH:MM
(针对每周备份)。指定的时间采用 UTC 格式。默认值为随机每日开始时间。要退出自动备份,请改为添加参数--disable-automated-backup
。 -
对于
--security-group-ids
,请输入一个或多个以空格分隔的安全组 IDs。 -
对于
--subnet-ids
,输入子网 ID。 -
对于
--backup-id
,输入您在步骤 2 中复制的备份的 ID。
aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" --server-name "
server_name
" --instance-profile-arn "instance_profile_ARN
" --instance-type "instance_type
" --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"pivotal_key
","CHEF_AUTOMATE_ADMIN_PASSWORD":"password
"}' --key-pair "key_pair_name
" --preferred-maintenance-window "ddd:hh:mm
" --preferred-backup-window "ddd:hh:mm
" --security-group-idssecurity_group_id1
security_group_id2
--service-role-arn "service_role_ARN
" --subnet-idssubnet_ID
--backup-idbackup_ID
以下示例创建使用自定义域的 Chef Automate 服务器。
aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" \ --server-name "my-custom-domain-server" \ --instance-profile-arn "arn:aws:iam::12345678912:instance-profile/aws-opsworks-cm-ec2-role" \ --instance-type "m5.large" \ --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"MZZE...Wobg","CHEF_AUTOMATE_ADMIN_PASSWORD":"zZZzDj2DLYXSZFRv1d"}' \ --custom-domain "my-chef-automate-server.my-corp.com" \ --custom-certificate "-----BEGIN CERTIFICATE----- EXAMPLEqEXAMPLE== -----END CERTIFICATE-----" \ --custom-private-key "-----BEGIN RSA PRIVATE KEY----- EXAMPLEqEXAMPLE= -----END RSA PRIVATE KEY-----" \ --key-pair "amazon-test" \ --preferred-maintenance-window "Mon:08:00" \ --preferred-backup-window "Sun:02:00" \ --security-group-ids sg-b00000001 sg-b0000008 \ --service-role-arn "arn:aws:iam::12345678912:role/service-role/aws-opsworks-cm-service-role" \ --subnet-ids subnet-300aaa00 \ --backup-id MyChefServer-20191004122143125
-
-
AWS OpsWorks for Chef Automate 创建新服务器大约需要 15 分钟。在
create-server
命令的输出中,复制Endpoint
属性的值。示例如下:"Endpoint": "automate-07-exampleexample.opsworks-cm.us-east-1.amazonaws.com"
请勿关闭
create-server
命令的输出或关闭您的 Shell 会话,因为该输出可能包含不再显示的重要信息。要从create-server
结果中获取密码和初学者工具包,请继续执行下一步。 -
如果您选择为您 AWS OpsWorks for Chef Automate 生成密钥和密码,则可以使用 j q
等 JSON 处理器从 create-server
结果中提取可用格式的密钥和密码。安装 jq后,您可以运行以下命令来提取关键密钥、Chef Automate 控制面板管理员密码和初学者工具包。如果您未在步骤 3 中提供自己的关键密钥和密码,请确保将提取的关键密钥和管理员密码保存在方便而安全的位置。 #Get the Chef password: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "CHEF_AUTOMATE_ADMIN_PASSWORD") | .Value' #Get the Chef Pivotal Key: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "CHEF_AUTOMATE_PIVOTAL_KEY") | .Value' #Get the Chef Starter Kit: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "CHEF_STARTER_KIT") | .Value' | base64 -D > starterkit.zip
-
或者,如果您没有从
create-server
命令结果中提取入门套件,则可以在 AWS OpsWorks for Chef Automate 控制台中从服务器的 “属性” 页面下载新的入门套件。下载新的初学者工具包将重置 Chef Automate 控制面板管理员密码。 -
在企业的 DNS 管理工具中创建 CNAME 条目,将您的自定义域指向您在步骤 4 中复制的 AWS OpsWorks for Chef Automate 终端节点。在完成此步骤之前,您无法访问或登录到服务器。
-
服务器创建过程完成后,请转到使用初学者工具包配置 Chef Server。
另请参阅
-
CreateServer在 AWS OpsWorks CM API 参考中
-
《AWS CLI Command Reference》中的 create-server。