本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建 Chef Automate 服务器
重要
AWS OpsWorks for Chef Automate 已于 2024 年 5 月 5 日停用,新客户和现有客户均已禁用。我们建议现有客户迁移到 Chef SaaS 或其他替代解决方案。如果您有任何疑问,可以通过 re AWS : Post 或通过 Pre
您可以使用 AWS OpsWorks for Chef Automate 控制台创建 Chef 服务器,或者 AWS CLI.
在中创建一个 Chef Automate 服务器 AWS Management Console
登录 AWS Management Console 并打开 AWS OpsWorks 控制台,网址为 https://console.aws.amazon.com/opsworks/
。 -
在 AWS OpsWorks 主页上,选择 Chef Automate OpsWorks 的 “前往”。
-
在 AWS OpsWorks for Chef Automate 主页上,选择创建 Chef 自动服务器。
-
在 Set name, region, and type (设置名称、区域和类型) 页面上,指定服务器的名称。Chef Server 名称最多可包含 40 个字符,并且只能包含字母数字字符和短划线。选择支持的区域,然后选择支持所要管理节点数量的实例类型。如果需要,您可以在服务器创建之后更改实例类型。对于本演练,我们在美国西部(俄勒冈州)区域中创建一个 m4.large 实例类型。选择下一步。
-
在 Configure server 页面上,除非您要指定密钥对名称,否则保留 SSH key 下拉列表中的默认选择。
-
对于 Specify server endpoint (指定服务器终端节点),保留默认值 Use an automatically-generated endpoint (使用自动生成的终端节点),然后选择 Next (下一步),除非您希望您的服务器位于您自己的自定义域中。要配置自定义域,请继续执行下一步。
-
要使用自定义域,对于 Specify server endpoint (指定服务器终端节点),从下拉列表中选择 Use a custom domain (使用自定义域)。
-
对于完全限定域名 (FQDN),指定 FQDN。您必须拥有要使用的域名。
-
对于 SSL 证书,请粘贴整个 PEM 格式的证书,以
–––--BEGIN CERTIFICATE-----
开头并以–––--END CERTIFICATE-----
结尾。SSL 证书主题必须与您在上一步中输入的 FQDN 相匹配。 -
对于 SSL private key (SSL 私有密钥),请粘贴整个 RSA 私有密钥,以
–––--BEGIN RSA PRIVATE KEY-----
开头并以–––--END RSA PRIVATE KEY-----
结尾。SSL 私有密钥必须与您在上一步中输入的 SSL 证书中的公有密钥匹配。选择下一步。
-
-
在 Configure Advanced Settings 页面上的 Network and Security 区域中,选择 VPC、子网以及一个或多个安全组。以下是 对您 VPC 的要求:
-
VPC 必须只有具有一个公有子网。
-
必须启用 DNS 解析。
-
必须在公有子网上启用自动分配公有 IP。
AWS OpsWorks 如果您还没有要使用的安全组、服务角色和实例配置文件,则可以为您生成安全组、服务角色和实例配置文件。您的服务器可属于多个安全组。在离开此页后,您无法更改 Chef Server 的网络和安全设置。
-
-
在 System maintenance (系统维护) 部分中,设置您希望系统维护开始的日期和时间。由于您可以预见到服务器会在系统维护期间脱机,因此请选择正常工作时间中对服务器需求较低的时间。维护完成之前,已连接的节点进入
pending-server
状态。维护时段是必需的。您可以稍后使用 AWS Management Console AWS CLI、或 API 更改开始日期和时间。
-
配置备份。默认情况下会启用自动备份。设置自动备份启动的首选频率和时间,并设置在 Amazon Simple Storage Service 中存储的备份生成数。最多保留 30 个备份;当达到最大值时, AWS OpsWorks for Chef Automate 会删除最旧的备份,以便为新备份腾出空间。
-
(可选)在 Tags (标签) 中,向服务器和相关资源(如 EC2 实例、弹性 IP 地址、安全组、S3 存储桶和备份)添加标签。有关为 AWS OpsWorks for Chef Automate 服务器添加标签的更多信息,请参见使用 AWS OpsWorks for Chef Automate 资源上的标签。
-
在您配置完高级设置后,选择 Next (下一步)。
-
在审核页面上,审核您的选择。当您准备好创建服务器时,选择 Launch (启动)。
在等待 AWS OpsWorks 创建 Chef 服务器时,请继续下载入门套件使用初学者工具包配置 Chef Server和 Chef Automate 仪表板凭据。请不要一直等到您的服务器联机再下载这些项。
服务器创建完成后,您的 Chef Server 可在 AWS OpsWorks for Chef Automate 主页上使用,其状态为 online (在线)。服务器联机之后,Chef Automate 控制面板在服务器的域上可用,位于以下格式的 URL 上:
https://
。your_server_name
-random.region.opsworks-cm.io
使用 Chef Automate 服务器创建 AWS CLI
通过运行 AWS CLI 命令创建 AWS OpsWorks for Chef Automate 服务器不同于在控制台中创建服务器。如果您未指定要使用的现有服务角色和安全组,则可以在控制台中为您 AWS OpsWorks 创建服务角色和安全组。在中 AWS CLI,如果您未指定安全组,则 AWS OpsWorks 可以为您创建安全组,但它不会自动创建服务角色;您必须在命令中提供服务角色 ARN。create-server
在控制台中,在创建 Ch AWS OpsWorks ef Automate 服务器时,你可以下载 Chef Automate 入门套件和 Chef Automate 仪表板的登录凭证。由于使用创建服务器时无法执行此操作,因此在新 AWS OpsWorks for Chef Automate
AWS OpsWorks for Chef Automate 服务器联机后 AWS CLI,您可以使用 JSON 处理实用程序从create-server
命令的结果中获取登录凭证和入门套件。或者, AWS OpsWorks for Chef Automate
服务器联机之后,您可以在控制台中生成一组新的登录凭证和一个新的初学者工具包。
如果您的本地计算机尚未运行 AWS CLI,请 AWS CLI 按照 AWS 命令行界面用户指南中的安装说明下载并安装。本部分未介绍可以与 create-server
命令结合使用的所有参数。有关 create-server
参数的更多信息,请参阅 create-server
参考 中的 AWS CLI
。
-
请确保完成先决条件,尤其是设置 VPC,或确保您有要使用的现有 VPC。要创建 Chef Automate 服务器,您需要一个子网 ID。
-
(可选) 通过使用 OpenSSL
来生成 Chef 关键密钥,将该密钥保存到您的本地计算机上安全、方便的文件中。如果您在 create-server
命令中不提供,则该关键密钥将作为服务器创建过程的一部分自动生成。如果要跳过此步骤,您可以改为从create-server
命令的结果中获取 Chef Automate 关键密钥。如果您选择使用以下命令生成关键密钥,请务必包含-pubout
参数,因为 Chef Automate 关键密钥值是 RSA 密钥对的公开部分。有关更多信息,请参阅步骤 6。umask 077 openssl genrsa -out "pivotal" 2048 openssl rsa -in "pivotal" -pubout
-
创建服务角色和实例配置文件。 AWS OpsWorks 提供了一个可用于创建两者的 AWS CloudFormation 模板。运行以下 AWS CLI 命令创建一个 AWS CloudFormation 堆栈,用于为您创建服务角色和实例配置文件。
aws cloudformation create-stack --stack-name OpsWorksCMRoles --template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml --capabilities CAPABILITY_NAMED_IAM
-
创建 AWS CloudFormation 完堆栈后,在您的账户中查找并复制服务角色的 ARN。
aws iam list-roles --path-prefix "/service-role/" --no-paginate
在
list-roles
命令的结果中,查找类似于以下内容的服务角色 ARN 条目。记下服务角色 ARN。您需要这些值来创建您的 Chef Automate 服务器。{ "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZQG6R22HC", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-ec2-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-ec2-role" }, { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "opsworks-cm.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZZZZZZ6QE", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-service-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-service-role" }
-
查找并复制您的账户中的实例配置文件的 ARN。
aws iam list-instance-profiles --no-paginate
在
list-instance-profiles
命令的结果中,查找类似于以下内容的实例配置文件 ARN 条目。记录实例配置文件 ARN。您需要这些值来创建您的 Chef Automate 服务器。{ "Path": "/", "InstanceProfileName": "aws-opsworks-cm-ec2-role", "InstanceProfileId": "EXAMPLEDC6UR3LTUW7VHK", "Arn": "arn:aws:iam::123456789012:instance-profile/aws-opsworks-cm-ec2-role", "CreateDate": "2017-01-05T20:42:20Z", "Roles": [ { "Path": "/service-role/", "RoleName": "aws-opsworks-cm-ec2-role", "RoleId": "EXAMPLEE4STNUQG6R22HC", "Arn": "arn:aws:iam::123456789012:role/service-role/aws-opsworks-cm-ec2-role", "CreateDate": "2017-01-05T20:42:20Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } ] },
-
通过运行
create-server
命令创建 AWS OpsWorks for Chef Automate 服务器。-
--engine
值为ChefAutomate
,--engine-model
为Single
,--engine-version
为12
。 -
在您的 AWS 账户中,服务器名称在每个区域内必须是唯一的。服务器名称必须以字母开头;然后允许字母、数字或连字符 (-),最多 40 个字符。
-
使用您在步骤 4 和 5 中复制的实例配置文件 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 密钥对的更多信息,请参阅《Amazon EC2 用户指南》中的 Amazon 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
,输入一个或多个安全组 ID,用空格分隔。 -
对于
--subnet-ids
,输入子网 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
示例如下:
aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" --server-name "automate-06" --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"}' --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
以下示例创建使用自定义域的 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
以下示例创建了添加两个标签的 Chef Automate 服务器:
Stage: Production
和Department: Marketing
。有关在 AWS OpsWorks for Chef Automate 服务器上添加和管理标签的更多信息,请参阅本指南使用 AWS OpsWorks for Chef Automate 资源上的标签中的。aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" \ --server-name "my-test-chef-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"}' \ --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 \ --tags [{\"Key\":\"Stage\",\"Value\":\"Production\"},{\"Key\":\"Department\",\"Value\":\"Marketing\"}]
-
-
AWS OpsWorks for Chef Automate 创建新服务器大约需要 15 分钟。请勿关闭
create-server
命令的输出或关闭您的 Shell 会话,因为该输出可能包含不再显示的重要信息。要从create-server
结果中获取密码和初学者工具包,请继续执行下一步。如果要在服务器上使用自定义域,请在
create-server
命令的输出中复制Endpoint
属性的值。示例如下:"Endpoint": "automate-07-exampleexample.opsworks-cm.us-east-1.amazonaws.com"
-
如果您选择为您 AWS OpsWorks for Chef Automate 生成密钥和密码,则可以使用 j q
等 JSON 处理器从 create-server
结果中提取可用格式的密钥和密码。安装 jq后,您可以运行以下命令来提取关键密钥、Chef Automate 控制面板管理员密码和初学者工具包。如果您未在步骤 4 中提供自己的关键密钥和密码,请确保将提取的关键密钥和管理员密码保存在方便而安全的位置。 #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 条目,将您的自定义域指向您在步骤 7 中复制的 AWS OpsWorks for Chef Automate 终端节点。在完成此步骤之前,您无法访问或登录具有自定义域的服务器。
-
服务器创建过程完成后,请转到使用初学者工具包配置 Chef Server。