IaC基础设施即代码:使用Terraform 连接huaweicloud华为云 并创建后端OBS

目录

  一、实验

1.环境

2.huaweicloud华为云创建用户

3.Windows使用Terraform 连接 huaweicloud

4.Windows给Terraform项目添加huaweicloud华为云OBS (实现代码与资源分离)

二、问题

 1. Windows terraform 初始化失败

2.Terraform 初始化后端资源失败

3.HC、HCS、HCSO有哪些区别


  一、实验

1.环境

(1)主机

表1-1 主机

主机系统软件工具备注
jia

Windows 

Terraform 1.6.6VS Code、 PowerShell、 Chocolatey

2.huaweicloud华为云创建用户

(1)登录 (统一身份认证)

(2)查看

统一身份认证服务-用户组

统一身份认证服务-用户

(3)新建用户组

(4)用户组授权

授权

提示

完成

(5)新建用户 

选中“编程访问”

加入用户组

提示

完成

(6)成功新建用户

(7)查看tentcloud provider 示例

Terraform Registry

USE PROVIDER  示例

terraform {required_providers {huaweicloud = {source = "huaweicloud/huaweicloud"version = "1.60.1"}}
}provider "huaweicloud" {# Configuration options
}

Example Usage  示例

terraform {required_providers {huaweicloud = {source  = "huaweicloud/huaweicloud"version = ">= 1.36.0"}}
}# Configure the HuaweiCloud Provider
provider "huaweicloud" {region     = "cn-north-4"access_key = "my-access-key"secret_key = "my-secret-key"
}# Create a VPC
resource "huaweicloud_vpc" "example" {name = "my_vpc"cidr = "192.168.0.0/16"
}

(11)下载软件包

https://github.com/huaweicloud/terraform-provider-huaweicloud/releases

(12) 华为云查询地域和可用区

地区和终端节点_开发者中心-华为云 (huaweicloud.com)

3.Windows使用Terraform 连接 huaweicloud

(1)验证版本

terraform -v 或 terraform --version

(2)创建主配置文件

main.tf

# Configuration options
provider "huaweicloud" {access_key  = var.access_keysecret_key  = var.secret_keyregion      = var.region}

(3) 创建密钥配置文件

terraform.tfvars

access_key = "XXXXX"
secret_key = "XXXXX"

(4)创建版本配置文件

versions.tf

terraform {required_providers {tencentcloud = {source  = "tencentcloudstack/tencentcloud"version = "1.81.69"}}
}

(5)创建变量配置文件

variables.tf

variable "access_key" {type = string
}variable "secret_key" {type = string
}variable "region" {type      = stringdefault   = "cn-east-3"sensitive = true
}

(6)初始化

terraform init

(7)格式化代码

terraform fmt

(8)验证代码

terraform validate terraform validate -json

4.Windows给Terraform项目添加huaweicloud华为云OBS (实现代码与资源分离)

(1)修改主配置文件

main.tf ,添加如下代码

resource "huaweicloud_obs_bucket" "bucket" {bucket = "tfhexian-backend-bucket"acl    = "private"tags = {type = "bucket"}
}

(2)创建输出配置文件

outputs.tf

output "bucket_name" {value = huaweicloud_obs_bucket.bucket.bucket
}

(3) 初始化

terraform init

(4) 格式化代码

terraform fmt

(5) 验证代码

terraform validate 

(6) 计划与预览

 terraform plan

成功拿到存储桶name

(7) 申请资源

terraform apply

yes

(8)华为云查看OBS服务

桶列表为空

(9)展示资源

terraform show

(10)登录华为云系统查看

已新增1个存储桶

(11)创建后端存储配置文件

backend.tf

(12) 初始化

terraform init

yes ,系统上传配置文件到华为云OBS

(13)登录华为云系统查看

①查看Bucket 列表

配置文件已上传

(14)查看项目目录

(15)删除项目配置文件

(16)再次查看项目目录

