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

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

使用 AWS CLI 的 AWS OpsWorks 示例

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

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

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

主题

操作

以下代码示例演示了如何使用 assign-instance

AWS CLI

将注册的实例分配给层

以下示例将注册的实例分配给某个自定义层。

aws opsworks --region us-east-1 assign-instance --instance-id 4d6d1710-ded9-42a1-b08e-b043ad7af1e2 --layer-ids 26cf1d32-6876-42fa-bbf1-9cadc0bff938

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“将注册的实例分配给某个层”。

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

以下代码示例演示了如何使用 assign-volume

AWS CLI

将注册的卷分配给实例

以下示例将注册的 Amazon Elastic Block Store(Amazon EBS)卷分配给某个实例。该卷由其卷 ID 标识,这是 AWS OpsWorks 在您向堆栈注册卷时分配的 GUID,而不是 Amazon Elastic Compute Cloud(Amazon EC2)卷 ID。在运行 assign-volume 之前,必须先运行 update-volume 为卷分配装载点。

aws opsworks --region us-east-1 assign-volume --instance-id 4d6d1710-ded9-42a1-b08e-b043ad7af1e2 --volume-id 26cf1d32-6876-42fa-bbf1-9cadc0bff938

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“将 Amazon EBS 卷分配给实例”。

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

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

AWS CLI

关联弹性 IP 地址和实例

以下示例将弹性 IP 地址与指定的实例相关联。

aws opsworks --region us-east-1 associate-elastic-ip --instance-id dfe18b02-5327-493d-91a4-c5c0c448927f --elastic-ip 54.148.130.96

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“资源管理”

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

以下代码示例演示了如何使用 attach-elastic-load-balancer

AWS CLI

将负载均衡器挂载到层

以下示例将一个负载均衡器(由其名称标识)连接到指定层。

aws opsworks --region us-east-1 attach-elastic-load-balancer --elastic-load-balancer-name Java-LB --layer-id 888c5645-09a5-4d0e-95a8-812ef1db76a4

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“弹性负载均衡器”

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

AWS CLI

示例 1:创建应用程序

以下示例使用存储在 GitHub 存储库中的代码创建了一个名为 SimplePHPApp 的 PHP 应用程序。该命令使用应用程序源定义的简写形式。

aws opsworks create-app \ --region us-east-1 \ --stack-id f6673d70-32e6-4425-8999-265dd002fec7 \ --name SimplePHPApp \ --type php \ --app-source Type=git,Url=git://github.com/amazonwebservices/opsworks-demo-php-simple-app.git,Revision=version1

输出:

{ "AppId": "6cf5163c-a951-444f-a8f7-3716be75f2a2" }

示例 2:创建带有附加数据库的应用程序

以下示例使用存储在公共 S3 存储桶中的 .zip 存档中的代码创建 JSP 应用程序。它附加 RDS 数据库实例,以用作应用程序的数据存储。该应用程序和数据库源在单独的 JSON 文件中定义,这些文件位于您运行命令的目录中。

aws opsworks create-app \ --region us-east-1 \ --stack-id 8c428b08-a1a1-46ce-a5f8-feddc43771b8 \ --name SimpleJSP \ --type java \ --app-source file://appsource.json \ --data-sources file://datasource.json

应用程序源信息位于 appsource.json 中并包含以下内容。

{ "Type": "archive", "Url": "https://s3.amazonaws.com/opsworks-demo-assets/simplejsp.zip" }

数据库源信息位于 datasource.json 中并包含以下内容。

[ { "Type": "RdsDbInstance", "Arn": "arn:aws:rds:us-west-2:123456789012:db:clitestdb", "DatabaseName": "mydb" } ]

注意:对于 RDS 数据库实例,必须先使用 register-rds-db-instance 向堆栈注册该实例。对于 MySQL 应用程序服务器实例,请将 Type 设置为 OpsworksMysqlInstance。这些实例由 AWS OpsWorks 创建,因此无需注册。

输出:

{ "AppId": "26a61ead-d201-47e3-b55c-2a7c666942f8" }

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“添加应用程序”。

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

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

AWS CLI

示例 1:部署应用程序和运行堆栈命令

