使用 AWS CLI 的 AWS OpsWorks CM 示例 - AWS Command Line Interface

本文档仅适用于 AWS CLI 版本 1。有关 AWS CLI 版本 2 的相关文档,请参阅版本 2 用户指南

使用 AWS CLI 的 AWS OpsWorks CM 示例

以下代码示例演示了如何通过将 AWS Command Line Interface与 AWS OpsWorks CM 结合使用,来执行操作和实现常见场景。

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示了如何使用 associate-node

AWS CLI

关联节点

以下 associate-node 命令将名为 i-44de882p 的节点与名为 automate-06 的 Chef Automate 服务器相关联,这意味着 automate-06 服务器能够管理该节点,并通过使用 associate-node 命令安装在节点上的 chef-client 代理软件将配方命令传送给该节点。有效的节点名称是 EC2 实例 ID。

aws opsworks-cm associate-node --server-name "automate-06" --node-name "i-43de882p" --engine-attributes "Name=CHEF_ORGANIZATION,Value='MyOrganization' Name=CHEF_NODE_PUBLIC_KEY,Value='Public_key_contents'"

该命令返回的输出类似于以下内容。输出:

{ "NodeAssociationStatusToken": "AHUY8wFe4pdXtZC5DiJa5SOLp5o14DH//rHRqHDWXxwVoNBxcEy4V7R0NOFymh7E/1HumOBPsemPQFE6dcGaiFk" }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“在 AWS OpsWorks for Chef Automate 中自动添加节点”。

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 AssociateNode

以下代码示例演示了如何使用 create-backup

AWS CLI

创建备份

以下 create-backup 命令启动了对 us-east-1 区域中名为 automate-06 的 Chef Automate 服务器的手动备份。该命令在 --description 参数中向备份中添加一条描述性消息。

aws opsworks-cm create-backup \ --server-name 'automate-06' \ --description "state of my infrastructure at launch"

输出显示了与以下内容类似的新备份信息。

输出:

{ "Backups": [ { "BackupArn": "string", "BackupId": "automate-06-20160729133847520", "BackupType": "MANUAL", "CreatedAt": 2016-07-29T13:38:47.520Z, "Description": "state of my infrastructure at launch", "Engine": "Chef", "EngineModel": "Single", "EngineVersion": "12", "InstanceProfileArn": "arn:aws:iam::1019881987024:instance-profile/automate-06-1010V4UU2WRM2", "InstanceType": "m4.large", "KeyPair": "", "PreferredBackupWindow": "", "PreferredMaintenanceWindow": "", "S3LogUrl": "https://s3.amazonaws.com/<bucket-name>/automate-06-20160729133847520", "SecurityGroupIds": [ "sg-1a24c270" ], "ServerName": "automate-06", "ServiceRoleArn": "arn:aws:iam::1019881987024:role/aws-opsworks-cm-service-role.1114810729735", "Status": "OK", "StatusDescription": "", "SubnetIds": [ "subnet-49436a18" ], "ToolsVersion": "string", "UserArn": "arn:aws:iam::1019881987024:user/opsworks-user" } ], }

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“备份和恢复 AWS OpsWorks for Chef Automate 服务器”。

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreateBackup

以下代码示例演示了如何使用 create-server

AWS CLI

创建服务器

以下 create-server 示例在默认区域新建一个名为 automate-06 的 Chef Automate 服务器。请注意,大多数其他设置都使用默认值,例如,要保留的备份数量,以及维护和备份启动时间。在运行 create-server 命令之前,请完成《AWS Opsworks for Chef Automate 用户指南》中的 AWS OpsWorks for Chef Automate 入门中的先决条件

aws opsworks-cm create-server \ --engine "Chef" \ --engine-model "Single" \ --engine-version "12" \ --server-name "automate-06" \ --instance-profile-arn "arn:aws:iam::1019881987024:instance-profile/aws-opsworks-cm-ec2-role" \ --instance-type "t2.medium" \ --key-pair "amazon-test" \ --service-role-arn "arn:aws:iam::044726508045:role/aws-opsworks-cm-service-role"

输出显示了与以下内容类似的新备份信息。

