1. 简介

OPEN-C3提供了内建插件用于调用terraform,通过这个插件可以做资源编排

2. 配置文件

config文件配置

terraform-config

使用内建插件,点击选择terraform类型。

脚本内容示例如下:

#!terraform
provider "aws" {
    access_key = "XXXXXX"
    secret_key = "XXXXXX"
    region = "us-east-1"
}

resource "aws_instance" "web" {
    ami = "ami-2757f631"
    instance_type = "t2.micro"
    count             = 3
    subnet_id = "${var.subnetid}"
}

resource "aws_lb" "weblb" {
  name               = "weblb"
  internal           = false
  load_balancer_type = "application"
  security_groups    = "${var.sgs}"
  subnets            = "${var.subnetids}"
  enable_deletion_protection = false
}

resource "aws_lb_listener" "front_end" {
  load_balancer_arn = aws_lb.weblb.arn
  port              = "80"
  protocol          = "HTTP"
  default_action {
    type             = "forward"
    target_group_arn = aws_lb_target_group.webserver.arn
  }
}

resource "aws_lb_target_group" "webserver" {
  name     = "webserver-targetgroup"
  port     = 80
  protocol = "HTTP"
  vpc_id   = "${var.vpcid}"
}

resource "aws_lb_target_group_attachment" "web1" {
  target_group_arn = aws_lb_target_group.webserver.arn
  target_id        = aws_instance.web[0].id
  port             = 80
}

resource "aws_lb_target_group_attachment" "web2" {
  target_group_arn = aws_lb_target_group.webserver.arn
  target_id        = aws_instance.web[1].id
  port             = 80
}
resource "aws_lb_target_group_attachment" "test" {
  target_group_arn = aws_lb_target_group.webserver.arn
  target_id        = aws_instance.web[0].id
  port             = 80
}

variable "vpcid" {
    default = "vpc-07d7ed83ee7375813"
}

variable "subnetid" {
    default = "subnet-0b7fd82a07b9b7f66"
}
variable "subnetids" {
    default = ["subnet-0b7fd82a07b9b7f66", "subnet-08966f2af1fd1e3d8"]
}

variable "sgs" {
    default = ["sg-08f7116e2c9325edb"]
}

票据: 空。上面配置的方式中key已经在配置文件中,所以这里不需要票据。

脚本参数: config

注: 每个terraform作业在系统中都会有一个独立的目录存放config文件。每个config可以编辑一个文件。
可以添加多个config步骤,如脚本参数中写 config lb.tf 。
则在目录中会有一个lb.tf文件。当脚本参数为config时候,其实是config main.tf。

2.1. 操作动作

有四个操作动作:init、plan、apply、destory

四个动作可以在一个步骤中执行,执行过程中按照脚本参数的顺序进行调用。

所以可以配置如下:

2.1.1. init & plan

使用内建插件,点击选择terraform类型。

脚本内容固定为如下:

#!terraform

票据: 空 脚本参数: init plan

这里是把init和plan两个动作在这里按照顺序执行,执行后可以在日志中看出如果真实执行apply的资源变化情况。
正常应该在plan之后添加一步审批操作,审批后执行下一步的apply。

terraform-plan

2.1.2. apply

使用内建插件,点击选择terraform类型。

脚本内容固定为如下:

#!terraform

票据: 空 脚本参数: apply

terraform-apply

2.1.3. destroy

和apply几乎一样,把脚本参数换成destory即可。destroy用户销毁资源 。

3. 票据

下面以AWS为例说明怎么管理票据,AWS通过下面两个环境变量来控制访问的key。

export AWS_ACCESS_KEY_ID="XXXX"
export AWS_SECRET_ACCESS_KEY="XXXX"

每一行的内容格式必须为: /^export\s+[A-Za-z0-9_]+="[A-Za-z0-9\/]+"\s*$/ 否则系统会提示错误。

terraform-ticket

如果确定使用票据的方式,在前面配置作业的过程中,除了config步骤,其他操作terraform 的步骤选择上票据。

4. 维护注意

需要手动维护OPEN-C3服务所在机器的terraform命令【单机版更新的是容器中的terraform】。

wget https://github.com/open-c3/open-c3-install-cache/job-buildin/terraform -O /bin/terraform
chmod +x /bin/terraform
Copyright 2020 - 2020. all right reserved,powered by Gitbook该文件修订时间: 2024-12-19 21:38:04

results matching ""

    No results matching ""