AWS ベースの Nexus Dashboard の展開では、ノードが何らかの理由で RMA または交換が必要な場合、新しい交換用ノードをAWS に展開する必要があります。
オンプレミスの物理 Nexus Dashboard(pND)およびリモート対応 Nexus Dashboard(vND)の展開で使用可能な工場出荷時の状態へのリセットとノードの復元オプションは、AWS ベースのノードではサポートされていません。したがって、影響を受けたノードをその場所で回復することはできず、新しいノードとして再展開する必要があります。
元の 3 ノード CloudFormation(CFT)テンプレートを使用して個々のノードを置き換えないでください。単一ノードの交換の場合は、以下に示す専用の単一ノード CFT テンプレートを使用して新しいノードを展開します。
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "This cloud formation template automates the creation and launching of a Cisco Nexus Dashboard cluster (vND data 32vCPU/128GMem/10G Network/3T Disk) in multiple Availability Zones (AZs) of AWS. Deployment requires a Application VPC to exist in the account from which the cluster will be is launched. For detailed, description of this template and usage instructions please refer to ND deployment guide.",
"Metadata": {
"AWS::CloudFormation::Interface": {
"ParameterGroups": [
{
"Label": {
"default": "Nexus Dashboard Basic Configuration"
},
"Parameters": [
"NDClusterName",
"FabricPersona",
"VpcId",
"SecurityGroupId",
"InstanceType",
"AMIId",
"AdminPassword",
"KeyPairName",
"ExistingEIPAllocationId1",
"ExistingEIPAddress1"
]
},
{
"Label": {
"default": "Nexus Dashboard Node Configuration"
},
"Parameters": [
"hostNameND1",
"SubnetNDMgmt1",
"StaticNDMgmt1IP",
"SubnetNDMgmt1Netmask",
"SubnetNDMgmt1Gateway",
"SubnetNDData1",
"StaticNDData1IP",
"SubnetNDData1Netmask",
"SubnetNDData1Gateway"
]
}
],
"ParameterLabels": {
"NDClusterName": { "default": "ND Cluster Name" },
"VpcId": { "default": "VPC identifier" },
"hostNameND1": { "default": "ND Node Hostname" },
"SubnetNDMgmt1": { "default": "ND Node Management Subnet" },
"StaticNDMgmt1IP": { "default": "ND Node Static Management IP" },
"SubnetNDMgmt1Netmask": { "default": "ND Node Management Subnet Netmask" },
"SubnetNDMgmt1Gateway": { "default": "ND Node Management Subnet Gateway" },
"SubnetNDData1": { "default": "ND Node Data Subnet" },
"StaticNDData1IP": { "default": "ND Node Static Data IP" },
"SubnetNDData1Netmask": { "default": "ND Node Data Subnet Netmask" },
"SubnetNDData1Gateway": { "default": "ND Node Data Subnet Gateway" },
"SecurityGroupId": { "default": "Security Group identifier" },
"InstanceType": { "default": "Instance Type" },
"AMIId": { "default": "AMI identifier" },
"AdminPassword": { "default": "Password" },
"KeyPairName": { "default": "Key Pair Name" },
"ExistingEIPAllocationId1": { "default": "ND Node 1 EIP Allocation ID." },
"ExistingEIPAddress1": { "default": "ND Node 1 Elastic IP." }
}
}
},
"Parameters": {
"NDClusterName": {
"Type": "String",
"Description": "Nexus Dashboard Cluster name.",
"MinLength": 1
},
"VpcId": {
"Type": "String",
"Description": "VpcId of your existing Virtual Private Cloud (VPC) to launch ND cluster.",
"ConstraintDescription": "Must be the VPC Id of an existing Virtual Private Cloud."
},
"hostNameND1": {
"Type": "String",
"Description": "Specify the hostname for ND Node 1.",
"Default": "AWSND1"
},
"SubnetNDMgmt1": {
"Type": "AWS::EC2::Subnet::Id",
"Description": "Select the 1st management subnet for the ND Node 1."
},
"StaticNDMgmt1IP": {
"Type": "String",
"Description": "Specify a static management IP address from the selected subnet. Ensure not in-use already.",
"AllowedPattern": "^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",
"Default": "0.0.0.0"
},
"SubnetNDMgmt1Netmask": {
"Type": "String",
"Description": "Specify the 1st management subnet netmask in CIDR notation (16-28).",
"Default": "24",
"AllowedPattern": "^(1[6-9]|2[0-8])$"
},
"SubnetNDMgmt1Gateway": {
"Type": "String",
"Description": "Specify the 1st management default gateway on the selected management subnet. This is typically the first address on the subnet.",
"AllowedPattern": "^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",
"Default": "0.0.0.0"
},
"SubnetNDData1": {
"Type": "AWS::EC2::Subnet::Id",
"Description": "Select the 1st data subnet for the ND Node 1."
},
"StaticNDData1IP": {
"Type": "String",
"Description": "Specify a static data IP address from the selected subnet. Ensure not in-use already.",
"AllowedPattern": "^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",
"Default": "0.0.0.0"
},
"SubnetNDData1Netmask": {
"Type": "String",
"Description": "Specify the 1st data subnet netmask in CIDR notation (16-28).",
"Default": "24",
"AllowedPattern": "^(1[6-9]|2[0-8])$"
},
"SubnetNDData1Gateway": {
"Type": "String",
"Description": "Specify the 1st data default gateway on the selected management subnet. This is typically the first address on the subnet.",
"AllowedPattern": "^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",
"Default": "0.0.0.0"
},
"SecurityGroupId": {
"Type": "AWS::EC2::SecurityGroup::Id",
"Description": "Pre-created security group to be applied. Must allow ingress access for ports 22, 443. Check docs for other needed ports."
},
"InstanceType": {
"Type": "String",
"Description": "Specify EC2 instance type for the node instances.",
"AllowedValues": ["m5.8xlarge"],
"Default": "m5.8xlarge"
},
"AMIId": {
"Type": "AWS::EC2::Image::Id",
"Description": "Specify the AWS AMI for Nexus Dashboard."
},
"AdminPassword": {
"Type": "String",
"Description": "Admin user password for ND node (must contain atleast 1 letter, number and special char @$!%*#?& length: 8-64 chars).",
"NoEcho": true,
"MinLength": 8,
"MaxLength": 64,
"AllowedPattern": "^(?=.*[A-Za-z])(?=.*\\d)(?=.*[@$!%*#?&])[A-Za-z\\d@$!%*#?&]{8,64}$"
},
"KeyPairName": {
"Type": "AWS::EC2::KeyPair::KeyName",
"Description": "Required - Specify Name of an existing SSH KeyPair to enable SSH access to ND."
},
"ExistingEIPAllocationId1": {
"Type": "String",
"Description": "Allocation ID of an existing Elastic IP for ND Node 1."
},
"ExistingEIPAddress1": {
"Type": "String",
"Description": "Public IP of the existing Elastic IP (e.g., 203.0.113.42) for ND Node 1.",
"Default": "0.0.0.0"
}
},
"Resources": {
"ND1": {
"Type": "AWS::EC2::Instance",
"Properties": {
"InstanceType": { "Ref": "InstanceType" },
"ImageId": { "Ref": "AMIId" },
"KeyName": { "Ref": "KeyPairName" },
"NetworkInterfaces": [
{
"DeviceIndex": 0,
"NetworkInterfaceId": { "Ref": "ND1MgmtENI" }
},
{
"DeviceIndex": 1,
"NetworkInterfaceId": { "Ref": "ND1DataENI" }
}
],
"EbsOptimized": true,
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": { "VolumeType": "gp3", "Iops": 5000 }
},
{
"DeviceName": "/dev/xvdh",
"Ebs": {
"VolumeSize": 3072,
"VolumeType": "gp3",
"Iops": 5000
}
}
],
"Tags": [{ "Key": "Name", "Value": "ND1-Master" }],
"UserData": {
"Fn::Base64": {
"Fn::Sub": "{\n \"password\": \"${AdminPassword}\",\n \"clusterName\": \"${NDClusterName}\",\n \"oobNetwork\": {\n \"ipSubnet\": \"${StaticNDMgmt1IP}/${SubnetNDMgmt1Netmask}\",\n \"gateway\": \"${SubnetNDMgmt1Gateway}\"\n }\n}\n"
}
}
}
},
"ND1MgmtENI": {
"Type": "AWS::EC2::NetworkInterface",
"Properties": {
"SubnetId": { "Ref": "SubnetNDMgmt1" },
"PrivateIpAddresses": [
{
"PrivateIpAddress": { "Ref": "StaticNDMgmt1IP" },
"Primary": true
}
],
"GroupSet": [{ "Ref": "SecurityGroupId" }]
}
},
"EIPAssoc1": {
"Type": "AWS::EC2::EIPAssociation",
"Properties": {
"NetworkInterfaceId": { "Ref": "ND1MgmtENI" },
"AllocationId": { "Ref": "ExistingEIPAllocationId1" }
}
},
"ND1DataENI": {
"Type": "AWS::EC2::NetworkInterface",
"Properties": {
"SubnetId": { "Ref": "SubnetNDData1" },
"PrivateIpAddresses": [
{
"PrivateIpAddress": { "Ref": "StaticNDData1IP" },
"Primary": true
}
],
"GroupSet": [{ "Ref": "SecurityGroupId" }]
}
}
},
"Outputs": {
"ND1PublicIP": {
"Description": "Public IP of ND Node 1.",
"Value": { "Ref": "ExistingEIPAddress1" }
}
}
}