{ "Server": { "BackupRetentionCount": 10, "CreatedAt": 2016-07-29T13:38:47.520Z, "DisableAutomatedBackup": FALSE, "Endpoint": "https://opsworks-cm.us-east-1.amazonaws.com", "Engine": "Chef", "EngineAttributes": [ { "Name": "CHEF_DELIVERY_ADMIN_PASSWORD", "Value": "1Password1" } ], "EngineModel": "Single", "EngineVersion": "12", "InstanceProfileArn": "arn:aws:iam::1019881987024:instance-profile/aws-opsworks-cm-ec2-role", "InstanceType": "t2.medium", "KeyPair": "amazon-test", "MaintenanceStatus": "", "PreferredBackupWindow": "Sun:02:00", "PreferredMaintenanceWindow": "00:00", "SecurityGroupIds": [ "sg-1a24c270" ], "ServerArn": "arn:aws:iam::1019881987024:instance/automate-06-1010V4UU2WRM2", "ServerName": "automate-06", "ServiceRoleArn": "arn:aws:iam::1019881987024:role/aws-opsworks-cm-service-role", "Status": "CREATING", "StatusReason": "", "SubnetIds": [ "subnet-49436a18" ] } }

有关更多信息,请参阅《AWS OpsWorks for Chef Automate API 参考》中的 UpdateServer

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreateServer

以下代码示例演示了如何使用 delete-backup

AWS CLI

删除备份

以下 delete-backup 命令删除了 Chef Automate 服务器的手动或自动备份(由备份 ID 标识)。当备份数量达到可以保存的最大数量或想要最大限度降低 Amazon S3 存储成本时,此命令非常有用。

aws opsworks-cm delete-backup --backup-id "automate-06-2016-11-19T23:42:40.240Z"

输出会显示备份删除是否成功。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“备份和恢复 AWS OpsWorks for Chef Automate 服务器”。

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DeleteBackup

以下代码示例演示了如何使用 delete-server

AWS CLI

删除服务器

以下 delete-server 命令删除了 Chef Automate 服务器(由服务器名称标识)。服务器被删除后,DescribeServer 请求将不再返回该服务器。

aws opsworks-cm delete-server --server-name "automate-06"

输出会显示服务器删除是否成功。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“删除 AWS OpsWorks for Chef Automate 服务器”。

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DeleteServer

以下代码示例演示了如何使用 describe-account-attributes

AWS CLI

描述账户属性

以下 describe-account-attributes 命令返回有关您的账户使用 AWS OpsWorks for Chef Automate 资源的信息。

aws opsworks-cm describe-account-attributes

该命令针对每个账户属性条目返回的输出类似于以下内容。输出:

{ "Attributes": [ { "Maximum": 5, "Name": "ServerLimit", "Used": 2 } ] }

更多信息

有关更多信息,请参阅《AWS OpsWorks for Chef Automate API 参考》中的 DescribeAccountAttributes。

以下代码示例演示了如何使用 describe-backups

AWS CLI

描述备份

以下 describe-backups 命令返回有关默认区域中与您的账户关联的所有备份的信息。

aws opsworks-cm describe-backups

该命令针对每个备份条目返回的输出类似于以下内容。

输出:

{ "Backups": [ { "BackupArn": "string", "BackupId": "automate-06-20160729133847520", "BackupType": "MANUAL", "CreatedAt": 2016-07-29T13:38:47.520Z, "Description": "state of my infrastructure at launch", "Engine": "Chef", "EngineModel": "Single", "EngineVersion": "12", "InstanceProfileArn": "arn:aws:iam::1019881987024:instance-profile/automate-06-1010V4UU2WRM2", "InstanceType": "m4.large", "KeyPair": "", "PreferredBackupWindow": "", "PreferredMaintenanceWindow": "", "S3LogUrl": "https://s3.amazonaws.com/<bucket-name>/automate-06-20160729133847520", "SecurityGroupIds": [ "sg-1a24c270" ], "ServerName": "automate-06", "ServiceRoleArn": "arn:aws:iam::1019881987024:role/aws-opsworks-cm-service-role.1114810729735", "Status": "Successful", "StatusDescription": "", "SubnetIds": [ "subnet-49436a18" ], "ToolsVersion": "string", "UserArn": "arn:aws:iam::1019881987024:user/opsworks-user" } ], }

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“备份和恢复 AWS OpsWorks for Chef Automate 服务器”。

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DescribeBackups

以下代码示例演示了如何使用 describe-events

AWS CLI

描述事件

以下 describe-events 示例返回了与指定 Chef Automate 服务器关联的所有事件的相关信息。

aws opsworks-cm describe-events \ --server-name 'automate-06'

该命令针对每个事件条目返回的输出类似于以下内容。

{ "ServerEvents": [ { "CreatedAt": 2016-07-29T13:38:47.520Z, "LogUrl": "https://s3.amazonaws.com/<bucket-name>/automate-06-20160729133847520", "Message": "Updates successfully installed.", "ServerName": "automate-06" } ] }

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的一般故障排除提示

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DescribeEvents

以下代码示例演示了如何使用 describe-node-association-status

AWS CLI

描述节点关联状态

以下 describe-node-association-status 命令返回将节点与名为 automate-06 的 Chef Automate 服务器关联的请求的状态。

