什么是Terraform?
- 这是一种开源IAAC(基础架构作为代码)软件工具,您可以使用声明性配置语言示例中的提供商来定义和创建资源。
- 使用Terraform,您可以以模块的形式包装并重复使用代码。
- 它支持许多云基础架构提供商,例如AWS,Azure,GCP,IBM Cloud,OCI等。
请访问我的 GitHub Repository for Terraform projects 有关各种主题的不断更新。
请访问我的 GitHub Repository for RDS_projects 关于不断更新的各种主题。
让我们开始!
目标:
1。为此项目创建基础架构
2。更改目录 - terraform-project
和运行 terraform init
< /p>
3。生成动作计划
4。创建在 main.tf
配置文件中声明的所有资源。
5。
6。使用MySQL Workbench测试RDS连接 7。删除AWS资源 让我们创建以下组织结构,如下所示。 创建一个目录 - 创建4个文件 - 创建 您正在定义变量中声明的变量的动态值。 1。使用MySQL监视器连接到DB实例上的数据库,找到DB实例的端点(DNS名称)和端口号。 转到数据库,然后单击 在“连接与安全”部分下,复制并记录端点和端口。 端点: 端口: 2。打开MySQL Workbench。单击加号图标。 连接名称: 端口: 用户名: 密码:单击存储中的存储库,然后输入密码 3。单击它以打开数据库。如果提示,输入数据库密码。 成功连接和打开数据库后,您可以在连接的数据库上创建表并执行各种查询。 导航到schemas选项卡以查看可用于开始数据库操作的数据库。有关数据库操作的更多详细信息,请访问here。
先决条件:
使用的资源:
该项目实施的步骤:
1.为该项目创建基础架构
terraform-project
variables.tf
, terraform.tfvars
, main.tf
< /em> outputs.tf
。
variables.tf
文件。
#variables.tf
variable "access_key" {
description = "Access key to AWS console"
}
variable "secret_key" {
description = "Secret key to AWS console"
}
variable "region" {
description = "AWS region"
}
terraform.tfvars
文件。
#terraform.tfvars
region = "us-east-1"
access_key = "<YOUR AWS CONSOLE ACCESS ID>"
secret_key = "<YOUR AWS CONSOLE SECRET KEY>"
main.tf
文件。
#main.tf
#defining the provider as aws
provider "aws" {
region = "${var.region}"
access_key = "${var.access_key}"
secret_key = "${var.secret_key}"
}
#create a security group for RDS Database Instance
resource "aws_security_group" "rds_sg" {
name = "rds_sg"
ingress {
from_port = 3306
to_port = 3306
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
#create a RDS Database Instance
resource "aws_db_instance" "myinstance" {
engine = "mysql"
identifier = "myrdsinstance"
allocated_storage = 20
engine_version = "5.7"
instance_class = "db.t2.micro"
username = "myrdsuser"
password = "myrdspassword"
parameter_group_name = "default.mysql5.7"
vpc_security_group_ids = ["${aws_security_group.rds_sg.id}"]
skip_final_snapshot = true
publicly_accessible = true
}
outputs.tf
文件。 #outputs.tf
output "security_group_id" {
value = aws_security_group.rds_sg.id
}
output "db_instance_endpoint" {
value = aws_db_instance.myinstance.endpoint
}
2.更改为
terraform-project
,然后运行 terraform init
以初始化Terraform。
cd ../terraform-project
terraform init
3.生成行动计划
terraform plan
4.创建在
main.tf
配置文件中声明的所有资源。
terraform apply
5.从AWS控制台检查产生的基因结构
6.使用MySQL Workbench测试RDS连接
myrdsinstance
。myrdsinstance.cgizjtuyxkda.us-east-1.rds.amazonaws.com
3306
MyDatabseConnection
3306
myrdsuser
myrdspassword
。单击确定。
7.删除AWS资源
terraform destroy
到目前为止我们所做的