(17)查看版本

多了provider的仓库地址

terraform versionterraform -v

二、问题

 1. Windows terraform 初始化失败

 (1)报错

(2)原因分析

国内用户在下载 Provider 时会遇到下载缓慢甚至下载失败的问题

(3)解决方法

手工下载华为云 provider至本地目录,然后搭建本地registry并修改 terraform块中的required_providers配置。

①  配置方案

1)下载华为云 provider至本地目录,选择对应的版本号和操作系统进行下载。2)搭建本地registry,将下载后的华为云 provider解压至如下目录:
Linux:~/.terraform.d/plugins/<local-registry>/<organization>/huaweicloud/<version>/<os_arch>Windows:%APPDATA%\terraform.d\plugins\<local registry>\<organization>\huaweicloud\<version>\<os_arch>

 ② 查看目录

echo $env:APPDATA

③ 进入目录

④在相关目录下创建子目录

安装包移动:

⑤ 成功

2.Terraform 初始化后端资源失败

(1)报错

╷
│ Warning: Deprecated Parameter
│
│   on backend.tf line 8, in terraform:
│    8:     endpoint   = "obs.cn-east-3.myhuaweicloud.com"
│
│ The parameter "endpoint" is deprecated. Use parameter "endpoints.s3" instead.
╵╷
│ Warning: Complete URL Expected
│
│   on backend.tf line 8, in terraform:
│    8:     endpoint   = "obs.cn-east-3.myhuaweicloud.com"
│
│ The value should be a valid URL containing at least a scheme and hostname. Had "obs.cn-east-3.myhuaweicloud.com".
│
│ Using an incomplete URL, such as a hostname only, may work, but may have unexpected behavior.
╵╷
│ Error: Retrieving AWS account details: AWS account ID not previously found and failed retrieving via all available methods.
│
│ See https://www.terraform.io/docs/providers/aws/index.html#skip_requesting_account_id for workaround and implications.
│ Errors: 2 errors occurred:
│       * retrieving caller identity from STS: operation error STS: GetCallerIdentity, exceeded maximum number of attempts, 5, https response error StatusCode: 0, RequestID: , request send failed, Post "https://sts.cn-east-3.amazonaws.com.cn/": dial tcp: lookup sts.cn-east-3.amazonaws.com.cn: getaddrinfow: This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server.
│       * retrieving account information via iam:ListRoles: operation error IAM: ListRoles, https response error StatusCode: 403, RequestID: 3bc79174-c32f-4c3e-9744-bf8b3fe193a0, api error InvalidClientTokenId: The security token included in the request is invalid.

(2)原因分析

Terraform Registry

Example  (Terraform 高于1.6.3版本) 部分参数调整

terraform {backend "s3" {bucket    = "terraformbucket"key       = "terraform.tfstate"region    = "cn-north-1"endpoints = {s3 = "https://obs.cn-north-1.myhuaweicloud.com"}skip_region_validation      = trueskip_credentials_validation = trueskip_metadata_api_check     = trueskip_requesting_account_id  = trueskip_s3_checksum            = true}
}

申明变量 (参考Linux环境)

(3)解决方法

修改配置文件。

修改前:

修改后:

成功:

3.HC、HCS、HCSO有哪些区别

(1)区别

1)HC
Huawei Cloud,既是华为的公有云产品,也是华为公有云、私有云、混合云等所有相关解决方案的统一品牌。公有云:华为机房,华为运维。2)HCS
Huawei Cloud Stack,华为的全栈云解决方案(HCS还是私有云产品,需要部署在客户数据中心、运维需要客户自己运维,只是和公有云服务体验类似、应用类似、可以互通)。客户机房,客户运维。3)HCSO
Huawei Cloud Stack Online,由华为云Stack演变而来,区别在于用私有云架构去使用公有云服务,还是部署在客户数据中心,但是专线接入华为云运维中心,由华为运维; 本质是私有云,运维托管。客户机房,华为运维。

