Advertisement
Guest User

Untitled

a guest
Jul 16th, 2021
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "github.com/pulumi/pulumi-aws/sdk/v4/go/aws/ec2"
  5. "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
  6. )
  7.  
  8. func main() {
  9. pulumi.Run(func(ctx *pulumi.Context) error {
  10. // Create a new security group for port 80.
  11. group, err := ec2.NewSecurityGroup(ctx, "web-secgrp", &ec2.SecurityGroupArgs{
  12. Ingress: ec2.SecurityGroupIngressArray{
  13. ec2.SecurityGroupIngressArgs{
  14. Protocol: pulumi.String("tcp"),
  15. FromPort: pulumi.Int(80),
  16. ToPort: pulumi.Int(80),
  17. CidrBlocks: pulumi.StringArray{pulumi.String("0.0.0.0/0")},
  18. },
  19. ec2.SecurityGroupIngressArgs{
  20. Protocol: pulumi.String("tcp"),
  21. FromPort: pulumi.Int(22),
  22. ToPort: pulumi.Int(22),
  23. CidrBlocks: pulumi.StringArray{pulumi.String("0.0.0.0/0")},
  24. },
  25. },
  26. })
  27. if err != nil {
  28. return err
  29. }
  30.  
  31. // Create a simple web server using the startup script for the instance.
  32. srv, err := ec2.NewInstance(ctx, "web-server-www", &ec2.InstanceArgs{
  33. Tags: pulumi.StringMap{"Name": pulumi.String("web-server-www")},
  34. InstanceType: pulumi.String("t2.micro"), // t2.micro is available in the AWS free tier.
  35. VpcSecurityGroupIds: pulumi.StringArray{group.ID()},
  36. Ami: pulumi.String("ami-0d058fe428540cd89"),
  37. UserData: pulumi.String(`#!/bin/bash
  38. echo "Hello, World!" > index.html
  39. nohup python -m SimpleHTTPServer 80 &`),
  40. })
  41.  
  42. // Create Keypair
  43. _, err = ec2.NewKeyPair(ctx, "pulumi-deployer", &ec2.KeyPairArgs{
  44. PublicKey: pulumi.String("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD3F6tyPEFEzV0LX3X8BsXdMsQz1x2cEikKDEY0aIj41qgxMCP/iteneqXSIFZBp5vizPvaoIR3Um9xK7PGoW8giupGn+EPuxIA4cDM4vzOqOkiMPhz5XK0whEjkVzTo4+S0puvDZuwIsdiW9mxhJc7tgBNL0cYlWSYVkz4G/fslNfRPW5mYAM49f4fhtxPb5ok4Q2Lg9dPKVHO/Bgeu5woMc7RY0p1ej6D4CKFE6lymSDJpW0YHX/wqE9+cfEauh7xZcG0q9t2ta6F6fmX0agvpFyZo8aFbXeUBr7osSCJNgvavWbM/06niWrOvYX2xwWdhXmXSrbX8ZbabVohBK41 email@example.com"),
  45. })
  46. if err != nil {
  47. return err
  48. }
  49.  
  50. // Export the resulting server's IP address and DNS name.
  51. ctx.Export("publicIp", srv.PublicIp)
  52. ctx.Export("publicHostName", srv.PublicDns)
  53. return nil
  54. })
  55. }
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement