2017-04-25 103 views
2

我有一個Terraform腳本啓動VPC,子網,數據庫,自動縮放等一些東西。自動縮放使用默認的Windows Server 2012 R2映像來啓動新的實例(包括最初的實例)。每個實例在啓動後都會執行Chef安裝。我需要登錄到實例,所以我可以確認Chef已安裝,但我沒有任何.pem密鑰。我如何使用Autoscalinglaunch_configuration啓動實例並輸出.pem文件,以便我可以登錄後? 這裏是腳本我自動縮放部分:如何獲得pem文件的AWS Autoscaling啓動實例

resource "aws_autoscaling_group" "asgPrimary" { 
    depends_on = ["aws_launch_configuration.primary"] 
    availability_zones  = ["${data.aws_availability_zones.available.names[0]}"] 
    name      = "TerraformASGPrimary" 
    max_size     = 1 
    min_size     = 1 
    wait_for_capacity_timeout = "0" 
    health_check_grace_period = 300 
    health_check_type   = "ELB" 
    desired_capacity   = 1 
    force_delete    = false 
    wait_for_capacity_timeout = "0" 
    vpc_zone_identifier = ["${aws_subnet.private_primary.id}"] 
    #placement_group   = "${aws_placement_group.test.id}" 
    launch_configuration  = "${aws_launch_configuration.primary.name}" 
    load_balancers = ["${aws_elb.elb.name}"] 
} 

,這是我的啓動配置:

resource "aws_launch_configuration" "primary" { 
    depends_on = ["aws_subnet.primary"] 
    name   = "web_config_primary" 
    image_id  = "${data.aws_ami.amazon_windows_2012R2.id}" 
    instance_type = "${var.ami_type}" 
    security_groups = ["${aws_security_group.primary.id}"] 
    user_data = "${template_file.user_data.rendered}" 
} 

我需要避免使用亞馬遜CLI或網頁本身 - 點是所有被自動化在所有其他解決方案中重複使用。

回答

0

在啓動EC2實例期間,不會生成用於RDS/SSH到EC2實例的.pem文件。在使用AWS管理控制檯時可能會出現這種情況,但實際上首先生成密鑰對,然後在啓動期間將該密鑰對分配給EC2實例。

爲了讓您的.pem文件,第一:

  1. 生成一個新的密鑰對。請參閱Amazon EC2 Key Pairs。當你這樣做時,你將能夠下載.pem文件。
  2. 使用key_name參數將該密鑰對分配給Auto Scaling Group的啓動配置。

下面是一個例子:

resource "aws_launch_configuration" "primary" { 
    depends_on = ["aws_subnet.primary"] 
    name   = "web_config_primary" 
    image_id  = "${data.aws_ami.amazon_windows_2012R2.id}" 
    instance_type = "${var.ami_type}" 
    security_groups = ["${aws_security_group.primary.id}"] 
    user_data = "${template_file.user_data.rendered}", 
    key_name = "my-key-pair" 
} 

參見:https://www.terraform.io/docs/providers/aws/r/launch_configuration.html#key_name

相關問題