average-nest-71706
03/01/2021, 1:00 PMimport pulumi
import pulumi_aws as aws
size = 't2.micro'
ami = aws.get_ami(most_recent="true",
owners=["amazon"],
filters=[{"name":"name", "values":["amzn-ami-hvm-*"]}]
)
group = aws.ec2.SecurityGroup('webserver-secgrp',
description="Enable HTTP access",
ingress=[
{ 'protocol': 'tcp', 'from_port': 22, 'to_port': 22, 'cidr_blocks': ['0.0.0.0/0'] },
{ 'protocol': 'tcp', 'from_port': 80, 'to_port': 80, 'cidr_blocks': ['0.0.0.0/0'] }
]
)
user_data = """
#!/bin/bash
echo "Hello, World!" > index.html
nohup python -m SimpleHTTPServer 80 &
"""
server = aws.ec2.Instance('webserver-www',
instance_type=size,
vpc_security_group_ids = [group.id],
user_data=user_data,
ami=ami.id
)
pulumi.export('publicIp', server.public_ip)
pulumi.export('publicHostName', server.public_dns)
My question is how am I going to add that on the code above? I've been trying different code but still not successful in adding the existing keypair.broad-dog-22463
03/01/2021, 1:32 PMaverage-nest-71706
03/01/2021, 3:16 PM@staticmethod
def get(resource_name: str, id: str, opts: Optional[ResourceOptions] = None, arn: Optional[str] = None, fingerprint: Optional[str] = None, key_name: Optional[str] = None, key_name_prefix: Optional[str] = None, key_pair_id: Optional[str] = None, public_key: Optional[str] = None, tags: Optional[Mapping[str, str]] = None) -> KeyPair
deployer = aws.ec2.get("FirstKeyPair", id: "key-0f0e4b....")
@staticmethod
def get
on Pulumi documentation, I hope it will going to have some sort of example usage.broad-dog-22463
03/01/2021, 3:44 PMaverage-nest-71706
03/01/2021, 3:53 PMpulumi import aws:ec2/keyPair:KeyPair deployer FirstKeyPair
pulumi import aws:ec2/keyPair:KeyPair deployer FirstKeyPair
Previewing import (dev)
View Live: <https://app.pulumi.com/.../webserver/dev/previews/5da907e7-e1b2-49e3-bf7a-3fc87457d87b>
Type Name Plan Info
pulumi:pulumi:Stack webserver-dev 1 error
= └─ aws:ec2:KeyPair deployer import 2 errors
Diagnostics:
pulumi:pulumi:Stack (webserver-dev):
error: preview failed
aws:ec2:KeyPair (deployer):
error: aws:ec2/keyPair:KeyPair resource 'deployer' has a problem: Required attribute is not set
error: Preview failed: one or more inputs failed to validate
I have tried to do pulumi import and got this.broad-dog-22463
03/01/2021, 4:13 PMaverage-nest-71706
03/01/2021, 4:20 PMimport pulumi
import pulumi_aws as aws
deployer = aws.ec2.KeyPair("deployer", public_key="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD3F6tyPEFEzV0LX3X8BsXdMsQz1x2cEikKDEY0aIj41qgxMCP/iteneqXSIFZBp5vizPvaoIR3Um9xK7PGoW8giupGn+EPuxIA4cDM4vzOqOkiMPhz5XK0whEjkVzTo4+S0puvDZuwIsdiW9mxhJc7tgBNL0cYlWSYVkz4G/fslNfRPW5mYAM49f4fhtxPb5ok4Q2Lg9dPKVHO/Bgeu5woMc7RY0p1ej6D4CKFE6lymSDJpW0YHX/wqE9+cfEauh7xZcG0q9t2ta6F6fmX0agvpFyZo8aFbXeUBr7osSCJNgvavWbM/06niWrOvYX2xwWdhXmXSrbX8ZbabVohBK41 <mailto:email@example.com|email@example.com>")
broad-dog-22463
03/01/2021, 4:21 PMaverage-nest-71706
03/01/2021, 4:40 PMEnc_key = "ssh-rsa somrandomeautogeneratedkeyhereAAAAEBRGRWQrgc"
deployer = aws.ec2.KeyPair("deployer", public_key=Enc_Key)
server = aws.ec2.Instance('webserver-www',
instance_type=size,
vpc_security_group_ids = [group.id],
user_data=user_data,
ami=ami.id,
key_name=deployer
)
At first it give me an error because deployer value on key_name is not returning the key pair name.
So I removed that and do "pulumi up", it was successful but ec2 instance generated still don't have a key pair assigned. I also checked the Key Pair on aws and it generated a key pair for me named "deployer-2f63432".
What I did next is updated the aws.ec2.Instance and added key_name="deployer-2f63432" and there, I saw that my ec2 instance now have an assigned keypair.broad-dog-22463
03/01/2021, 5:18 PMaverage-nest-71706
03/02/2021, 6:46 AM