Skip to content

Commit 6500c9d

Browse files
DNS GTM解决方案
1 parent 2ac1647 commit 6500c9d

File tree

3 files changed

+165
-0
lines changed

3 files changed

+165
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<!-- BEGIN_TF_DOCS -->
2+
## Providers
3+
4+
| Name | Version |
5+
|------|---------|
6+
| <a name="provider_alicloud"></a> [alicloud](#provider\_alicloud) | n/a |
7+
8+
## Modules
9+
10+
No modules.
11+
12+
## Resources
13+
14+
| Name | Type |
15+
|------|------|
16+
| [alicloud_ecs_command.deploy](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/ecs_command) | resource |
17+
| [alicloud_ecs_invocation.invocation](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/ecs_invocation) | resource |
18+
| [alicloud_instance.instance](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/instance) | resource |
19+
| [alicloud_security_group.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/security_group) | resource |
20+
| [alicloud_security_group_rule.allow_tcp_22](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/security_group_rule) | resource |
21+
| [alicloud_security_group_rule.allow_tcp_3389](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/security_group_rule) | resource |
22+
| [alicloud_security_group_rule.allow_tcp_443](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/security_group_rule) | resource |
23+
| [alicloud_security_group_rule.allow_tcp_80](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/security_group_rule) | resource |
24+
| [alicloud_vpc.vpc](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/vpc) | resource |
25+
| [alicloud_vswitch.vsw](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/vswitch) | resource |
26+
| [alicloud_zones.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/zones) | data source |
27+
28+
## Inputs
29+
30+
| Name | Description | Type | Default | Required |
31+
|------|-------------|------|---------|:--------:|
32+
| <a name="input_instance_type"></a> [instance\_type](#input\_instance\_type) | n/a | `string` | `"ecs.e-c1m1.large"` | no |
33+
| <a name="input_password"></a> [password](#input\_password) | The password for the ECS instance must be 8 to 30 characters in length and must include at least three of the following character types: uppercase letters, lowercase letters, numbers, and special symbols. | `string` | `"Test@12345<>"` | no |
34+
| <a name="input_region"></a> [region](#input\_region) | n/a | `string` | `"cn-hangzhou"` | no |
35+
<!-- END_TF_DOCS -->
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
variable "region" {
2+
default = "cn-hangzhou"
3+
}
4+
5+
variable "password" {
6+
default = "Test@12345<>"
7+
description = "The password for the ECS instance must be 8 to 30 characters in length and must include at least three of the following character types: uppercase letters, lowercase letters, numbers, and special symbols."
8+
}
9+
10+
variable "instance_type" {
11+
default = "ecs.e-c1m1.large"
12+
}
13+
14+
provider "alicloud" {
15+
region = var.region
16+
}
17+
18+
data "alicloud_zones" "default" {
19+
available_disk_category = "cloud_essd"
20+
available_resource_creation = "VSwitch"
21+
available_instance_type = var.instance_type
22+
}
23+
24+
resource "alicloud_vpc" "vpc" {
25+
vpc_name = "vpc01"
26+
cidr_block = "192.168.0.0/16"
27+
}
28+
29+
resource "alicloud_vswitch" "vsw" {
30+
vswitch_name = "vsw01"
31+
vpc_id = alicloud_vpc.vpc.id
32+
cidr_block = "192.168.0.0/24"
33+
zone_id = data.alicloud_zones.default.zones.0.id
34+
}
35+
36+
resource "alicloud_security_group" "default" {
37+
security_group_name = "sg01"
38+
vpc_id = alicloud_vpc.vpc.id
39+
}
40+
41+
resource "alicloud_instance" "instance" {
42+
availability_zone = data.alicloud_zones.default.zones.0.id
43+
security_groups = alicloud_security_group.default.*.id
44+
password = var.password
45+
instance_type = var.instance_type
46+
system_disk_category = "cloud_essd"
47+
image_id = "aliyun_3_x64_20G_alibase_20250629.vhd"
48+
instance_name = "ecs-for-gtm-test"
49+
vswitch_id = alicloud_vswitch.vsw.id
50+
internet_max_bandwidth_out = 5
51+
}
52+
53+
resource "alicloud_security_group_rule" "allow_tcp_22" {
54+
type = "ingress"
55+
ip_protocol = "tcp"
56+
nic_type = "intranet"
57+
policy = "accept"
58+
port_range = "22/22"
59+
priority = 1
60+
security_group_id = alicloud_security_group.default.id
61+
cidr_ip = "0.0.0.0/0"
62+
}
63+
64+
resource "alicloud_security_group_rule" "allow_tcp_3389" {
65+
type = "ingress"
66+
ip_protocol = "tcp"
67+
nic_type = "intranet"
68+
policy = "accept"
69+
port_range = "3389/3389"
70+
priority = 1
71+
security_group_id = alicloud_security_group.default.id
72+
cidr_ip = "0.0.0.0/0"
73+
}
74+
75+
resource "alicloud_security_group_rule" "allow_tcp_80" {
76+
type = "ingress"
77+
ip_protocol = "tcp"
78+
nic_type = "intranet"
79+
policy = "accept"
80+
port_range = "80/80"
81+
priority = 1
82+
security_group_id = alicloud_security_group.default.id
83+
cidr_ip = "0.0.0.0/0"
84+
}
85+
86+
resource "alicloud_security_group_rule" "allow_tcp_443" {
87+
type = "ingress"
88+
ip_protocol = "tcp"
89+
nic_type = "intranet"
90+
policy = "accept"
91+
port_range = "443/443"
92+
priority = 1
93+
security_group_id = alicloud_security_group.default.id
94+
cidr_ip = "0.0.0.0/0"
95+
}
96+
97+
locals {
98+
command_content = <<EOF
99+
#!/bin/sh
100+
sudo yum install nginx -y
101+
sudo nginx
102+
EOF
103+
}
104+
105+
resource "alicloud_ecs_command" "deploy" {
106+
name = "deploy_nginx"
107+
type = "RunShellScript"
108+
command_content = base64encode(local.command_content)
109+
timeout = 3600
110+
working_dir = "/root"
111+
}
112+
113+
resource "alicloud_ecs_invocation" "invocation" {
114+
instance_id = [alicloud_instance.instance.id]
115+
command_id = alicloud_ecs_command.deploy.id
116+
timeouts {
117+
create = "5m"
118+
}
119+
}
120+
121+
output "url" {
122+
value = format("http://%v", alicloud_instance.instance.public_ip)
123+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
terraform {
2+
required_providers {
3+
alicloud = {
4+
source = "aliyun/alicloud"
5+
}
6+
}
7+
}

0 commit comments

Comments
 (0)