我编写了一个python脚本,允许用户登录到一个盒子,添加他们的访问/秘密密钥,然后将一个实例部署到vpc中。它还做了一些其他的事情,比如预标记实例等。
我的问题是:
- User-A登录,输入自己的信息,脚本部署
- 用户b登录,输入自己的信息。不是部署一个新的实例,而是修改User-A的实例。
是当前的TF文件:
1 provider "aws" {
2 #access_key = "${var.access_key}"
3 #secret_key = "${var.secret_key}"
4 region = "${var.region}"
5 }
6
7
8 resource "aws_instance" "User-A" {
9 ami = "${lookup(var.amis, var.region)}"
10 instance_type = "t2.micro"
11 subnet_id ="subnet-12688d4a"
12
13
14 tags {
15 Name = “user-A box”
16 multicast = “group,172.16.0.10"
17 owner = “USER-A”
18 }
19
20
21 provisioner "local-exec" {
22 command = "echo ${aws_instance.labMain.public_ip} > pubip.txt"
23 }
24 }
25
26 resource "aws_eip" "ip" {
27 instance = "${aws_instance.labMain.id}"
28 }
29
30
31 output "Your Instance's pubic ip is" {
32 value = "${aws_eip.ip.public_ip}"
33 }
基本上- 我不知道在哪里有用户b附加的tf文件
- 我只是复制代码,即第8-33行,再次在第34行但是获取用户b的信息?
谢谢
我现在明白是怎么回事了。
要创建多个唯一的实例,只需要声明唯一的资源名称。例如:
将上面的代码压缩为一个名为"vlslabMain"的实例
8 resource "aws_instance" "User-A" { stuff }
26 resource "aws_eip" "ip" { stuff }
要创建额外的实例,您只需定义一个新的资源名称
#instance1
resource "aws_instance" "User-A" { stuff }
resource "aws_eip" "ip-User-A" { stuff }
#instance2
resource "aws_instance" "User-B" { stuff }
resource "aws_eip" "ip User-B" { stuff }