Terraform学习日记-AWS-EC2

terraform install

https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli

这里我们使用 aws-linux-2022 作为执行环境

 # sudo yum install -y yum-utils# sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo# sudo yum -y install terraform
## 验证安装
# terraform -help## 配置自动补全
# touch ~/.bashrc
# terraform -install-autocomplete

配置aws aksk 认证,保证有相关权限创建资源
1.aws configure方式

# aws configure

2.配置aksk env方式

# export AWS_ACCESS_KEY_ID=
# export AWS_SECRET_ACCESS_KEY=

开始练习测试

## 每个项目必须有自己工作目录
# mkdir tfm-ec2
# cd tfm-ec2
# touch main.tf

粘贴我们ec2示例文件,酌情修改

terraform {required_providers {aws = {source  = "hashicorp/aws"version = "~> 4.16"}}required_version = ">= 1.2.0"
}provider "aws" {region  = "us-west-2"
}resource "aws_instance" "app_server" {ami           = "ami-830c94e3"instance_type = "t2.micro"tags = {Name = "ExampleAppServerInstance"}
}

初始化工作环境

##此过程会安装所需的组件,每次新的工作时,需要执行
# terraform init

格式化您的配置

Terraform 将打印出其修改的文件的名称(如果有)。在这种情况下,您的配置文件已正确格式化,因此 Terraform 将不会返回任何文件名

可以测试下,添加多余的空格,这行命令会帮你格式化

# terraform fmt 
main.tf

检测的你配置文件

这里我故意加一个字母测试

