AWS OpsWorks CM
API Reference (API Version 2016-11-01)

The AWS Documentation website is getting a new look!
Try it now and let us know what you think. Switch to the new look >>

You can return to the original look by selecting English in the language selector above.


Associates a new node with the server. For more information about how to disassociate a node, see DisassociateNode.

On a Chef server: This command is an alternative to knife bootstrap.

Example (Chef): aws opsworks-cm associate-node --server-name MyServer --node-name MyManagedNode --engine-attributes "Name=CHEF_ORGANIZATION,Value=default" "Name=CHEF_NODE_PUBLIC_KEY,Value=public-key-pem"

On a Puppet server, this command is an alternative to the puppet cert sign command that signs a Puppet node CSR.

Example (Chef): aws opsworks-cm associate-node --server-name MyServer --node-name MyManagedNode --engine-attributes "Name=PUPPET_NODE_CSR,Value=csr-pem"

A node can can only be associated with servers that are in a HEALTHY state. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid. The AssociateNode API call can be integrated into Auto Scaling configurations, AWS Cloudformation templates, or the user data of a server's instance.

Request Syntax

{ "EngineAttributes": [ { "Name": "string", "Value": "string" } ], "NodeName": "string", "ServerName": "string" }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.


Engine attributes used for associating the node.

Attributes accepted in a AssociateNode request for Chef

  • CHEF_ORGANIZATION: The Chef organization with which the node is associated. By default only one organization named default can exist.

  • CHEF_NODE_PUBLIC_KEY: A PEM-formatted public key. This key is required for the chef-client agent to access the Chef API.

Attributes accepted in a AssociateNode request for Puppet

  • PUPPET_NODE_CSR: A PEM-formatted certificate-signing request (CSR) that is created by the node.

Type: Array of EngineAttribute objects

Required: Yes


The name of the node.

Type: String

Pattern: ^[\-\p{Alnum}_:.]+$

Required: Yes


The name of the server with which to associate the node.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 40.

Pattern: [a-zA-Z][a-zA-Z0-9\-]*

Required: Yes

Response Syntax

{ "NodeAssociationStatusToken": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.


Contains a token which can be passed to the DescribeNodeAssociationStatus API call to get the status of the association request.

Type: String


For information about the errors that are common to all actions, see Common Errors.


The resource is in a state that does not allow you to perform a specified action.

HTTP Status Code: 400


The requested resource does not exist, or access was denied.

HTTP Status Code: 400


One or more of the provided request parameters are not valid.

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: