Key Pair Attachment
DEPRECATED: This resource has been renamed to alicloud.ecs.EcsKeyPairAttachment from version 1.121.0. Provides a key pair attachment resource to bind key pair for several ECS instances. NOTE: After the key pair is attached with sone instances, there instances must be rebooted to make the key pair affect.
Example Usage
Basic Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetZonesArgs;
import com.pulumi.alicloud.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;
import com.pulumi.alicloud.ecs.inputs.GetImagesArgs;
import com.pulumi.alicloud.vpc.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.vpc.Switch;
import com.pulumi.alicloud.vpc.SwitchArgs;
import com.pulumi.alicloud.ecs.SecurityGroup;
import com.pulumi.alicloud.ecs.SecurityGroupArgs;
import com.pulumi.alicloud.ecs.Instance;
import com.pulumi.alicloud.ecs.InstanceArgs;
import com.pulumi.alicloud.ecs.KeyPair;
import com.pulumi.alicloud.ecs.KeyPairArgs;
import com.pulumi.alicloud.ecs.KeyPairAttachment;
import com.pulumi.alicloud.ecs.KeyPairAttachmentArgs;
import com.pulumi.codegen.internal.KeyedValue;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var config = ctx.config();
final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableDiskCategory("cloud_ssd")
.availableResourceCreation("VSwitch")
.build());
final var type = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()
.avaiabilityZone(default_.zones()[0].id())
.cpuCoreCount(1)
.memorySize(2)
.build());
final var images = EcsFunctions.getImages(GetImagesArgs.builder()
.nameRegex("^ubuntu_18.*64")
.mostRecent(true)
.owners("system")
.build());
final var name = config.get("name").orElse("keyPairAttachmentName");
var vpc = new Network("vpc", NetworkArgs.builder()
.vpcName(name)
.cidrBlock("10.1.0.0/21")
.build());
var vswitch = new Switch("vswitch", SwitchArgs.builder()
.vpcId(vpc.id())
.cidrBlock("10.1.1.0/24")
.zoneId(default_.zones()[0].id())
.vswitchName(name)
.build());
var group = new SecurityGroup("group", SecurityGroupArgs.builder()
.name(name)
.description("New security group")
.vpcId(vpc.id())
.build());
for (var i = 0; i < 2; i++) {
new Instance("instance-" + i, InstanceArgs.builder()
.instanceName(String.format("%s-%s", name,range.value() + 1))
.imageId(images.applyValue(getImagesResult -> getImagesResult.images()[0].id()))
.instanceType(type.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()[0].id()))
.securityGroups(group.id())
.vswitchId(vswitch.id())
.internetChargeType("PayByTraffic")
.internetMaxBandwidthOut(5)
.password("Test12345")
.instanceChargeType("PostPaid")
.systemDiskCategory("cloud_ssd")
.build());
}
var pair = new KeyPair("pair", KeyPairArgs.builder()
.keyName(name)
.build());
var attachment = new KeyPairAttachment("attachment", KeyPairAttachmentArgs.builder()
.keyName(pair.id())
.instanceIds(instance.stream().map(element -> element.id()).collect(toList()))
.build());
}
}
Content copied to clipboard