摘要:此案例使用创建一台服务器基础设施,通过创建一台云主机并在云主机上绑定云硬盘和外网弹性,同时使用外网防火墙来保护云主机的网络安全性。
搭建一台 web 服务器
本篇目录
-
摘要
-
拓扑图
-
操作步骤
-
参考文献
关键词:UHost, EIP, UDisk
摘要
云主机是构建在云环境的弹性计算资源,是 UCloud 最为核心的服务。有些服务,如弹性 IP、镜像、云硬盘等必须与云主机结合后使用,另一些服务,如数据库、缓存、对象存储等可以和云主机结合共同构建 IT 环境。
此案例使用 Terraform 创建一台 web 服务器基础设施,通过创建一台云主机并在云主机上绑定云硬盘和外网弹性IP,同时使用外网防火墙来保护云主机的网络安全性。
使用 Terraform 来创建云主机可以享有由基础设施即代码 (IaC) 带来的便利。通过编写 HCL 文件,可以快速构建包含基础设施定义和它们之间关联的拓扑,并借助于代码版本管理工具,将基础设施的变更纳入版本控制中。
此案例需要一个可用的 UCloud 帐号,以及确保目标可用区有足够的权限和配额可以创建云主机,EIP 和 UDisk。可以在下方 操作步骤拷贝使用,或克隆 官方仓库 以获取完整的 案例演示代码.
拓扑图
操作步骤
定义资源
首先创建基础设施代码文件。
该样例中包含:
一个 variables.tf 文件,用于定义输入参数,代码详情如下:
variable "region" { default = "cn-bj2" } variable "zone" { default = "cn-bj2-05" } variable "instance_password" { default = "ucloud_2020" }CopyErrorSuccess
一个 main.tf 文件,用于建立一个从云资源到代码的映射,代码详情如下:
# 指定 UCloud Provider 和配置信息 provider "ucloud" { region = var.region } # 查询默认可用区中的主机镜像 data "ucloud_images" "default" { availability_zone = var.zone name_regex = "^CentOS 7.[1-2] 64" image_type = "base" } # 查询默认推荐 web 外网防火墙 data "ucloud_security_groups" "default" { type = "recommend_web" } # 创建一台 web 服务器 resource "ucloud_instance" "web" { availability_zone = var.zone image_id = data.ucloud_images.default.images[0].id instance_type = "n-basic-2" root_password = var.instance_password name = "tf-example-web-server" tag = "tf-example" boot_disk_type = "cloud_ssd" # the default Web Security Group that UCloud recommend to users security_group = data.ucloud_security_groups.default.security_groups[0].id # create cloud data disk attached to instance data_disks { size = 20 type = "cloud_ssd" } delete_disks_with_instance = true } # 创建外网弹性 EIP resource "ucloud_eip" "default" { bandwidth = 2 charge_mode = "bandwidth" name = "tf-example-web-server" tag = "tf-example" internet_type = "bgp" } # EIP 绑定到主机 resource "ucloud_eip_association" "default" { resource_id = ucloud_instance.web.id eip_id = ucloud_eip.default.id }CopyErrorSuccess
生成执行计划
在当前目录下执行 terraform plan 命令,查看编排计划:
Refreshing Terraform state in-memory prior to plan... The refreshed state will be used to calculate this plan, but will not be persisted to local or remote state storage. data.ucloud_images.default: Refreshing state... data.ucloud_security_groups.default: Refreshing state... ------------------------------------------------------------------------ An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # ucloud_eip.default will be created + resource "ucloud_eip" "default" { + bandwidth = 2 + charge_mode = "bandwidth" + charge_type = (known after apply) + create_time = (known after apply) + expire_time = (known after apply) + id = (known after apply) + internet_type = "bgp" + ip_set = (known after apply) + name = "tf-example-web-server" + public_ip = (known after apply) + remark = (known after apply) + resource = (known after apply) + status = (known after apply) + tag = "tf-example" } # ucloud_eip_association.default will be created + resource "ucloud_eip_association" "default" { + eip_id = (known after apply) + id = (known after apply) + resource_id = (known after apply) + resource_type = (known after apply) } # ucloud_instance.web will be created + resource "ucloud_instance" "web" { + auto_renew = (known after apply) + availability_zone = "cn-bj2-05" + boot_disk_size = (known after apply) + boot_disk_type = "cloud_ssd" + charge_type = (known after apply) + cpu = (known after apply) + cpu_platform = (known after apply) + create_time = (known after apply) + data_disk_size = (known after apply) + data_disk_type = (known after apply) + delete_disks_with_instance = true + disk_set = (known after apply) + expire_time = (known after apply) + id = (known after apply) + image_id = "uimage-ohveag" + instance_type = "n-basic-2" + ip_set = (known after apply) + isolation_group = (known after apply) + memory = (known after apply) + name = "tf-example-web-server" + private_ip = (known after apply) + remark = (known after apply) + root_password = (sensitive value) + security_group = "firewall-h55aem" + status = (known after apply) + subnet_id = (known after apply) + tag = "tf-example" + vpc_id = (known after apply) + data_disks { + size = 20 + type = "cloud_ssd" } } Plan: 3 to add, 0 to change, 0 to destroy. ------------------------------------------------------------------------ Note: You didn't specify an "-out" parameter to save this plan, so Terraform can't guarantee that exactly these actions will be performed if "terraform apply" is subsequently run.CopyErrorSuccess
可以看到即将创建一台云主机、一块云硬盘、一个弹性 EIP、一个主机和 EIP 之间的绑定关系,以及一个主机与云硬盘之间的挂载关系。
执行编排
执行 terraform apply 命令并确认,执行编排计划:
Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yesCopyErrorSuccess
可通过控制台确认资源已创建完成。
原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/4451.html
相关推荐
-
云手机服务器 UPhoneServer
摘要:操作指南操作指南操作指南注册账号注册账号快速测试快速测试华北一面向国内云手机场景广州主要面向非大陆的云手机场景,同时也支持国内场景独立和共享带宽为可选项,不选的话也可以使用但…
-
【基于Arduino IDE平台开发ESP8266连接巴法云】
摘要:教程传送门基于平台开发连接巴法云简介实验准备硬件软件实验步骤点灯实验发送温湿度指令升级总结关于巴法云专注于开源,智造,创新,分享。 Arduino教程传送门?????? 基于…
-
Linux 下 4 种实时监控日志文件方法
摘要:通常服务器上的日志都是轮转日志。下面例子演示了如何同时显示两个日志文件。另一个类似的命令是,也能实时监控多个文件。使用同时查看两个日志的方法如下最后你可以用命令查看日志文件,…
-
堡垒机 使用场景 UAuditHost
摘要:认证管理使用旗舰版堡垒机作为安全的统一认证入口,集中管理,员工依然可以保持自身操作习惯,应用各类常见协议,使用原有运维工具。审计管理管理员可以对运维人员的操作进行实时监控和及…
-
使用UK8S日志插件功能 容器云 UK8S
摘要:使用日志插件功能使用日志插件功能使用日志插件功能本篇目录日志插件日志插件安装完整日志组件安装完整日志组件关联安装关联安装推出了一个新的插件功能,旨在帮助用户快速部署集群所需要…
-
tiktok0播放怎么办-tiktok播放量低怎么办
tiktok0播放可能是因为软件环境导致的。 软件环境问题主要涉及到的参数有以下几个: 1.DNS 2.系统语言 3.系统时间 4.iPhone 手机的广告追踪 将iP地址定位在海…
-
#私藏项目实操分享# 介绍一款开源电商网站的购物车添加功能的实现
摘要:目前电商领域有两款比较出名的开源电商网站解决方案,分别是基于开发框架,代号为的开源项目,以及基于的作为开源项目的开发成员之一,今天我想通过本文,给大家介绍一下我们平时购物时最…
-
vue项目中canvas实现截图功能
在vue项目中canvas实现截图功能是常用的,下面是具体代码: 实现效果: 在vue项目中做的一个截图功能(只能够截取图片),只用鼠标就可以在画面中进行框选截取。 …