mirror of
https://codeberg.org/scottslowe/learning-tools.git
synced 2026-03-11 09:04:37 +00:00
SSH key fixes
Add SSH key to Flatcar and Debian program. Remove references to keypair name. Use pulumi.BoolRef in AMI lookup. Minor code cleanup. Signed-off-by: Scott Lowe <scott.lowe@scottlowe.org>
This commit is contained in:
parent
5d76a05962
commit
a6e33550d8
5 changed files with 44 additions and 12 deletions
1
debian/debian-pulumi-aws/go.mod
vendored
1
debian/debian-pulumi-aws/go.mod
vendored
|
|
@ -5,6 +5,7 @@ go 1.21
|
|||
require (
|
||||
github.com/pulumi/pulumi-aws/sdk/v6 v6.8.0
|
||||
github.com/pulumi/pulumi-awsx/sdk/v2 v2.1.1
|
||||
github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.91.1
|
||||
)
|
||||
|
||||
|
|
|
|||
24
debian/debian-pulumi-aws/main.go
vendored
24
debian/debian-pulumi-aws/main.go
vendored
|
|
@ -6,6 +6,7 @@ import (
|
|||
|
||||
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
|
||||
awsx "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ec2"
|
||||
"github.com/pulumi/pulumi-tls/sdk/v4/go/tls"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
|
||||
)
|
||||
|
|
@ -17,7 +18,6 @@ func main() {
|
|||
typeMap := map[string]string{"amd64": "t3a.small", "arm64": "t4g.small", "x86_64": "t3a.small", "x64": "t3a.small"}
|
||||
|
||||
// Retrieve configuration values
|
||||
keyPair := config.Require(ctx, "keypairname")
|
||||
instanceCpuArch, err := config.Try(ctx, "architecture")
|
||||
if err != nil {
|
||||
instanceCpuArch = "arm64"
|
||||
|
|
@ -86,11 +86,10 @@ func main() {
|
|||
}
|
||||
|
||||
// Get AMI ID for Debian instance
|
||||
mostRecent := true
|
||||
amiName := fmt.Sprintf("debian-%d-%s-*", versionNum, instanceCpuArch)
|
||||
debianAmi, err := ec2.LookupAmi(ctx, &ec2.LookupAmiArgs{
|
||||
Owners: []string{"136693071363"},
|
||||
MostRecent: &mostRecent,
|
||||
MostRecent: pulumi.BoolRef(true),
|
||||
Filters: []ec2.GetAmiFilter{
|
||||
{Name: "name", Values: []string{amiName}},
|
||||
{Name: "root-device-type", Values: []string{"ebs"}},
|
||||
|
|
@ -102,12 +101,28 @@ func main() {
|
|||
log.Printf("error looking up AMI: %s", err.Error())
|
||||
}
|
||||
|
||||
// Create an SSH key
|
||||
sshKey, err := tls.NewPrivateKey(ctx, "ssh-key", &tls.PrivateKeyArgs{
|
||||
Algorithm: pulumi.String("ED25519"),
|
||||
})
|
||||
if err != nil {
|
||||
log.Printf("error creating SSH key: %s", err.Error())
|
||||
}
|
||||
|
||||
// Create an AWS key pair
|
||||
debianKeyPair, err := ec2.NewKeyPair(ctx, "debian-key-pair", &ec2.KeyPairArgs{
|
||||
PublicKey: sshKey.PublicKeyOpenssh,
|
||||
})
|
||||
if err != nil {
|
||||
log.Printf("error creating AWS key pair: %s", err.Error())
|
||||
}
|
||||
|
||||
// Launch an instance using Debian AMI
|
||||
debianInstance, err := ec2.NewInstance(ctx, "debian-instance", &ec2.InstanceArgs{
|
||||
Ami: pulumi.String(debianAmi.Id),
|
||||
InstanceType: pulumi.String(instanceType),
|
||||
AssociatePublicIpAddress: pulumi.Bool(true),
|
||||
KeyName: pulumi.String(keyPair),
|
||||
KeyName: debianKeyPair.KeyName,
|
||||
SubnetId: debianVpc.PublicSubnetIds.Index(pulumi.Int(0)),
|
||||
VpcSecurityGroupIds: pulumi.StringArray{debianSg.ID()},
|
||||
Tags: pulumi.StringMap{
|
||||
|
|
@ -120,6 +135,7 @@ func main() {
|
|||
ctx.Export("instanceId", debianInstance.ID())
|
||||
ctx.Export("instancePublicIpAddress", debianInstance.PublicIp)
|
||||
ctx.Export("instancePrivateIpAddress", debianInstance.PrivateIp)
|
||||
ctx.Export("privateKey", sshKey.PrivateKeyOpenssh)
|
||||
|
||||
return nil
|
||||
})
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ go 1.21
|
|||
require (
|
||||
github.com/pulumi/pulumi-aws/sdk/v6 v6.8.0
|
||||
github.com/pulumi/pulumi-awsx/sdk/v2 v2.1.1
|
||||
github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.91.1
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import (
|
|||
|
||||
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
|
||||
awsx "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ec2"
|
||||
"github.com/pulumi/pulumi-tls/sdk/v4/go/tls"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
|
||||
)
|
||||
|
|
@ -18,7 +19,6 @@ func main() {
|
|||
typeMap := map[string]string{"amd64": "t3a.small", "arm64": "t4g.small", "x86_64": "t3a.small", "x64": "t3a.small"}
|
||||
|
||||
// Retrieve configuration values
|
||||
keyPair := config.Require(ctx, "keypairname")
|
||||
instanceCpuArch, err := config.Try(ctx, "architecture")
|
||||
if err != nil {
|
||||
instanceCpuArch = "arm64"
|
||||
|
|
@ -107,11 +107,10 @@ func main() {
|
|||
}
|
||||
|
||||
// Get AMI ID for Flatcar Linux instance
|
||||
mostRecent := true
|
||||
amiName := fmt.Sprintf("Flatcar-%s-*", channel)
|
||||
flatcarAmi, err := ec2.LookupAmi(ctx, &ec2.LookupAmiArgs{
|
||||
Owners: []string{"075585003325"},
|
||||
MostRecent: &mostRecent,
|
||||
MostRecent: pulumi.BoolRef(true),
|
||||
Filters: []ec2.GetAmiFilter{
|
||||
{Name: "name", Values: []string{amiName}},
|
||||
{Name: "root-device-type", Values: []string{"ebs"}},
|
||||
|
|
@ -123,12 +122,28 @@ func main() {
|
|||
log.Printf("error looking up AMI: %s", err.Error())
|
||||
}
|
||||
|
||||
// Create an SSH key
|
||||
sshKey, err := tls.NewPrivateKey(ctx, "ssh-key", &tls.PrivateKeyArgs{
|
||||
Algorithm: pulumi.String("ED25519"),
|
||||
})
|
||||
if err != nil {
|
||||
log.Printf("error creating SSH key: %s", err.Error())
|
||||
}
|
||||
|
||||
// Create an AWS key pair
|
||||
flatcarKeyPair, err := ec2.NewKeyPair(ctx, "flatcar-key-pair", &ec2.KeyPairArgs{
|
||||
PublicKey: sshKey.PublicKeyOpenssh,
|
||||
})
|
||||
if err != nil {
|
||||
log.Printf("error creating AWS key pair: %s", err.Error())
|
||||
}
|
||||
|
||||
// Launch an instance using Flatcar Linux AMI
|
||||
flatcarInstance, err := ec2.NewInstance(ctx, "flatcar-instance", &ec2.InstanceArgs{
|
||||
Ami: pulumi.String(flatcarAmi.Id),
|
||||
InstanceType: pulumi.String(instanceType),
|
||||
AssociatePublicIpAddress: pulumi.Bool(true),
|
||||
KeyName: pulumi.String(keyPair),
|
||||
KeyName: flatcarKeyPair.KeyName,
|
||||
SubnetId: flatcarVpc.PublicSubnetIds.Index(pulumi.Int(0)),
|
||||
VpcSecurityGroupIds: pulumi.StringArray{flatcarSg.ID()},
|
||||
Tags: pulumi.StringMap{
|
||||
|
|
@ -141,6 +156,7 @@ func main() {
|
|||
ctx.Export("instanceId", flatcarInstance.ID())
|
||||
ctx.Export("instancePublicIpAddress", flatcarInstance.PublicIp)
|
||||
ctx.Export("instancePrivateIpAddress", flatcarInstance.PrivateIp)
|
||||
ctx.Export("privateKey", sshKey.PrivateKeyOpenssh)
|
||||
|
||||
return nil
|
||||
})
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import (
|
|||
|
||||
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
|
||||
awsx "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ec2"
|
||||
tls "github.com/pulumi/pulumi-tls/sdk/v4/go/tls"
|
||||
"github.com/pulumi/pulumi-tls/sdk/v4/go/tls"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
|
||||
)
|
||||
|
|
@ -87,11 +87,10 @@ func main() {
|
|||
}
|
||||
|
||||
// Get AMI ID for Ubuntu instance
|
||||
mostRecent := true
|
||||
amiName := fmt.Sprintf("ubuntu/images/hvm-ssd/ubuntu-%s-%s-%s-server*", versionName, versionNum, instanceCpuArch)
|
||||
ubuntuAmi, err := ec2.LookupAmi(ctx, &ec2.LookupAmiArgs{
|
||||
Owners: []string{"099720109477"},
|
||||
MostRecent: &mostRecent,
|
||||
MostRecent: pulumi.BoolRef(true),
|
||||
Filters: []ec2.GetAmiFilter{
|
||||
{Name: "name", Values: []string{amiName}},
|
||||
{Name: "root-device-type", Values: []string{"ebs"}},
|
||||
|
|
@ -113,7 +112,6 @@ func main() {
|
|||
|
||||
// Create an AWS key pair
|
||||
ubuntuKeyPair, err := ec2.NewKeyPair(ctx, "ubuntu-key-pair", &ec2.KeyPairArgs{
|
||||
KeyName: pulumi.String("ubuntu-keypair"),
|
||||
PublicKey: sshKey.PublicKeyOpenssh,
|
||||
})
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Reference in a new issue