# terraform validate
╷
│ Error: Unsupported block type
│ 
│   on main.tf line 16:
│   16: aresource "aws_instance" "app_server" {
│ 
│ Blocks of type "aresource" are not expected here. Did you mean "resource"?

修改后效果

# terraform validate
Success! The configuration is valid.[root@ip-172-31-19-57 tfm-ec2]# terraform show
# aws_instance.app_server:

应用你配置文件

会让你输入yes ,确认创建动作

# terraform applyTerraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:+ createTerraform will perform the following actions:# aws_instance.app_server will be created+ resource "aws_instance" "app_server" {+ ami                                  = "ami-00d785f1c099d5a0e"+ arn                                  = (known after apply)+ associate_public_ip_address          = (known after apply)+ availability_zone                    = (known after apply)+ cpu_core_count                       = (known after apply)+ cpu_threads_per_core                 = (known after apply)+ disable_api_stop                     = (known after apply)+ disable_api_termination              = (known after apply)+ ebs_optimized                        = (known after apply)+ get_password_data                    = false+ host_id                              = (known after apply)+ host_resource_group_arn              = (known after apply)+ iam_instance_profile                 = (known after apply)+ id                                   = (known after apply)+ instance_initiated_shutdown_behavior = (known after apply)+ instance_state                       = (known after apply)+ instance_type                        = "t3.micro"+ ipv6_address_count                   = (known after apply)+ ipv6_addresses                       = (known after apply)+ key_name                             = (known after apply)+ monitoring                           = (known after apply)+ outpost_arn                          = (known after apply)+ password_data                        = (known after apply)+ placement_group                      = (known after apply)+ placement_partition_number           = (known after apply)+ primary_network_interface_id         = (known after apply)+ private_dns                          = (known after apply)+ private_ip                           = (known after apply)+ public_dns                           = (known after apply)+ public_ip                            = (known after apply)+ secondary_private_ips                = (known after apply)+ security_groups                      = (known after apply)+ source_dest_check                    = true+ subnet_id                            = (known after apply)+ tags                                 = {+ "Name" = "Tfm-ht01"}+ tags_all                             = {+ "Name" = "Tfm-ht01"}+ tenancy                              = (known after apply)+ user_data                            = (known after apply)+ user_data_base64                     = (known after apply)+ user_data_replace_on_change          = false+ vpc_security_group_ids               = (known after apply)}Plan: 1 to add, 0 to change, 0 to destroy.Do you want to perform these actions?Terraform will perform the actions described above.Only 'yes' will be accepted to approve.
### 这里输入yesEnter a value: yesaws_instance.app_server: Creating...
aws_instance.app_server: Still creating... [10s elapsed]
aws_instance.app_server: Creation complete after 15s [id=i-00d64aa676c0562fa]Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

查看你的tfm应用详情

# terraform show
# aws_instance.app_server:
resource "aws_instance" "app_server" {ami                                  = "ami-00d785f1c099d5a0e"arn                                  = "arn:aws:ec2:ap-southeast-1:904115123825:instance/i-00d64aa676c0562fa"associate_public_ip_address          = trueavailability_zone                    = "ap-southeast-1c"cpu_core_count                       = 1cpu_threads_per_core                 = 2disable_api_stop                     = falsedisable_api_termination              = falseebs_optimized                        = falseget_password_data                    = falsehibernation                          = falseid                                   = "i-00d64aa676c0562fa"instance_initiated_shutdown_behavior = "stop"instance_state                       = "running"instance_type                        = "t3.micro"ipv6_address_count                   = 0ipv6_addresses                       = []monitoring                           = falseplacement_partition_number           = 0primary_network_interface_id         = "eni-083cf204ed320a037"private_dns                          = "ip-172-31-5-27.ap-southeast-1.compute.internal"private_ip                           = "172.31.5.27"public_dns                           = "ec2-13-214-156-190.ap-southeast-1.compute.amazonaws.com"public_ip                            = "13.214.156.190"secondary_private_ips                = []security_groups                      = ["default",]source_dest_check                    = truesubnet_id                            = "subnet-055c3f7a2a4a5bb44"tags                                 = {"Name" = "Tfm-ht01"}tags_all                             = {"Name" = "Tfm-ht01"}tenancy                              = "default"user_data_replace_on_change          = falsevpc_security_group_ids               = ["sg-0ae3ab2687d1ea1c2",]capacity_reservation_specification {capacity_reservation_preference = "open"}

测试效果:拉起成功
在这里插入图片描述

明日继续 See you.

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

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

相关文章

Linux内核中的链表、红黑树和KFIFO

lLinux内核代码中广泛使用了链表、红黑树和KFIFO。 一、 链表 linux内核代码大量使用了链表这种数据结构。链表是在解决数组不能动态扩展这个缺陷而产生的一种数据结构。链表所包含的元素可以动态创建并插入和删除。链表的每个元素都是离散存放的,因此不需要占用连…

VBA技术资料MF35:VBA_在Excel中过滤数据

【分享成果,随喜正能量】好马好在腿,好人好在嘴。不会烧香得罪神,不会讲话得罪人。慢慢的你就会发现,一颗好心,永远比不上一张好嘴。。 我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了&#…

Spring 6【方法参数校验、SpingAOP介绍、Schema-based方式实现AOP 】(十四)-全面详解(学习总结---从入门到深化)

目录 4.方法参数校验 SpingAOP介绍 Schema-based方式实现AOP 4.方法参数校验 Spring框架提供了一种校验方法参数的方法,在调用一个方法传入参数后,会判断参数是否满足数据校验。如果满足方法执行,如果不满足:不执行方法&…

使用开源免费AI绘图工具神器-Stable Diffusion懒人整合包

使用开源免费AI绘图工具神器-Stable Diffusion懒人整合包 Stable Diffusion 是什么 Stable Diffusion (简称 SD) 是一款开源免费的以文生图的 AI 扩散模型,它和付费的 Midjourney 被人称为当下最好用的 AI 绘画工具。你在网上看到的绝大多数优秀 AI 图片作品&…

ROS 基础知识汇总

How to learn ROS ROS for Beginners: How to Learn ROS - The Construct ROSwiki 界面介绍 ROS/Tutorials/NavigatingTheWiki - ROS Wiki ROS要学会哪些?如何学习Ros? - 知乎 setup.bash 的作用 ROS中的setup.bash_泠山的博客-CSDN博客 包的层级架构 …

详细介绍 React 中如何使用 redux

在使用之前要先了解它的配套插件: 在React中使用redux,官方要求安装其他插件 Redux Toolkit 和 react-redux Redux Toolkit:它是一个官方推荐的工具集,旨在简化 Redux 的使用和管理。Redux Toolkit 提供了一些提高开发效率的工具…

MybatisPlus拓展篇

文章目录 逻辑删除通用枚举字段类型处理器自动填充功能防全表更新与删除插件MybatisX快速开发插件插件安装逆向工程常见需求代码生成 乐观锁问题引入乐观锁的使用效果测试 代码生成器执行SQL分析打印多数据源 逻辑删除 逻辑删除的操作就是增加一个字段表示这个数据的状态&…

用JavaScript和HTML实现一个精美的计算器

文章目录 一、前言二、技术栈三、功能实现3.1 引入样式3.2 编写显示页面3.2 美化计算器页面3.3 实现计算器逻辑 四、总结 一、前言 计算器是我们日常生活中经常使用的工具之一,可以帮助我们进行简单的数学运算。在本博文中,我将使用JavaScript编写一个漂…

剑指 Offer 26. 树的子结构

思路: 先统计B数的非空节点数countB。然后前序遍历A,当遇到A的值和B的第一个值相等时,则进行统计左右结构和值都相等的节点数和sum,如果sum countB,则true。 /*** Definition for a binary tree node.* public class…

android framework车载桌面CarLauncher的TaskView详细源码分析

1、构建相关的TaskView,装载到对应的ViewGroup b站免费视频教程讲解: https://www.bilibili.com/video/BV1wj411o7A9/ //packages/apps/Car/Launcher/src/com/android/car/carlauncher/CarLauncher.java void onCreate() { //ignoresetContentView(R.…

macos下安装john the ripper并配置zip2john+破解加密zip文件

为了破解加密的zip文件,需要用到john进行爆破密码。 1、首先使用homebrew安装john,可以安装它的增强版john-jumbo: brew install john-jumbo 2、安装后可以使用 john 命令验证: john 3、配置zip2john的环境——.zshrc下,&#x…

城市气象数据可视化:洞察气候变化,构建智慧城市

随着城市化进程的加速,城市气象数据的采集和分析变得越来越重要。气象数据不仅影响着人们的生活和出行,还与城市的发展和规划息息相关。在数字化时代,如何将城市中各个气象数据进行可视化,让复杂的数据变得简单易懂,成…

【JavaEE初阶】HTTP请求的构造及HTTPS

文章目录 1.HTTP请求的构造1.1 from表单请求构造1.2 ajax构造HTTP请求1.3 Postman的使用 2. HTTPS2.1 什么是HTTPS?2.2 HTTPS中的加密机制(SSL/TLS)2.2.1 HTTP的安全问题2.2.2 对称加密2.2.3 非对称加密2.2.3 中间人问题2.2.5 证书 1.HTTP请求的构造 常见的构造HTTP 请求的方…

简单工厂模式——集中式工厂的实现

1、简介 1.1、概述 简单工厂模式并不属于GoF 23个经典设计模式,但通常将它作为学习其他工厂模式的基础,它的设计思想很简单,其基本流程如下: 首先将需要创建的各种不同对象的相关代码封装到不同的类中,这些类称为具体…

【IDEA】idea不自动生成target

文章目录 1. 不生成target2. 仅部分文件不生成target2.1. 一般原因就是资源没有设置2.2. 配置编译src/main/java文件夹下的资源文件2.3. 清理缓存(王炸) 3. 参考资料 本文描述idea不生成target的几种情况以及处理方法 1. 不生成target 像下图这样根本就…

一篇文章搞定Java泛型

目录 介绍 优点 泛型类 语法定义 代码示例 泛型类注意事项 抽奖示例 泛型类派生子类 定义 代码示例 子类是泛型 子类不是泛型 泛型接口 定义 泛型方法 定义 代码示例 泛型方法与可变参数 泛型方法总结 ​编辑类型通配符 定义 代码示例 通配符的上限 定义 …

致敬图灵!HashData拥抱数据智能新时代!

图1:2023ACM中国图灵大会现场 生于1912年的艾伦图灵被称为“计算机科学之父”、“人工智能之父”。1966年,国际计算机协会(ACM)为了纪念这位卓越的科学家,设立了以其名字命名的ACM图灵奖,以表彰在计算机领…

入门redis你一定需要知道的命令

1、各种数据类型的特点 字符串(string):普通字符串,Redis中最简单的数据类型 哈希(hash):也叫散列,类似于Java中的HashMap结构 列表(list):按照插入顺序排序,可以有重复元素,类似于Java中的Li…

【【51单片机11.0592晶振红外遥控】】

51单片机11.0592晶振红外遥控 红外遥控,51单片机完结 这是初步实现的架构 怎么实现内部的详细逻辑 我们用状态机的方法 0状态时一个空闲状态 当它接收到下降沿开始计时然后转为1状态 1状态下 寻找start 或者repeat的信号 再来下降沿读出定时器的值 如果是start 那…

M 芯片的 macos 系统安装虚拟机 centos7 网络配置

centos 安装之前把网络配置配好或者是把网线插好 第一步找到这个 第二步打开网络适配器 选择图中所指位置 设置好之后 开机启动 centos 第三步 开机以后 编写网卡文件保存 重启网卡就可以了,如果重启网卡不管用,则重启虚拟机即可 “ ifcfg-ens160 ” 这…