associateNode method
- required List<
EngineAttribute> engineAttributes, - required String nodeName,
- required String serverName,
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.
May throw InvalidStateException. May throw ResourceNotFoundException. May throw ValidationException.
Parameter engineAttributes
:
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 nameddefault
can exist. -
CHEF_NODE_PUBLIC_KEY
: A PEM-formatted public key. This key is required for thechef-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.
Parameter nodeName
:
The name of the node.
Parameter serverName
:
The name of the server with which to associate the node.
Implementation
Future<AssociateNodeResponse> associateNode({
required List<EngineAttribute> engineAttributes,
required String nodeName,
required String serverName,
}) async {
ArgumentError.checkNotNull(engineAttributes, 'engineAttributes');
ArgumentError.checkNotNull(nodeName, 'nodeName');
_s.validateStringLength(
'nodeName',
nodeName,
0,
10000,
isRequired: true,
);
ArgumentError.checkNotNull(serverName, 'serverName');
_s.validateStringLength(
'serverName',
serverName,
1,
40,
isRequired: true,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'OpsWorksCM_V2016_11_01.AssociateNode'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'EngineAttributes': engineAttributes,
'NodeName': nodeName,
'ServerName': serverName,
},
);
return AssociateNodeResponse.fromJson(jsonResponse.body);
}