(2)选择

HC  

Terraform Registry

HCS

Terraform Registry

HCSO

Terraform Registry

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/645813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java面试题六

1、您对微服务有何了解&#xff1f; 微服务&#xff0c;又称微服务 架 构&#xff0c;是一种架构风格&#xff0c;它将应用程序构建为以业务领域为模型的小型自治服务集合 。 通俗地说&#xff0c;你必须看到蜜蜂如何通过对齐六角形蜡细胞来构建它们的蜂窝状物。他们最初从使用…

Django、Flask 与 Javascirpt 之间传值与数据转换

常见问题&#xff1a;JavaScript 如何处理Django、Flask传递的数据库数据 Django 、Flask从数据库读出的数据通常保存为&#xff1a;对象列表、字典列表&#xff0c;或 tuple列表形式 # 用object_list 对象列表表示数据库记录 [<Article: id1,title星际穿越影评,body作为一…

嵌入式linux学习之实践操作

# 前沿 ##1. 安装交叉编译器 * 在 开发板光盘 A- 基础资料 ->5 、开发工具 ->1 、交叉编译器 路径下找到 st-example-image-qt wayland-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-snapshot.sh 。将它拷贝到 Ubuntu 虚拟机上。 拷贝到 Ubuntu 后&#xff0…

oracle19.22的patch已发布

2024年01月16日,oracle发布了19.22的patch 具体patch如下 Reserved for Database - Do not edit or delete (Doc ID 19202401.9) 文档ID规则如下 19(版本)+年份(202x)+(季度首月01,04,07,10).9 往期patch no信息和下载参考文档 oracle 19C Release Update patch num…

【Leetcode】2865. 美丽塔 I

文章目录 题目思路代码结果 题目 题目链接 给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。 你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i &#xff0c;高度为 heights[i] 。 如果以下条件满足&#xff0c;我们称这些塔是 美丽 的&#xff1a; 1 < hei…

【Web前端实操11】定位实操_照片墙(无序摆放)

设置一个板块&#xff0c;将照片随意无序摆放在墙上&#xff0c;从而形成照片墙。本来效果应该是很唯美好看的&#xff0c;就像这种&#xff0c;但是奈何本人手太笨&#xff0c;只好设置能达到照片墙的效果就可。 代码如下&#xff1a; <!DOCTYPE html> <html lang&…

uniapp+vue3+ts--编写微信小程序对接e签宝签署时跳转刷脸效果(人脸识别)中间页代码

uniappvue3ts–编写微信小程序对接e签宝签署时跳转刷脸效果&#xff08;人脸识别&#xff09;中间页代码 e签宝内嵌H5方式集成签署页的文档说明&#xff1a;https://open.esign.cn/doc/opendoc/case3/ahb0sg 签署时跳转刷脸效果示意图&#xff1a; 1. 在文件夹新建一个文件&a…

配网行波型故障预警定位装置:电力系统的安全守护神

随着科技的不断发展&#xff0c;电力系统的运行和管理已经越来越依赖于先进的技术手段。在这个领域中&#xff0c;配网行波型故障预警定位装置(也被称为智能电网监测设备)已经成为了一种重要的技术装备。它能够实时监测电力系统的运行状态&#xff0c;及时发现并预警故障&#…

服务器和云桥通SDWAN组网的区别

一、服务器的概念 服务器是一种计算设备&#xff0c;用于存储、处理和提供数据和应用服务。通常&#xff0c;服务器配备高性能处理器、大容量存储器和网络接口&#xff0c;其主要目的是提供计算资源、存储资源以及应用程序的托管。这种设备可以用于托管网站、应用程序、数据库和…

游泳耳机哪个牌子好?2024年游泳耳机热门榜单分享

在水中畅游的时光&#xff0c;总是需要一位默契的伴侣&#xff0c;而优秀的游泳耳机正是这段旅程中的完美音乐搭档。近年&#xff0c;游泳耳机市场上涌现了一批备受瞩目的明星产品&#xff0c;它们不仅拥有卓越的防水性能&#xff0c;更以出色的音质和贴合度征服了游泳爱好者的…