以下示例显示了如何使用 create-deployment 命令部署应用程序和运行堆栈命令。请注意,用于指定命令的 JSON 对象中的引号(")字符都以转义字符(\)开头。如果没有转义字符,该命令可能会返回无效的 JSON 错误。

以下 create-deployment 示例将应用程序部署到指定的堆栈。

aws opsworks create-deployment \ --stack-id cfb7e082-ad1d-4599-8e81-de1c39ab45bf \ --app-id 307be5c8-d55d-47b5-bd6e-7bd417c6c7eb --command "{\"Name\":\"deploy\"}"

输出:

{ "DeploymentId": "5746c781-df7f-4c87-84a7-65a119880560" }

示例 2:部署 Rails 应用程序并迁移数据库

以下 create-deployment 命令将 Ruby on Rails 应用程序部署到指定的堆栈并迁移数据库。

aws opsworks create-deployment \ --stack-id cfb7e082-ad1d-4599-8e81-de1c39ab45bf \ --app-id 307be5c8-d55d-47b5-bd6e-7bd417c6c7eb \ --command "{\"Name\":\"deploy\", \"Args\":{\"migrate\":[\"true\"]}}"

输出:

{ "DeploymentId": "5746c781-df7f-4c87-84a7-65a119880560" }

有关部署的更多信息,请参阅《AWS OpsWorks 用户指南》中的部署应用程序

示例 3:运行配方

以下 create-deployment 命令在指定堆栈中的实例上运行自定义配方 phpapp::appsetup

aws opsworks create-deployment \ --stack-id 935450cc-61e0-4b03-a3e0-160ac817d2bb \ --command "{\"Name\":\"execute_recipes\", \"Args\":{\"recipes\":[\"phpapp::appsetup\"]}}"

输出:

{ "DeploymentId": "5cbaa7b9-4e09-4e53-aa1b-314fbd106038" }

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的运行堆栈命令

示例 4:安装依赖项

以下 create-deployment 命令在指定堆栈中的实例上安装依赖项,例如软件包或 Ruby gems。

aws opsworks create-deployment \ --stack-id 935450cc-61e0-4b03-a3e0-160ac817d2bb \ --command "{\"Name\":\"install_dependencies\"}"

输出:

{ "DeploymentId": "aef5b255-8604-4928-81b3-9b0187f962ff" }

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的运行堆栈命令

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

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

AWS CLI

创建实例

以下 create-instance 命令在指定堆栈中创建名为 myinstance1 的 m1.large Amazon Linux 实例。实例将被分配给一个层。

aws opsworks --region us-east-1 create-instance --stack-id 935450cc-61e0-4b03-a3e0-160ac817d2bb --layer-ids 5c8c272a-f2d5-42e3-8245-5bf3927cb65b --hostname myinstance1 --instance-type m1.large --os "Amazon Linux"

要使用自动生成的名称,请调用 get-hostname-suggestion,它会根据您在创建堆栈时指定的主题生成主机名。然后将该名称传递给主机名参数。

输出:

{ "InstanceId": "5f9adeaa-c94c-42c6-aeef-28a5376002cd" }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“将实例添加到层”。

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

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

AWS CLI

创建图层

以下 create-layer 命令在指定堆栈中创建名为 MyPHPLayer 的 PHP App Server 层。

aws opsworks create-layer --region us-east-1 --stack-id f6673d70-32e6-4425-8999-265dd002fec7 --type php-app --name MyPHPLayer --shortname myphplayer

输出:

{ "LayerId": "0b212672-6b4b-40e4-8a34-5a943cf2e07a" }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“如何创建层”。

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

以下代码示例演示了如何使用 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 "ChefAutomate" \ --instance-profile-arn "arn:aws:iam::012345678901:instance-profile/aws-opsworks-cm-ec2-role" \ --instance-type "t2.medium" \ --server-name "automate-06" \ --service-role-arn "arn:aws:iam::012345678901:role/aws-opsworks-cm-service-role"

输出:

{ "Server": { "AssociatePublicIpAddress": true, "BackupRetentionCount": 10, "CreatedAt": 2019-12-29T13:38:47.520Z, "DisableAutomatedBackup": FALSE, "Endpoint": "https://opsworks-cm.us-east-1.amazonaws.com", "Engine": "ChefAutomate", "EngineAttributes": [ { "Name": "CHEF_AUTOMATE_ADMIN_PASSWORD", "Value": "1Example1" } ], "EngineModel": "Single", "EngineVersion": "2019-08", "InstanceProfileArn": "arn:aws:iam::012345678901:instance-profile/aws-opsworks-cm-ec2-role", "InstanceType": "t2.medium", "PreferredBackupWindow": "Sun:02:00", "PreferredMaintenanceWindow": "00:00", "SecurityGroupIds": [ "sg-12345678" ], "ServerArn": "arn:aws:iam::012345678901:instance/automate-06-1010V4UU2WRM2", "ServerName": "automate-06", "ServiceRoleArn": "arn:aws:iam::012345678901:role/aws-opsworks-cm-service-role", "Status": "CREATING", "SubnetIds": [ "subnet-12345678" ] } }

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

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

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

AWS CLI

创建堆栈

以下 create-stack 命令创建了一个名为 CLI Stack 的堆栈。

aws opsworks create-stack --name "CLI Stack" --stack-region "us-east-1" --service-role-arn arn:aws:iam::123456789012:role/aws-opsworks-service-role --default-instance-profile-arn arn:aws:iam::123456789012:instance-profile/aws-opsworks-ec2-role --region us-east-1

service-role-arndefault-instance-profile-arn 参数是必需的。当您创建第一个堆栈时,通常可以使用 AWS OpsWorks 为您创建的参数。要获取您账户的 Amazon 资源名称(ARN),请前往 IAM 控制台,在导航面板中选择 Roles,选择角色或配置文件,然后选择 Summary 选项卡。

输出:

{ "StackId": "f6673d70-32e6-4425-8999-265dd002fec7" }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“创建新堆栈”

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

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

AWS CLI

创建用户配置文件

您可以通过调用 create-user-profile 来创建用户配置文件,将 AWS Identity and Access Manager(IAM)用户导入 AWS OpsWorks。以下示例为 cli-user-test IAM 用户(由 Amazon 资源名称(ARN)标识)创建了用户配置文件。该示例为用户分配了 SSH 用户名 myusername 并启用自我管理,使用户能够指定 SSH 公钥。

aws opsworks --region us-east-1 create-user-profile --iam-user-arn arn:aws:iam::123456789102:user/cli-user-test --ssh-username myusername --allow-self-management

输出:

{ "IamUserArn": "arn:aws:iam::123456789102:user/cli-user-test" }

提示:此命令将 IAM 用户导入 AWS OpsWorks,但只能使用所附策略授予的权限。您可以使用 set-permissions 命令为每个堆栈授予 AWS OpsWorks 权限。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“将用户导入 AWS OpsWorks”。

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

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

AWS CLI

删除应用程序

以下示例删除了指定的应用程序(由其应用程序 ID 标识)。您可以前往 AWS OpsWorks 控制台上的应用程序详细信息页面或运行 describe-apps 命令,以获取应用程序 ID。

aws opsworks delete-app --region us-east-1 --app-id 577943b9-2ec1-4baf-a7bf-1d347601edc5

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“应用程序”

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

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

AWS CLI

删除实例

以下 delete-instance 示例删除了指定实例(由其实例 ID 标识)。您可以通过在 AWS OpsWorks 控制台中打开实例的详细信息页面或运行 describe-instances 命令来查找实例 ID。

如果实例处于联机状态,则必须先通过调用 stop-instance 来停止实例,然后必须等到实例停止。运行 describe-instances 以检查实例状态。

要移除实例的 Amazon EBS 卷或弹性 IP 地址,请分别添加 --delete-volumes--delete-elastic-ip 参数。

aws opsworks delete-instance \ --region us-east-1 \ --instance-id 3a21cfac-4a1f-4ce2-a921-b2cfba6f7771

此命令不生成任何输出。

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的删除 AWS OpsWorks 实例

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

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

AWS CLI

删除层

以下示例删除了指定层(由其层 ID 标识)。您可以前往 AWS OpsWorks 控制台上的层详细信息页面或运行 describe-layers 命令,以获取层 ID。

注意:在删除层之前,必须使用 delete-instance 删除该层的所有实例。

aws opsworks delete-layer --region us-east-1 --layer-id a919454e-b816-4598-b29a-5796afb498ed

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“删除 AWS OpsWorks 实例”。

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

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

AWS CLI

删除堆栈

以下示例删除了指定堆栈(由其堆栈 ID 标识)。您可以通过单击 AWS OpsWorks 控制台上的堆栈设置或运行 describe-stacks 命令来获取堆栈 ID。

注意:在删除堆栈之前,必须使用 delete-appdelete-instancedelete-layer 删除堆栈的所有应用程序、实例和层。

aws opsworks delete-stack --region us-east-1 --stack-id 154a9d89-7e9e-433b-8de8-617e53756c84

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“关闭堆栈”

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

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

AWS CLI

从 AWS OpsWorks 中删除用户配置文件并删除 IAM 用户

以下示例删除了指定 AWS Identity and Access Management(IAM)用户(由 Amazon 资源名称(ARN)标识)的用户配置文件。此操作会将用户从 AWS OpsWorks 中移除,但不会删除 IAM 用户。您必须使用 IAM 控制台、CLI 或 API 执行该任务。

aws opsworks --region us-east-1 delete-user-profile --iam-user-arn arn:aws:iam::123456789102:user/cli-user-test

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“将用户导入 AWS OpsWorks”。

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

以下代码示例演示了如何使用 deregister-elastic-ip

AWS CLI

从堆栈中取消注册弹性 IP 地址

以下示例从堆栈中取消注册了弹性 IP 地址(由其 IP 地址标识)。

aws opsworks deregister-elastic-ip --region us-east-1 --elastic-ip 54.148.130.96

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“取消注册弹性 IP 地址”。

以下代码示例演示了如何使用 deregister-instance

AWS CLI

从堆栈中取消注册已注册的实例

以下 deregister-instance 命令从堆栈中取消注册了已注册的实例。

aws opsworks --region us-east-1 deregister-instance --instance-id 4d6d1710-ded9-42a1-b08e-b043ad7af1e2

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“取消注册已注册的实例”。

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

以下代码示例演示了如何使用 deregister-rds-db-instance

AWS CLI

从堆栈中取消注册 Amazon RDS 数据库实例

以下示例从堆栈中取消注册了 RDS 数据库实例(由其 ARN 标识)。

aws opsworks deregister-rds-db-instance --region us-east-1 --rds-db-instance-arn arn:aws:rds:us-west-2:123456789012:db:clitestdb

输出:无。

更多信息

有关更多信息,请参阅《ASW OpsWorks 用户指南》中的“取消注册 Amazon RDS 实例”。

实例 ID:clitestdb 主用户名:cliuser 主 PWD:some23!pwd 数据库名称:mydb aws opsworks deregister-rds-db-instance --region us-east-1 --rds-db-instance-arn arn:aws:rds:us-west-2:645732743964:db:clitestdb

以下代码示例演示了如何使用 deregister-volume

AWS CLI

取消注册 Amazon EBS 卷

以下示例从堆栈中取消注册了 EBS 卷。该卷由其卷 ID 标识,这是 AWS OpsWorks 在您向堆栈注册卷时分配的 GUID,而不是 EC2 卷 ID。

aws opsworks deregister-volume --region us-east-1 --volume-id 5c48ef52-3144-4bf5-beaa-fda4deb23d4d

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“取消注册 Amazon EBS 卷”。

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

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

AWS CLI

描述应用程序

以下 describe-apps 命令描述了指定堆栈中的应用程序。

aws opsworks describe-apps \ --stack-id 38ee91e2-abdc-4208-a107-0b7168b3cc7a \ --region us-east-1

输出:

{ "Apps": [ { "StackId": "38ee91e2-abdc-4208-a107-0b7168b3cc7a", "AppSource": { "Url": "https://s3-us-west-2.amazonaws.com/opsworks-demo-assets/simplejsp.zip", "Type": "archive" }, "Name": "SimpleJSP", "EnableSsl": false, "SslConfiguration": {}, "AppId": "da1decc1-0dff-43ea-ad7c-bb667cd87c8b", "Attributes": { "RailsEnv": null, "AutoBundleOnDeploy": "true", "DocumentRoot": "ROOT" }, "Shortname": "simplejsp", "Type": "other", "CreatedAt": "2013-08-01T21:46:54+00:00" } ] }

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“应用程序”

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

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

AWS CLI

描述命令

以下 describe-commands 命令描述了指定实例中的命令。

aws opsworks describe-commands \ --instance-id 8c2673b9-3fe5-420d-9cfa-78d875ee7687 \ --region us-east-1

输出:

{ "Commands": [ { "Status": "successful", "CompletedAt": "2013-07-25T18:57:47+00:00", "InstanceId": "8c2673b9-3fe5-420d-9cfa-78d875ee7687", "DeploymentId": "6ed0df4c-9ef7-4812-8dac-d54a05be1029", "AcknowledgedAt": "2013-07-25T18:57:41+00:00", "LogUrl": "https://s3.amazonaws.com/<bucket-name>/logs/008c1a91-ec59-4d51-971d-3adff54b00cc?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE &Expires=1375394373&Signature=HkXil6UuNfxTCC37EPQAa462E1E%3D&response-cache-control=private&response-content-encoding=gzip&response-content- type=text%2Fplain", "Type": "undeploy", "CommandId": "008c1a91-ec59-4d51-971d-3adff54b00cc", "CreatedAt": "2013-07-25T18:57:34+00:00", "ExitCode": 0 }, { "Status": "successful", "CompletedAt": "2013-07-25T18:55:40+00:00", "InstanceId": "8c2673b9-3fe5-420d-9cfa-78d875ee7687", "DeploymentId": "19d3121e-d949-4ff2-9f9d-94eac087862a", "AcknowledgedAt": "2013-07-25T18:55:32+00:00", "LogUrl": "https://s3.amazonaws.com/<bucket-name>/logs/899d3d64-0384-47b6-a586-33433aad117c?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE &Expires=1375394373&Signature=xMsJvtLuUqWmsr8s%2FAjVru0BtRs%3D&response-cache-control=private&response-content-encoding=gzip&response-conten t-type=text%2Fplain", "Type": "deploy", "CommandId": "899d3d64-0384-47b6-a586-33433aad117c", "CreatedAt": "2013-07-25T18:55:29+00:00", "ExitCode": 0 } ] }

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“AWS OpsWorks 生命周期事件”。

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

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

AWS CLI

描述部署

以下 describe-deployments 命令描述了指定堆栈中的部署。

aws opsworks --region us-east-1 describe-deployments --stack-id 38ee91e2-abdc-4208-a107-0b7168b3cc7a

输出:

{ "Deployments": [ { "StackId": "38ee91e2-abdc-4208-a107-0b7168b3cc7a", "Status": "successful", "CompletedAt": "2013-07-25T18:57:49+00:00", "DeploymentId": "6ed0df4c-9ef7-4812-8dac-d54a05be1029", "Command": { "Args": {}, "Name": "undeploy" }, "CreatedAt": "2013-07-25T18:57:34+00:00", "Duration": 15, "InstanceIds": [ "8c2673b9-3fe5-420d-9cfa-78d875ee7687", "9e588a25-35b2-4804-bd43-488f85ebe5b7" ] }, { "StackId": "38ee91e2-abdc-4208-a107-0b7168b3cc7a", "Status": "successful", "CompletedAt": "2013-07-25T18:56:41+00:00", "IamUserArn": "arn:aws:iam::123456789012:user/someuser", "DeploymentId": "19d3121e-d949-4ff2-9f9d-94eac087862a", "Command": { "Args": {}, "Name": "deploy" }, "InstanceIds": [ "8c2673b9-3fe5-420d-9cfa-78d875ee7687", "9e588a25-35b2-4804-bd43-488f85ebe5b7" ], "Duration": 72, "CreatedAt": "2013-07-25T18:55:29+00:00" } ] }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“部署应用程序”

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

AWS CLI

描述弹性 IP 实例

以下 describe-elastic-ips 命令描述了指定实例中的弹性 IP 地址。

aws opsworks --region us-east-1 describe-elastic-ips --instance-id b62f3e04-e9eb-436c-a91f-d9e9a396b7b0

输出:

{ "ElasticIps": [ { "Ip": "192.0.2.0", "Domain": "standard", "Region": "us-west-2" } ] }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的实例。

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

以下代码示例演示了如何使用 describe-elastic-load-balancers

AWS CLI

描述堆栈的弹性负载均衡器

以下 describe-elastic-load-balancers 命令描述了指定堆栈的负载均衡器。

aws opsworks --region us-west-2 describe-elastic-load-balancers --stack-id 6f4660e5-37a6-4e42-bfa0-1358ebd9c182

输出:该特定堆栈有一个负载均衡器。

{ "ElasticLoadBalancers": [ { "SubnetIds": [ "subnet-60e4ea04", "subnet-66e1c110" ], "Ec2InstanceIds": [], "ElasticLoadBalancerName": "my-balancer", "Region": "us-west-2", "LayerId": "344973cb-bf2b-4cd0-8d93-51cd819bab04", "AvailabilityZones": [ "us-west-2a", "us-west-2b" ], "VpcId": "vpc-b319f9d4", "StackId": "6f4660e5-37a6-4e42-bfa0-1358ebd9c182", "DnsName": "my-balancer-2094040179.us-west-2.elb.amazonaws.com" } ] }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“应用程序”

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

AWS CLI

描述实例

以下 describe-instances 命令描述了指定堆栈中的实例:

aws opsworks --region us-east-1 describe-instances --stack-id 8c428b08-a1a1-46ce-a5f8-feddc43771b8

输出:以下输出示例适用于具有两个实例的堆栈。第一个是注册的 EC2 实例,第二个是由 AWS OpsWorks 创建的。

{ "Instances": [ { "StackId": "71c7ca72-55ae-4b6a-8ee1-a8dcded3fa0f", "PrivateDns": "ip-10-31-39-66.us-west-2.compute.internal", "LayerIds": [ "26cf1d32-6876-42fa-bbf1-9cadc0bff938" ], "EbsOptimized": false, "ReportedOs": { "Version": "14.04", "Name": "ubuntu", "Family": "debian" }, "Status": "online", "InstanceId": "4d6d1710-ded9-42a1-b08e-b043ad7af1e2", "SshKeyName": "US-West-2", "InfrastructureClass": "ec2", "RootDeviceVolumeId": "vol-d08ec6c1", "SubnetId": "subnet-b8de0ddd", "InstanceType": "t1.micro", "CreatedAt": "2015-02-24T20:52:49+00:00", "AmiId": "ami-35501205", "Hostname": "ip-192-0-2-0", "Ec2InstanceId": "i-5cd23551", "PublicDns": "ec2-192-0-2-0.us-west-2.compute.amazonaws.com", "SecurityGroupIds": [ "sg-c4d3f0a1" ], "Architecture": "x86_64", "RootDeviceType": "ebs", "InstallUpdatesOnBoot": true, "Os": "Custom", "VirtualizationType": "paravirtual", "AvailabilityZone": "us-west-2a", "PrivateIp": "10.31.39.66", "PublicIp": "192.0.2.06", "RegisteredBy": "arn:aws:iam::123456789102:user/AWS/OpsWorks/OpsWorks-EC2Register-i-5cd23551" }, { "StackId": "71c7ca72-55ae-4b6a-8ee1-a8dcded3fa0f", "PrivateDns": "ip-10-31-39-158.us-west-2.compute.internal", "SshHostRsaKeyFingerprint": "69:6b:7b:8b:72:f3:ed:23:01:00:05:bc:9f:a4:60:c1", "LayerIds": [ "26cf1d32-6876-42fa-bbf1-9cadc0bff938" ], "EbsOptimized": false, "ReportedOs": {}, "Status": "booting", "InstanceId": "9b137a0d-2f5d-4cc0-9704-13da4b31fdcb", "SshKeyName": "US-West-2", "InfrastructureClass": "ec2", "RootDeviceVolumeId": "vol-e09dd5f1", "SubnetId": "subnet-b8de0ddd", "InstanceProfileArn": "arn:aws:iam::123456789102:instance-profile/aws-opsworks-ec2-role", "InstanceType": "c3.large", "CreatedAt": "2015-02-24T21:29:33+00:00", "AmiId": "ami-9fc29baf", "SshHostDsaKeyFingerprint": "fc:87:95:c3:f5:e1:3b:9f:d2:06:6e:62:9a:35:27:e8", "Ec2InstanceId": "i-8d2dca80", "PublicDns": "ec2-192-0-2-1.us-west-2.compute.amazonaws.com", "SecurityGroupIds": [ "sg-b022add5", "sg-b122add4" ], "Architecture": "x86_64", "RootDeviceType": "ebs", "InstallUpdatesOnBoot": true, "Os": "Amazon Linux 2014.09", "VirtualizationType": "paravirtual", "AvailabilityZone": "us-west-2a", "Hostname": "custom11", "PrivateIp": "10.31.39.158", "PublicIp": "192.0.2.0" } ] }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的实例。

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

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

AWS CLI

描述堆栈的层

以下 describe-layers 命令描述了指定堆栈中的层:

aws opsworks --region us-east-1 describe-layers --stack-id 38ee91e2-abdc-4208-a107-0b7168b3cc7a

输出:

{ "Layers": [ { "StackId": "38ee91e2-abdc-4208-a107-0b7168b3cc7a", "Type": "db-master", "DefaultSecurityGroupNames": [ "AWS-OpsWorks-DB-Master-Server" ], "Name": "MySQL", "Packages": [], "DefaultRecipes": { "Undeploy": [], "Setup": [ "opsworks_initial_setup", "ssh_host_keys", "ssh_users", "mysql::client", "dependencies", "ebs", "opsworks_ganglia::client", "mysql::server", "dependencies", "deploy::mysql" ], "Configure": [ "opsworks_ganglia::configure-client", "ssh_users", "agent_version", "deploy::mysql" ], "Shutdown": [ "opsworks_shutdown::default", "mysql::stop" ], "Deploy": [ "deploy::default", "deploy::mysql" ] }, "CustomRecipes": { "Undeploy": [], "Setup": [], "Configure": [], "Shutdown": [], "Deploy": [] }, "EnableAutoHealing": false, "LayerId": "41a20847-d594-4325-8447-171821916b73", "Attributes": { "MysqlRootPasswordUbiquitous": "true", "RubygemsVersion": null, "RailsStack": null, "HaproxyHealthCheckMethod": null, "RubyVersion": null, "BundlerVersion": null, "HaproxyStatsPassword": null, "PassengerVersion": null, "MemcachedMemory": null, "EnableHaproxyStats": null, "ManageBundler": null, "NodejsVersion": null, "HaproxyHealthCheckUrl": null, "MysqlRootPassword": "*****FILTERED*****", "GangliaPassword": null, "GangliaUser": null, "HaproxyStatsUrl": null, "GangliaUrl": null, "HaproxyStatsUser": null }, "Shortname": "db-master", "AutoAssignElasticIps": false, "CustomSecurityGroupIds": [], "CreatedAt": "2013-07-25T18:11:19+00:00", "VolumeConfigurations": [ { "MountPoint": "/vol/mysql", "Size": 10, "NumberOfDisks": 1 } ] }, { "StackId": "38ee91e2-abdc-4208-a107-0b7168b3cc7a", "Type": "custom", "DefaultSecurityGroupNames": [ "AWS-OpsWorks-Custom-Server" ], "Name": "TomCustom", "Packages": [], "DefaultRecipes": { "Undeploy": [], "Setup": [ "opsworks_initial_setup", "ssh_host_keys", "ssh_users", "mysql::client", "dependencies", "ebs", "opsworks_ganglia::client" ], "Configure": [ "opsworks_ganglia::configure-client", "ssh_users", "agent_version" ], "Shutdown": [ "opsworks_shutdown::default" ], "Deploy": [ "deploy::default" ] }, "CustomRecipes": { "Undeploy": [], "Setup": [ "tomcat::setup" ], "Configure": [ "tomcat::configure" ], "Shutdown": [], "Deploy": [ "tomcat::deploy" ] }, "EnableAutoHealing": true, "LayerId": "e6cbcd29-d223-40fc-8243-2eb213377440", "Attributes": { "MysqlRootPasswordUbiquitous": null, "RubygemsVersion": null, "RailsStack": null, "HaproxyHealthCheckMethod": null, "RubyVersion": null, "BundlerVersion": null, "HaproxyStatsPassword": null, "PassengerVersion": null, "MemcachedMemory": null, "EnableHaproxyStats": null, "ManageBundler": null, "NodejsVersion": null, "HaproxyHealthCheckUrl": null, "MysqlRootPassword": null, "GangliaPassword": null, "GangliaUser": null, "HaproxyStatsUrl": null, "GangliaUrl": null, "HaproxyStatsUser": null }, "Shortname": "tomcustom", "AutoAssignElasticIps": false, "CustomSecurityGroupIds": [], "CreatedAt": "2013-07-25T18:12:53+00:00", "VolumeConfigurations": [] } ] }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“层”

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

以下代码示例演示了如何使用 describe-load-based-auto-scaling

AWS CLI

描述层的基于负载的扩展配置

以下示例说明了指定层的基于负载的扩展配置。层由其层 ID 标识,您可以在层的详细信息页面上找到该层 ID,也可以通过运行 describe-layers 来找到。

aws opsworks describe-load-based-auto-scaling --region us-east-1 --layer-ids 6bec29c9-c866-41a0-aba5-fa3e374ce2a1

输出:示例层有一个基于负载的实例。

{ "LoadBasedAutoScalingConfigurations": [ { "DownScaling": { "IgnoreMetricsTime": 10, "ThresholdsWaitTime": 10, "InstanceCount": 1, "CpuThreshold": 30.0 }, "Enable": true, "UpScaling": { "IgnoreMetricsTime": 5, "ThresholdsWaitTime": 5, "InstanceCount": 1, "CpuThreshold": 80.0 }, "LayerId": "6bec29c9-c866-41a0-aba5-fa3e374ce2a1" } ] }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“基于负载的自动扩展的工作原理”

以下代码示例演示了如何使用 describe-my-user-profile

AWS CLI

获取用户的配置文件

以下示例说明如何获取正在运行命令的 AWS Identity and Access Management(IAM)用户的配置文件。

aws opsworks --region us-east-1 describe-my-user-profile

输出:为简化起见,用户的大部分 SSH 公钥都被省略号(...)所取代。

{ "UserProfile": { "IamUserArn": "arn:aws:iam::123456789012:user/myusername", "SshPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQ...3LQ4aX9jpxQw== rsa-key-20141104", "Name": "myusername", "SshUsername": "myusername" } }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“将用户导入 AWS OpsWorks”。

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

AWS CLI

获取用户的每堆栈 AWS OpsWorks 权限级别

以下示例说明如何获取指定堆栈上的 AWS Identity and Access Management(IAM)用户的权限级别。

aws opsworks --region us-east-1 describe-permissions --iam-user-arn arn:aws:iam::123456789012:user/cli-user-test --stack-id d72553d4-8727-448c-9b00-f024f0ba1b06

输出:

{ "Permissions": [ { "StackId": "d72553d4-8727-448c-9b00-f024f0ba1b06", "IamUserArn": "arn:aws:iam::123456789012:user/cli-user-test", "Level": "manage", "AllowSudo": true, "AllowSsh": true } ] }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“授予每堆栈权限级别”。

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

AWS CLI

描述 RAID 数组

以下示例描述了连接到指定堆栈中实例的 RAID 数组。

aws opsworks --region us-east-1 describe-raid-arrays --stack-id d72553d4-8727-448c-9b00-f024f0ba1b06

输出:以下是带有一个 RAID 数组的堆栈的输出。

{ "RaidArrays": [ { "StackId": "d72553d4-8727-448c-9b00-f024f0ba1b06", "AvailabilityZone": "us-west-2a", "Name": "Created for php-app1", "NumberOfDisks": 2, "InstanceId": "9f14adbc-ced5-43b6-bf01-e7d0db6cf2f7", "RaidLevel": 0, "VolumeType": "standard", "RaidArrayId": "f2d4e470-5972-4676-b1b8-bae41ec3e51c", "Device": "/dev/md0", "MountPoint": "/mnt/workspace", "CreatedAt": "2015-02-26T23:53:09+00:00", "Size": 100 } ] }

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“EBS 卷”

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

以下代码示例演示了如何使用 describe-rds-db-instances

AWS CLI

描述堆栈中已注册的 Amazon RDS 实例

以下示例描述了在指定堆栈中注册的 Amazon RDS 实例。

aws opsworks --region us-east-1 describe-rds-db-instances --stack-id d72553d4-8727-448c-9b00-f024f0ba1b06

输出:以下是带有一个已注册 RDS 实例的堆栈的输出。

{ "RdsDbInstances": [ { "Engine": "mysql", "StackId": "d72553d4-8727-448c-9b00-f024f0ba1b06", "MissingOnRds": false, "Region": "us-west-2", "RdsDbInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:clitestdb", "DbPassword": "*****FILTERED*****", "Address": "clitestdb.cdlqlk5uwd0k.us-west-2.rds.amazonaws.com", "DbUser": "cliuser", "DbInstanceIdentifier": "clitestdb" } ] }

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“资源管理”

以下代码示例演示了如何使用 describe-stack-provisioning-parameters

AWS CLI

返回堆栈的预置参数

以下 describe-stack-provisioning-parameters 示例返回指定堆栈的预置参数。预置参数包括代理安装位置和公钥等设置,OpsWorks 使用这些设置来管理堆栈中实例上的代理。

aws opsworks describe-stack-provisioning-parameters \ --stack-id 62744d97-6faf-4ecb-969b-a086fEXAMPLE

输出:

{ "AgentInstallerUrl": "https://opsworks-instance-agent-us-west-2.s3.amazonaws.com/ID_number/opsworks-agent-installer.tgz", "Parameters": { "agent_installer_base_url": "https://opsworks-instance-agent-us-west-2.s3.amazonaws.com", "agent_installer_tgz": "opsworks-agent-installer.tgz", "assets_download_bucket": "opsworks-instance-assets-us-west-2.s3.amazonaws.com", "charlie_public_key": "-----BEGIN PUBLIC KEY-----PUBLIC_KEY_EXAMPLE\n-----END PUBLIC KEY-----", "instance_service_endpoint": "opsworks-instance-service.us-west-2.amazonaws.com", "instance_service_port": "443", "instance_service_region": "us-west-2", "instance_service_ssl_verify_peer": "true", "instance_service_use_ssl": "true", "ops_works_endpoint": "opsworks.us-west-2.amazonaws.com", "ops_works_port": "443", "ops_works_region": "us-west-2", "ops_works_ssl_verify_peer": "true", "ops_works_use_ssl": "true", "verbose": "false", "wait_between_runs": "30" } }

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的运行堆栈命令

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

AWS CLI

描述堆栈的配置

以下 describe-stack-summary 命令返回指定堆栈配置的摘要。

aws opsworks --region us-east-1 describe-stack-summary --stack-id 8c428b08-a1a1-46ce-a5f8-feddc43771b8

输出:

{ "StackSummary": { "StackId": "8c428b08-a1a1-46ce-a5f8-feddc43771b8", "InstancesCount": { "Booting": 1 }, "Name": "CLITest", "AppsCount": 1, "LayersCount": 1, "Arn": "arn:aws:opsworks:us-west-2:123456789012:stack/8c428b08-a1a1-46ce-a5f8-feddc43771b8/" } }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“堆栈”

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

AWS CLI

描述堆栈

以下 describe-stacks 命令描述账户的堆栈。

aws opsworks --region us-east-1 describe-stacks

输出:

{ "Stacks": [ { "ServiceRoleArn": "arn:aws:iam::444455556666:role/aws-opsworks-service-role", "StackId": "aeb7523e-7c8b-49d4-b866-03aae9d4fbcb", "DefaultRootDeviceType": "instance-store", "Name": "TomStack-sd", "ConfigurationManager": { "Version": "11.4", "Name": "Chef" }, "UseCustomCookbooks": true, "CustomJson": "{\n \"tomcat\": {\n \"base_version\": 7,\n \"java_opts\": \"-Djava.awt.headless=true -Xmx256m\"\n },\n \"datasources\": {\n \"ROOT\": \"jdbc/mydb\"\n }\n}", "Region": "us-east-1", "DefaultInstanceProfileArn": "arn:aws:iam::444455556666:instance-profile/aws-opsworks-ec2-role", "CustomCookbooksSource": { "Url": "git://github.com/example-repo/tomcustom.git", "Type": "git" }, "DefaultAvailabilityZone": "us-east-1a", "HostnameTheme": "Layer_Dependent", "Attributes": { "Color": "rgb(45, 114, 184)" }, "DefaultOs": "Amazon Linux", "CreatedAt": "2013-08-01T22:53:42+00:00" }, { "ServiceRoleArn": "arn:aws:iam::444455556666:role/aws-opsworks-service-role", "StackId": "40738975-da59-4c5b-9789-3e422f2cf099", "DefaultRootDeviceType": "instance-store", "Name": "MyStack", "ConfigurationManager": { "Version": "11.4", "Name": "Chef" }, "UseCustomCookbooks": false, "Region": "us-east-1", "DefaultInstanceProfileArn": "arn:aws:iam::444455556666:instance-profile/aws-opsworks-ec2-role", "CustomCookbooksSource": {}, "DefaultAvailabilityZone": "us-east-1a", "HostnameTheme": "Layer_Dependent", "Attributes": { "Color": "rgb(45, 114, 184)" }, "DefaultOs": "Amazon Linux", "CreatedAt": "2013-10-25T19:24:30+00:00" } ] }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“堆栈”

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

以下代码示例演示了如何使用 describe-timebased-auto-scaling

AWS CLI

描述实例的基于时间的自动扩展配置

以下示例说明了指定实例的基于时间的扩展配置。实例由其实例 ID 标识,您可以在实例的详细信息页面上找到该实例 ID,也可以通过运行 describe-instances 来找到。

aws opsworks describe-time-based-auto-scaling --region us-east-1 --instance-ids 701f2ffe-5d8e-4187-b140-77b75f55de8d

输出:示例中有一个基于时间的实例。

{ "TimeBasedAutoScalingConfigurations": [ { "InstanceId": "701f2ffe-5d8e-4187-b140-77b75f55de8d", "AutoScalingSchedule": { "Monday": { "11": "on", "10": "on", "13": "on", "12": "on" }, "Tuesday": { "11": "on", "10": "on", "13": "on", "12": "on" } } } ] }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“基于时间的自动扩展的工作原理”

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

AWS CLI

描述用户配置文件

以下 describe-user-profiles 命令描述了账户的用户配置文件。

aws opsworks --region us-east-1 describe-user-profiles

输出:

{ "UserProfiles": [ { "IamUserArn": "arn:aws:iam::123456789012:user/someuser", "SshPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAkOuP7i80q3Cko...", "AllowSelfManagement": true, "Name": "someuser", "SshUsername": "someuser" }, { "IamUserArn": "arn:aws:iam::123456789012:user/cli-user-test", "AllowSelfManagement": true, "Name": "cli-user-test", "SshUsername": "myusername" } ] }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“管理 AWS OpsWorks 用户”。

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

AWS CLI

描述堆栈的卷

以下示例描述了堆栈的 EBS 卷。

aws opsworks --region us-east-1 describe-volumes --stack-id 8c428b08-a1a1-46ce-a5f8-feddc43771b8

输出:

{ "Volumes": [ { "Status": "in-use", "AvailabilityZone": "us-west-2a", "Name": "CLITest", "InstanceId": "dfe18b02-5327-493d-91a4-c5c0c448927f", "VolumeType": "standard", "VolumeId": "56b66fbd-e1a1-4aff-9227-70f77118d4c5", "Device": "/dev/sdi", "Ec2VolumeId": "vol-295c1638", "MountPoint": "/mnt/myvolume", "Size": 1 } ] }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“资源管理”

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

以下代码示例演示了如何使用 detach-elastic-load-balancer

AWS CLI

将负载均衡器与层分离

以下示例将一个负载均衡器(由其名称标识)与其层分离。

aws opsworks --region us-east-1 detach-elastic-load-balancer --elastic-load-balancer-name Java-LB --layer-id 888c5645-09a5-4d0e-95a8-812ef1db76a4

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“弹性负载均衡器”

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

AWS CLI

取消弹性 IP 地址与实例的关联

以下示例取消了弹性 IP 地址与指定实例的关联。

aws opsworks --region us-east-1 disassociate-elastic-ip --elastic-ip 54.148.130.96

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“资源管理”

以下代码示例演示了如何使用 get-hostname-suggestion

AWS CLI

获取层的下一个主机名

以下示例获取指定层的下一个生成的主机名。本示例中使用的层是带有一个实例的 Java 应用程序服务器层。堆栈的主机名主题是默认的主机名主题,即 Layer_Dependent。

aws opsworks --region us-east-1 get-hostname-suggestion --layer-id 888c5645-09a5-4d0e-95a8-812ef1db76a4

输出:

{ "Hostname": "java-app2", "LayerId": "888c5645-09a5-4d0e-95a8-812ef1db76a4" }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“创建新堆栈”

以下代码示例演示了如何使用 reboot-instance

AWS CLI

重启实例

以下示例重启了实例。

aws opsworks --region us-east-1 reboot-instance --instance-id dfe18b02-5327-493d-91a4-c5c0c448927f

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“重启实例”

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

以下代码示例演示了如何使用 register-elastic-ip

AWS CLI

将弹性 IP 地址注册到堆栈

以下示例将弹性 IP 地址(由其 IP 地址标识)注册到指定堆栈。

注意:弹性 IP 地址必须与堆栈位于同一区域。

aws opsworks register-elastic-ip --region us-east-1 --stack-id d72553d4-8727-448c-9b00-f024f0ba1b06 --elastic-ip 54.148.130.96

输出

{ "ElasticIp": "54.148.130.96" }

更多信息

有关更多信息,请参阅《OpsWorks 用户指南》中的“将弹性 IP 地址注册到堆栈”。

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

以下代码示例演示了如何使用 register-rds-db-instance

AWS CLI

将 Amazon RDS 实例注册到堆栈

以下示例将 Amazon RDS 数据库实例(由其 Amazon 资源名称(ARN)标识)注册到指定的堆栈。它还指定了实例的主用户名和密码。请注意,AWS OpsWorks 不会验证这两个值中的任何一个。如果其中一个值不正确,您的应用程序将无法连接到数据库。

aws opsworks register-rds-db-instance --region us-east-1 --stack-id d72553d4-8727-448c-9b00-f024f0ba1b06 --rds-db-instance-arn arn:aws:rds:us-west-2:123456789012:db:clitestdb --db-user cliuser --db-password some23!pwd

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“将 Amazon RDS 实例注册到堆栈”。

以下代码示例演示了如何使用 register-volume

AWS CLI

将 Amazon EBS 卷注册到 Stack

以下示例将一个 Amazon EBS 卷(由其卷 ID 标识)注册到指定的堆栈。

aws opsworks register-volume --region us-east-1 --stack-id d72553d4-8727-448c-9b00-f024f0ba1b06 --ec-2-volume-id vol-295c1638

输出:

{ "VolumeId": "ee08039c-7cb7-469f-be10-40fb7f0c05e8" }

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“将 Amazon EBS 卷注册到堆栈”。

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

以下代码示例演示了如何使用 register

AWS CLI

将实例注册到堆栈

以下示例显示了将实例注册到在 AWS Opsworks 外部创建的堆栈的各种方法。您可以从待注册的实例运行 register,也可以从单独的工作站运行。有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“注册 Amazon EC2 和本地实例”。

注意:为简化起见,示例省略了 region 参数。

注册 Amazon EC2 实例

要指示您要注册 EC2 实例,请将 --infrastructure-class 参数设置为 ec2

以下示例从独立的工作站将 EC2 实例注册到指定的堆栈。实例由其 EC2 ID(i-12345678)标识。该示例使用工作站的默认 SSH 用户名,并尝试使用不需要密码的身份验证技术(例如默认 SSH 私钥)登录实例。如果失败,register 将查询密码。

aws opsworks register --infrastructure-class=ec2 --stack-id 935450cc-61e0-4b03-a3e0-160ac817d2bb i-12345678

以下示例从独立的工作站将 EC2 实例注册到指定的堆栈。它使用 --ssh-username--ssh-private-key 参数明确指定供命令用于登录实例的 SSH 用户名和私钥文件。ec2-user 是 Amazon Linux 实例的标准用户名。对 Ubuntu 实例使用 ubuntu

aws opsworks register --infrastructure-class=ec2 --stack-id 935450cc-61e0-4b03-a3e0-160ac817d2bb --ssh-username ec2-user --ssh-private-key ssh_private_key i-12345678

以下示例注册了正在运行 register 命令的 EC2 实例。使用 SSH 登录实例,然后使用 --local 参数(而不是实例 ID 或主机名)运行 register

aws opsworks register --infrastructure-class ec2 --stack-id 935450cc-61e0-4b03-a3e0-160ac817d2bb --local

注册本地实例

要指示您要注册本地实例,请将 --infrastructure-class 参数设置为 on-premises

以下示例从独立的工作站将现有本地实例注册到指定的堆栈。实例由其 IP 地址(192.0.2.3)标识。该示例使用工作站的默认 SSH 用户名,并尝试使用不需要密码的身份验证技术(例如默认 SSH 私钥)登录实例。如果失败,register 将查询密码。

aws opsworks register --infrastructure-class on-premises --stack-id 935450cc-61e0-4b03-a3e0-160ac817d2bb 192.0.2.3

以下示例从独立的工作站将本地实例注册到指定的堆栈。实例由其主机名(host1)标识。--override-... 参数指示 AWS OpsWorks 将 webserver1 显示为主机名,并分别将 192.0.2.310.0.0.2 显示为实例的公有和私有 IP 地址。

aws opsworks register --infrastructure-class on-premises --stack-id 935450cc-61e0-4b03-a3e0-160ac817d2bb --override-hostname webserver1 --override-public-ip 192.0.2.3 --override-private-ip 10.0.0.2 host1

以下示例从独立的工作站将本地实例注册到指定的堆栈。实例由其 IP 地址标识。register 使用指定的 SSH 用户名和私钥文件登录实例。

aws opsworks register --infrastructure-class on-premises --stack-id 935450cc-61e0-4b03-a3e0-160ac817d2bb --ssh-username admin --ssh-private-key ssh_private_key 192.0.2.3

以下示例从独立的工作站将现有本地实例注册到指定的堆栈。该命令使用指定了 SSH 密码和实例 IP 地址的自定义 SSH 命令字符串登录实例。

aws opsworks register --infrastructure-class on-premises --stack-id 935450cc-61e0-4b03-a3e0-160ac817d2bb --override-ssh "sshpass -p 'mypassword' ssh your-user@192.0.2.3"

以下示例注册了正在运行 register 命令的本地实例。使用 SSH 登录实例,然后使用 --local 参数(而不是实例 ID 或主机名)运行 register

aws opsworks register --infrastructure-class on-premises --stack-id 935450cc-61e0-4b03-a3e0-160ac817d2bb --local

输出:以下是注册 EC2 实例的典型输出。

Warning: Permanently added '52.11.41.206' (ECDSA) to the list of known hosts. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 6403k 100 6403k 0 0 2121k 0 0:00:03 0:00:03 --:--:-- 2121k [Tue, 24 Feb 2015 20:48:37 +0000] opsworks-init: Initializing AWS OpsWorks environment [Tue, 24 Feb 2015 20:48:37 +0000] opsworks-init: Running on Ubuntu [Tue, 24 Feb 2015 20:48:37 +0000] opsworks-init: Checking if OS is supported [Tue, 24 Feb 2015 20:48:37 +0000] opsworks-init: Running on supported OS [Tue, 24 Feb 2015 20:48:37 +0000] opsworks-init: Setup motd [Tue, 24 Feb 2015 20:48:37 +0000] opsworks-init: Executing: ln -sf --backup /etc/motd.opsworks-static /etc/motd [Tue, 24 Feb 2015 20:48:37 +0000] opsworks-init: Enabling multiverse repositories [Tue, 24 Feb 2015 20:48:37 +0000] opsworks-init: Customizing APT environment [Tue, 24 Feb 2015 20:48:37 +0000] opsworks-init: Installing system packages [Tue, 24 Feb 2015 20:48:37 +0000] opsworks-init: Executing: dpkg --configure -a [Tue, 24 Feb 2015 20:48:37 +0000] opsworks-init: Executing with retry: apt-get update [Tue, 24 Feb 2015 20:49:13 +0000] opsworks-init: Executing: apt-get install -y ruby ruby-dev libicu-dev libssl-dev libxslt-dev libxml2-dev libyaml-dev monit [Tue, 24 Feb 2015 20:50:13 +0000] opsworks-init: Using assets bucket from environment: 'opsworks-instance-assets-us-east-1.s3.amazonaws.com'. [Tue, 24 Feb 2015 20:50:13 +0000] opsworks-init: Installing Ruby for the agent [Tue, 24 Feb 2015 20:50:13 +0000] opsworks-init: Executing: /tmp/opsworks-agent-installer.YgGq8wF3UUre6yDy/opsworks-agent-installer/opsworks-agent/bin/installer_wrapper.sh -r -R opsworks-instance-assets-us-east-1.s3.amazonaws.com [Tue, 24 Feb 2015 20:50:44 +0000] opsworks-init: Starting the installer Instance successfully registered. Instance ID: 4d6d1710-ded9-42a1-b08e-b043ad7af1e2 Connection to 52.11.41.206 closed.

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“将实例注册到 AWS OpsWorks 堆栈》。

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

以下代码示例演示了如何使用 set-load-based-auto-scaling

AWS CLI

为层设置基于负载的扩展配置

以下示例为指定层启用基于负载的扩展并设置该层的配置。必须使用 create-instance 向层中添加基于负载的实例。

aws opsworks --region us-east-1 set-load-based-auto-scaling --layer-id 523569ae-2faf-47ac-b39e-f4c4b381f36d --enable --up-scaling file://upscale.json --down-scaling file://downscale.json

该示例将规模升级阈值设置放在工作目录中一个名为 upscale.json 的单独文件中,该文件包含以下内容。

{ "InstanceCount": 2, "ThresholdsWaitTime": 3, "IgnoreMetricsTime": 3, "CpuThreshold": 85, "MemoryThreshold": 85, "LoadThreshold": 85 }

该示例将规模降级阈值设置放在工作目录中一个名为 downscale.json 的单独文件中,该文件包含以下内容。

{ "InstanceCount": 2, "ThresholdsWaitTime": 3, "IgnoreMetricsTime": 3, "CpuThreshold": 35, "MemoryThreshold": 30, "LoadThreshold": 30 }

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“使用基于负载的自动扩展”

以下代码示例演示了如何使用 set-permission

AWS CLI

授予每堆栈 AWS OpsWorks 权限级别

当您通过调用 create-user-profile 将 AWS Identity and Access Management(IAM)用户导入 AWS OpsWorks 时,该用户仅拥有由附加的 IAM 策略授予的权限。您可以通过修改用户的策略来授予 AWS OpsWorks 权限。但是,对于用户需要访问的每个堆栈,导入用户并使用 set-permission 命令向用户授予一个标准权限级别通常会更容易。

以下示例向用户(由 Amazon 资源名称(ARN)标识)授予对指定堆栈的权限。该示例向用户授予管理权限级别,在堆栈的实例上具有 sudo 和 SSH 权限。

aws opsworks set-permission --region us-east-1 --stack-id 71c7ca72-55ae-4b6a-8ee1-a8dcded3fa0f --level manage --iam-user-arn arn:aws:iam::123456789102:user/cli-user-test --allow-ssh --allow-sudo

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“授予 AWS OpsWorks 用户每堆栈权限”

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

以下代码示例演示了如何使用 set-time-based-auto-scaling

AWS CLI

为层设置基于时间的扩展配置

以下示例为指定实例设置了基于时间的配置。必须先使用 create-instance 将实例添加到层。

aws opsworks --region us-east-1 set-time-based-auto-scaling --instance-id 69b6237c-08c0-4edb-a6af-78f3d01cedf2 --auto-scaling-schedule file://schedule.json

该示例将计划放在工作目录中一个名为 schedule.json 的单独文件中。在此示例中,实例在 UTC(协调世界时)星期一和星期二中午左右开启了几个小时。

{ "Monday": { "10": "on", "11": "on", "12": "on", "13": "on" }, "Tuesday": { "10": "on", "11": "on", "12": "on", "13": "on" } }

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“使用基于时间的自动扩展”

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

AWS CLI

启动实例

以下 start-instance 命令启动了指定的全天候实例。

aws opsworks start-instance --instance-id f705ee48-9000-4890-8bd3-20eb05825aaf

输出:无。使用 describe-instances 检查实例的状态。

提示:通过调用 start-stack,可以使用一条命令启动堆栈中的每个离线实例。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“手动启动、停止和重启全天候实例”。

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

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

AWS CLI

启动堆栈的实例

以下示例启动了堆栈的所有全天候实例。要启动特定实例,请使用 start-instance

aws opsworks --region us-east-1 start-stack --stack-id 8c428b08-a1a1-46ce-a5f8-feddc43771b8

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“启动实例”。

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

以下代码示例演示了如何使用 stop-instance

AWS CLI

停止实例

以下示例停止了指定的实例(由其实例 ID 标识)。您可以前往 AWS OpsWorks 控制台上的实例详细信息页面或运行 describe-instances 命令,以获取实例 ID。

aws opsworks stop-instance --region us-east-1 --instance-id 3a21cfac-4a1f-4ce2-a921-b2cfba6f7771

您可以通过调用 start-instance 来重启已停止的实例,或通过调用 delete-instance 来删除实例。

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“停止实例”。

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

以下代码示例演示了如何使用 stop-stack

AWS CLI

停止堆栈的实例

以下示例停止了堆栈的所有全天候实例。要停止特定实例,请使用 stop-instance

aws opsworks --region us-east-1 stop-stack --stack-id 8c428b08-a1a1-46ce-a5f8-feddc43771b8

输出:无输出。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“停止实例”。

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

以下代码示例演示了如何使用 unassign-instance

AWS CLI

从层取消分配注册的实例

以下 unassign-instance 命令从实例的附加层取消分配实例。

aws opsworks --region us-east-1 unassign-instance --instance-id 4d6d1710-ded9-42a1-b08e-b043ad7af1e2

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“取消分配注册的实例”。

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

以下代码示例演示了如何使用 unassign-volume

AWS CLI

从卷的实例取消分配卷

以下示例从实例中取消分配注册的 Amazon Elastic Block Store(Amazon EBS)卷。该卷由其卷 ID 标识,这是 AWS OpsWorks 在您向堆栈注册卷时分配的 GUID,而不是 Amazon Elastic Compute Cloud(Amazon EC2)卷 ID。

aws opsworks --region us-east-1 unassign-volume --volume-id 8430177d-52b7-4948-9c62-e195af4703df

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“取消分配 Amazon EBS 卷”

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

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

AWS CLI

更新应用程序

以下示例更新了指定的应用程序以更改其名称。

aws opsworks --region us-east-1 update-app --app-id 26a61ead-d201-47e3-b55c-2a7c666942f8 --name NewAppName

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“编辑应用程序”

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

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

AWS CLI

更新弹性 IP 地址名称

以下示例更新了指定的弹性 IP 地址的名称。

aws opsworks --region us-east-1 update-elastic-ip --elastic-ip 54.148.130.96 --name NewIPName

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“资源管理”

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

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

AWS CLI

更新实例

以下示例更新了指定实例的类型。

aws opsworks --region us-east-1 update-instance --instance-id dfe18b02-5327-493d-91a4-c5c0c448927f --instance-type c3.xlarge

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“编辑实例配置”。

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

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

AWS CLI

更新层

以下示例更新了指定的层,以使用 Amazon EBS 优化实例。

aws opsworks --region us-east-1 update-layer --layer-id 888c5645-09a5-4d0e-95a8-812ef1db76a4 --use-ebs-optimized-instances

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“编辑 OpsWorks 层配置”。

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

以下代码示例演示了如何使用 update-my-user-profile

AWS CLI

更新用户的配置文件

以下示例更新了 development 用户的配置文件,以使用指定的 SSH 公钥。用户的 AWS 凭证由 credentials 文件(~\.aws\credentials)中的 development 配置文件表示,密钥位于工作目录中的 .pem 文件中。

aws opsworks --region us-east-1 --profile development update-my-user-profile --ssh-public-key file://development_key.pem

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“编辑 AWS OpsWorks 用户设置”。

以下代码示例演示了如何使用 update-rds-db-instance

AWS CLI

更新已注册的 Amazon RDS 数据库实例

以下示例更新了 Amazon RDS 实例的主密码值。请注意,此命令不会更改 RDS 实例的主密码,只会更改您提供给 AWS OpsWorks 的密码。如果此密码与 RDS 实例的密码不匹配,则您的应用程序将无法连接到数据库。

aws opsworks --region us-east-1 update-rds-db-instance --db-password 123456789

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“将 Amazon RDS 实例注册到堆栈”。

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

AWS CLI

更新已注册的卷

以下示例更新了注册的 Amazon Elastic Block Store(Amazon EBS)卷的挂载点。该卷由其卷 ID 标识,这是 AWS OpsWorks 在您向堆栈注册卷时分配的 GUID,而不是 Amazon Elastic Compute Cloud(Amazon EC2)卷 ID。

aws opsworks --region us-east-1 update-volume --volume-id 8430177d-52b7-4948-9c62-e195af4703df --mount-point /mnt/myvol

输出:无。

更多信息

有关更多信息,请参阅《AWS OpsWorks 用户指南》中的“将 Amazon EBS 卷分配给实例”。

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