AWS CLI를 사용한 AWS OpsWorks CM 예시 - AWS Command Line Interface

AWS CLI를 사용한 AWS OpsWorks CM 예시

다음 코드 예시에서는 AWS OpsWorks CM에서 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 관련 시나리오의 컨텍스트에 따라 표시되며, 개별 서비스 함수를 직접적으로 호출하는 방법을 보여줍니다.

각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.

주제

작업

다음 코드 예시에서는 associate-node의 사용 방법을 보여줍니다.

AWS CLI

노드 연결

다음 associate-node 명령은 automate-06이라는 Chef Automate 서버에 i-44de882p라는 노드를 연결합니다. 즉, associate-node 명령에 의해 노드에 설치된 chef-client 에이전트 소프트웨어를 통해 automate-06 서버가 노드를 관리하고 노드에 레시피 명령을 전달합니다. 유효한 노드 이름은 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 명령은 백업 ID로 식별되는 Chef Automate 서버의 수동 또는 자동 백업을 삭제합니다. 이 명령은 저장할 수 있는 최대 백업 수에 도달하거나 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 명령은 automate-06라는 Chef Automate 서버의 관리에서 i-44de882p라는 노드를 제거하여 해당 노드의 연결을 해제합니다. 유효한 노드 이름은 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 파라미터가 추가되어 서버 유지 관리의 시작 날짜와 시간을 UTC 기준 월요일 오전 9시 15분으로 변경합니다.

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를 참조하세요.