gitlab备份-迁移-升级方案9.2.7升级到15版本最佳实践

背景 了解官方提供的版本的升级方案 - GitLab 8: 8.11.Z 8.12.0 8.17.7 - GitLab 9: 9.0.13 9.5.10 9.2.7 - GitLab 10: 10.0.7 10.8.7 - GitLab 11: 11.0.6 11.11.8 - GitLab 12: 12.0.12 12.1.17 12.10.14 - GitLab 13: 13.0.14 13.1.11 13.8.8 13.12.15 - G…

JVM实战(34)——内存溢出之消息队列处理不当

一、简介 本章&#xff0c;我们将介绍一个因为处理消息队列中的数据不当而引起的内存溢出问题&#xff0c;先来看下系统的背景。 1.1 系统背景 这是一个线上的数据同步系统&#xff0c;专门从Kafka消费其它系统送进去的数据&#xff0c;处理后存储到自己的数据库中&#xff1…

java——运算符

目录 &#x1f388;算数运算符 1. 基本四则运算符 2.增量运算符 3.自增/自减运算符 &#x1f388;关系运算符 ❗逻辑运算符(重点) &#x1f6a9; 逻辑与 && &#x1f6a9;逻辑 || &#x1f6a9;逻辑非 ! &#x1f6a9;短路求值——java &#x1f388;位运算…

使用frp透传软件搭建本地运行的私有邮箱服务器

起因&#xff1a;随着我公司在线应用软件的增多&#xff0c;比如wordpress、 next cloud、SuitCRM 、iFair等&#xff0c;许多场合都要求填写邮箱地址&#xff0c;绑定邮箱。因为不想将过多的数据存储于第三方空间&#xff0c;因此考虑在公司局域网内搭建一个私有的电子邮箱服务…

初识计算机网络 | 计算机网络的发展 | 协议初识

1.计算机网络的发展 “矛盾是普遍存在的&#xff0c;矛盾是事物联系的实质内容和事物发展的根本动力&#xff01;” 计算机在诞生之初&#xff0c;在军事上用来计算导弹的弹道轨迹&#xff01;在发展的过程中&#xff08;商业的推动&#xff0c;国家政策推动&#xff09;&…

ChatGLM论文解读

GLM GLM: General Language Model Pretraining with Autoregressive Blank Infilling 论文地址 1. 背景介绍 1)主流预训练框架 模型介绍结构特点训练目标autoregressive自回归模型,代表GPT,本质上是一个从左到右的语言模型,常用于无条件生成任务(unconditional generat…

composer安装hyperf后,nginx配置hyperf

背景 引入hyperf项目用作微服务&#xff0c;使用composer 安装hyperf后&#xff0c;对hyperf进行nginx配置。 配置步骤 因为hyperf监听的是端口&#xff0c;不像其他laravel、lumen直接指向文件即可。所有要监听端口号。 1 配置nginx server {listen 80;//http&#xff1a…

如何使用宝塔面板配置Nginx反向代理WebSocket(wss)

本章教程&#xff0c;主要介绍一下在宝塔面板中如何配置websocket wss的具体过程。 目录 一、添加站点 二、申请证书 三、配置代理 1、增加配置内容 2、代理配置内容 三、注意事项 一、添加站点 二、申请证书 三、配置代理 1、增加配置内容 map $http_upgrade $connection_…

【算法Hot100系列】不同路径

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

LIMS源码,实验室信息系统源码,后端框架:asp.net

LIMS(laboratory information management system)即实验室信息管理系统是实验室管理科学发展的成果&#xff0c;是实验室管理科学与现代信息技术结合的产物&#xff0c;是利用计算机网络技术、数据存储技术、快速数据处理技术等&#xff0c;对实验室进行全方位管理的计算机软件…