AWS OpsWorks CM 範例使用 AWS CLI - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS OpsWorks CM 範例使用 AWS CLI

下列程式碼範例說明如何使用 AWS Command Line Interface 與來執行動作及實作常見案例 AWS OpsWorks CM。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境和跨服務範例中查看內容中的動作。

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

每個範例都包含一個連結 GitHub,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例會示範如何使用associate-node

AWS CLI

關聯節點

下列associate-node命令會將名為的節點i-44de882p與名為的 Chef Automation 伺服器產生關聯automate-06,這表示automate-06伺服器管理節點,並透過使用關聯節點命令安裝在節點上的chef-client代理程式軟體將 recipe 命令與節點通訊。有效的節點名稱為 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 為 Chef 自動化自動新增節點

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考AssociateNode中的。

下列程式碼範例會示範如何使用create-backup

AWS CLI

建立備份

以下create-backup命令會啟動automate-06在該us-east-1地區命名的 Chef Automation 伺服器的手動備份。該命令將描述性消息添加到--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 < 備份和還原 Chef 自動化伺服器 >。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CreateBackup中的。

下列程式碼範例會示範如何使用create-server

AWS CLI

若要建立伺服器

下列create-server範例會建立新的 Chef 自動化伺服器,並automate-06在您的預設區域中命名。請注意,大多數其他設定都會使用預設值,例如要保留的備份數目,以及維護和備份開始時間。執行create-server命令之前,請先完成 Chef 自動化使用者指南中 AWS OpsWorks 的AWS Opsworks 自動化使用者入門中的必要條件。

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" ] } }

有關更多信息,請參閱 Chef 自動化 API 參考UpdateServer中的AWS OpsWorks 。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CreateServer中的。

下列程式碼範例會示範如何使用delete-backup

AWS CLI

若要刪除備份

下列delete-backup命令會刪除 Chef Automation 伺服器的手動或自動備份 (由備份 ID 識別)。當您接近可儲存的最大備份數目,或想要將 Amazon S3 儲存成本降至最低時,此命令非常有用。 :

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

輸出會顯示備份刪除是否成功。

更多資訊

如需詳細資訊,請參閱《AWS OpsWorks 使用指南》中的 AWS OpsWorks < 備份和還原 Chef 自動化伺服器 >。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteBackup中的。

下列程式碼範例會示範如何使用delete-server

AWS CLI

若要刪除伺服器

下列delete-server命令會刪除由伺服器名稱識別的 Chef 自動化伺服器。刪除伺服器之後,伺服器將不再由DescribeServer要求傳回。 :

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

輸出會顯示伺服器刪除是否成功。

更多資訊

有關更多信息,請參閱AWS OpsWorks 用戶指南中 AWS OpsWorks 的刪除 Chef 自動化服務器。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteServer中的。

下列程式碼範例會示範如何使用describe-account-attributes

AWS CLI

描述帳號屬性

下列describe-account-attributes命令會傳回有關您帳戶用於 Chef 自動化資源的 AWS OpsWorks 資訊。 :

aws opsworks-cm describe-account-attributes

命令所傳回之每個帳號屬性項目的輸出如下所示。輸出:

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

更多資訊

有關更多信息,請參閱 Chef 自動化 API 參考 DescribeAccountAttributes 中的AWS OpsWorks 。

下列程式碼範例會示範如何使用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 < 備份和還原 Chef 自動化伺服器 >。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DescribeBackups中的。

下列程式碼範例會示範如何使用describe-events

AWS CLI

描述事件

下列describe-events範例會傳回與指定 Chef Automation 伺服器相關聯之所有事件的相關資訊。

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命令返回請求的狀態,以將節點與名為的 Chef Automation 服務器相關聯automate-06。 :

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

命令所傳回之每個帳號屬性項目的輸出如下所示。輸出:

{ "NodeAssociationStatus": "IN_PROGRESS" }

更多資訊

有關更多信息,請參閱 Chef 自動化 API 參考 DescribeNodeAssociationStatus 中的AWS OpsWorks 。

下列程式碼範例會示範如何使用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" ] } ] }

更多資訊

如需詳細資訊,請參閱 Chef 自動化 API 指南 DescribeServers 中的AWS OpsWorks 。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DescribeServers中的。

下列程式碼範例會示範如何使用disassociate-node

AWS CLI

取消關聯節點

以下disassociate-node命令會取消名為的節點的關聯i-44de882p,從名為的 Chef Automation 伺服器從管理中移除節點。automate-06有效的節點名稱為 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 的刪除 Chef 自動化服務器。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DisassociateNode中的。

下列程式碼範例會示範如何使用restore-server

AWS CLI

若要還原伺服器

下列restore-server命令會從 ID 為的備份執行在預設區域automate-06中命名的 Chef Automation 伺服器的就地還原automate-06-2016-11-22T16:13:27.998Z。還原伺服器會還原 Chef Automation 伺服器在執行指定備份時所管理之節點的連線。

AWS 操作-厘米恢復服務器-備份 ID「自動化 -2016 年 11 月 22 日 16:27.998 Z」-服務器名稱「自動化 06」

輸出僅為命令 ID。輸出:

(None)

更多資訊

有關詳情,請參閱AWS OpsWorks 使用指南中的 AWS OpsWorks 為 Chef 自動化伺服器還原失敗。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考RestoreServer中的。

下列程式碼範例會示範如何使用start-maintenance

AWS CLI

開始維護

下列start-maintenance範例會在預設區域中指定的 Chef 自動化或 Puppet 企業伺服器上手動啟動維護。如果先前的自動維護嘗試失敗,且維護失敗的基本原因已解決,則此命令非常有用。

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 企業伺服器)系統維護 (Chef 自動化伺服器)

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考StartMaintenance中的。

下列程式碼範例會示範如何使用update-server-engine-attributes

AWS CLI

更新伺服器引擎屬性

下列update-server-engine-attributes命令會更新名為的 Chef 自動化伺服器的CHEF_PIVOTAL_KEY引擎屬性值automate-06。目前無法變更其他引擎屬性的值。

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" ] } }

有關更多信息,請參閱 Chef 自動化 API 參考UpdateServerEngineAttributes中的AWS OpsWorks 。

下列程式碼範例會示範如何使用update-server

AWS CLI

更新伺服器

下列update-server命令會更新預設區域中指定 Chef Automation 伺服器的維護開始時間。已新增--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" ] } }

有關更多信息,請參閱 Chef 自動化 API 參考UpdateServer中的AWS OpsWorks 。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateServer中的。