[ aws . opsworkscm ]



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 (Puppet): 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.

See also: AWS API Documentation

See ‘aws help’ for descriptions of global parameters.


--server-name <value>
--node-name <value>
--engine-attributes <value>
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]


--server-name (string)

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

--node-name (string)

The name of the node.

--engine-attributes (list)

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.


A name and value pair that is specific to the engine of the server.

Name -> (string)

The name of the engine attribute.

Value -> (string)

The value of the engine attribute.

Shorthand Syntax:

Name=string,Value=string ...

JSON Syntax:

    "Name": "string",
    "Value": "string"

--cli-input-json | --cli-input-yaml (string) Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml.

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. Similarly, if provided yaml-input it will print a sample input YAML that can be used with --cli-input-yaml. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

See ‘aws help’ for descriptions of global parameters.



To use the following examples, you must have the AWS CLI installed and configured. See the Getting started guide in the AWS CLI User Guide for more information.

Unless otherwise stated, all examples have unix-like quotation rules. These examples will need to be adapted to your terminal’s quoting rules. See Using quotation marks with strings in the AWS CLI User Guide .

To associate nodes

The following associate-node command associates a node named i-44de882p with a Chef Automate server named automate-06, meaning that the automate-06 server manages the node, and communicates recipe commands to the node through chef-client agent software that is installed on the node by the associate-node command. Valid node names are EC2 instance IDs.:

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'"

The output returned by the command resembles the following. Output:

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

More Information

For more information, see Adding Nodes Automatically in AWS OpsWorks for Chef Automate in the AWS OpsWorks User Guide.


NodeAssociationStatusToken -> (string)

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