aws opsworks-cm describe-node-association-status --server-name "automate-06" --node-association-status-token "AflJKl+/GoKLZJBdDQEx0O65CDi57blQe9nKM8joSok0pQ9xr8DqApBN9/1O6sLdSvlfDEKkEx+eoCHvjoWHaOs="

该命令针对每个账户属性条目返回的输出类似于以下内容。输出:

{ "NodeAssociationStatus": "IN_PROGRESS" }

更多信息

有关更多信息,请参阅《AWS OpsWorks for Chef Automate API 参考》中的 DescribeNodeAssociationStatus。

以下代码示例演示了如何使用 describe-servers

AWS CLI

描述服务器

以下 describe-servers 命令返回有关默认区域中与您的账户关联的所有服务器的信息。

aws opsworks-cm describe-servers

该命令针对每个服务器条目返回的输出类似于以下内容。输出:

{ "Servers": [ { "BackupRetentionCount": 8, "CreatedAt": 2016-07-29T13:38:47.520Z, "DisableAutomatedBackup": FALSE, "Endpoint": "https://opsworks-cm.us-east-1.amazonaws.com", "Engine": "Chef", "EngineAttributes": [ { "Name": "CHEF_DELIVERY_ADMIN_PASSWORD", "Value": "1Password1" } ], "EngineModel": "Single", "EngineVersion": "12", "InstanceProfileArn": "arn:aws:iam::1019881987024:instance-profile/automate-06-1010V4UU2WRM2", "InstanceType": "m4.large", "KeyPair": "", "MaintenanceStatus": "SUCCESS", "PreferredBackupWindow": "03:00", "PreferredMaintenanceWindow": "Mon:09:00", "SecurityGroupIds": [ "sg-1a24c270" ], "ServerArn": "arn:aws:iam::1019881987024:instance/automate-06-1010V4UU2WRM2", "ServerName": "automate-06", "ServiceRoleArn": "arn:aws:iam::1019881987024:role/aws-opsworks-cm-service-role.1114810729735", "Status": "HEALTHY", "StatusReason": "", "SubnetIds": [ "subnet-49436a18" ] } ] }

更多信息

有关更多信息,请参阅《AWS OpsWorks for Chef Automate API 指南》中的 DescribeServers。

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DescribeServers

以下代码示例演示了如何使用 disassociate-node

AWS CLI

解除节点的关联

以下 disassociate-node 命令取消了名为 i-44de882p 的节点的关联,将该节点从名为 automate-06 的 Chef Automate 服务器的管理中删除。有效的节点名称是 EC2 实例 ID。

aws opsworks-cm disassociate-node --server-name "automate-06" --node-name "i-43de882p" --engine-attributes "Name=CHEF_ORGANIZATION,Value='MyOrganization' Name=CHEF_NODE_PUBLIC_KEY,Value='Public_key_contents'"

该命令返回的输出类似于以下内容。输出:

{ "NodeAssociationStatusToken": "AHUY8wFe4pdXtZC5DiJa5SOLp5o14DH//rHRqHDWXxwVoNBxcEy4V7R0NOFymh7E/1HumOBPsemPQFE6dcGaiFk" }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“删除 AWS OpsWorks for Chef Automate 服务器”。

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DisassociateNode

以下代码示例演示了如何使用 restore-server

AWS CLI

还原服务器

以下 restore-server 命令从 ID 为 automate-06-2016-11-22T16:13:27.998Z 的备份对默认区域中名为 automate-06 的 Chef Automate 服务器执行就地还原。还原服务器时会还原与执行指定备份时 Chef Automate 服务器正在管理的节点的连接。

aws opsworks-cm restore-server --backup-id "automate-06-2016-11-22T16:13:27.998Z" --server-name "automate-06"

输出仅为命令 ID。输出:

(None)

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“还原出现故障的 AWS OpsWorks for Chef Automate 服务器”

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 RestoreServer

以下代码示例演示了如何使用 start-maintenance

AWS CLI

开始维护

以下 start-maintenance 示例手动启动对默认区域中指定 Chef Automate 或 Puppet Enterprise 服务器的维护。如果之前的自动维护尝试失败,并且维护失败的根本原因已得到解决,则此命令很有用。

aws opsworks-cm start-maintenance \ --server-name 'automate-06'

输出:

{ "Server": { "AssociatePublicIpAddress": true, "BackupRetentionCount": 10, "ServerName": "automate-06", "CreatedAt": 1569229584.842, "CloudFormationStackArn": "arn:aws:cloudformation:us-west-2:123456789012:stack/aws-opsworks-cm-instance-automate-06-1606611794746/EXAMPLE0-31de-11eb-bdb0-0a5b0a1353b8", "DisableAutomatedBackup": false, "Endpoint": "automate-06-EXAMPLEvr8gjfk5f.us-west-2.opsworks-cm.io", "Engine": "ChefAutomate", "EngineModel": "Single", "EngineAttributes": [], "EngineVersion": "2020-07", "InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/aws-opsworks-cm-ec2-role", "InstanceType": "m5.large", "PreferredMaintenanceWindow": "Sun:01:00", "PreferredBackupWindow": "Sun:15:00", "SecurityGroupIds": [ "sg-EXAMPLE" ], "ServiceRoleArn": "arn:aws:iam::123456789012:role/service-role/aws-opsworks-cm-service-role", "Status": "UNDER_MAINTENANCE", "SubnetIds": [ "subnet-EXAMPLE" ], "ServerArn": "arn:aws:opsworks-cm:us-west-2:123456789012:server/automate-06/0148382d-66b0-4196-8274-d1a2b6dff8d1" } }

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的系统维护(Puppet Enterprise 服务器)系统维护(Chef Automate 服务器)

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 StartMaintenance

以下代码示例演示了如何使用 update-server-engine-attributes

AWS CLI

更新服务器引擎属性

以下 update-server-engine-attributes 命令更新了名为 automate-06 的 Chef Automate 服务器的 CHEF_PIVOTAL_KEY 引擎属性值。目前无法更改其他引擎属性的值。

aws opsworks-cm update-server-engine-attributes \ --attribute-name CHEF_PIVOTAL_KEY \ --attribute-value "new key value" \ --server-name "automate-06"

输出显示了与以下内容类似的更新服务器信息。

{ "Server": { "BackupRetentionCount": 2, "CreatedAt": 2016-07-29T13:38:47.520Z, "DisableAutomatedBackup": FALSE, "Endpoint": "https://opsworks-cm.us-east-1.amazonaws.com", "Engine": "Chef", "EngineAttributes": [ { "Name": "CHEF_PIVOTAL_KEY", "Value": "new key value" } ], "EngineModel": "Single", "EngineVersion": "12", "InstanceProfileArn": "arn:aws:iam::1019881987024:instance-profile/automate-06-1010V4UU2WRM2", "InstanceType": "m4.large", "KeyPair": "", "MaintenanceStatus": "SUCCESS", "PreferredBackupWindow": "Mon:09:15", "PreferredMaintenanceWindow": "03:00", "SecurityGroupIds": [ "sg-1a24c270" ], "ServerArn": "arn:aws:iam::1019881987024:instance/automate-06-1010V4UU2WRM2", "ServerName": "automate-06", "ServiceRoleArn": "arn:aws:iam::1019881987024:role/aws-opsworks-cm-service-role.1114810729735", "Status": "HEALTHY", "StatusReason": "", "SubnetIds": [ "subnet-49436a18" ] } }

有关更多信息,请参阅《AWS OpsWorks for Chef Automate API 参考》中的 UpdateServerEngineAttributes

以下代码示例演示了如何使用 update-server

AWS CLI

更新服务器

以下 update-server 命令更新了默认区域中指定 Chef Automate 服务器的维护开始时间。添加 --preferred-maintenance-window 参数是为了将服务器维护的开始日期和时间更改为星期一上午 9:15 (UTC)。

aws opsworks-cm update-server \ --server-name "automate-06" \ --preferred-maintenance-window "Mon:09:15"

输出显示了与以下内容类似的更新服务器信息。

{ "Server": { "BackupRetentionCount": 8, "CreatedAt": 2016-07-29T13:38:47.520Z, "DisableAutomatedBackup": TRUE, "Endpoint": "https://opsworks-cm.us-east-1.amazonaws.com", "Engine": "Chef", "EngineAttributes": [ { "Name": "CHEF_DELIVERY_ADMIN_PASSWORD", "Value": "1Password1" } ], "EngineModel": "Single", "EngineVersion": "12", "InstanceProfileArn": "arn:aws:iam::1019881987024:instance-profile/automate-06-1010V4UU2WRM2", "InstanceType": "m4.large", "KeyPair": "", "MaintenanceStatus": "OK", "PreferredBackupWindow": "Mon:09:15", "PreferredMaintenanceWindow": "03:00", "SecurityGroupIds": [ "sg-1a24c270" ], "ServerArn": "arn:aws:iam::1019881987024:instance/automate-06-1010V4UU2WRM2", "ServerName": "automate-06", "ServiceRoleArn": "arn:aws:iam::1019881987024:role/aws-opsworks-cm-service-role.1114810729735", "Status": "HEALTHY", "StatusReason": "", "SubnetIds": [ "subnet-49436a18" ] } }

有关更多信息,请参阅《AWS OpsWorks for Chef Automate API 参考》中的 UpdateServer

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UpdateServer