java定义变量的输入_Terraform中输入变量

Terraform中输入变量

把所有的信息,如access_key等全部硬编码显然是不安全的。因此需要能够参数化配置。

变量定义

首先需要先定义(声明)变量,放到一个.tf文件中,如:

variable "access_key" {}

variable "secret_key" {}

variable "region" {

default = "us-east-1"

}

上面定义了三个变量。前两个变量是空的,第三个给了一个默认值(默认参数)。此时运行terraform plan,Terraform会提示输入这些尚未定义的变量。

在配置中使用变量

变量定义好后,就可以引用这些变量来进行Terraform的配置,如:

provider "aws" {

access_key="${var.access_key}"

secret_key="${var.secret_key}"

region="${var.region}"

}

引用变量,使用${var.xxx}的形式。

变量赋值

前面我们声明了变量,但是还没有给变量赋值,无法真正使用。给变量赋值,有以下几种方法,下面几种方法按照变量赋值的优先顺序排序。

Command-line flags

使用terraform的各种命令时,使用-var选项,可以在后面直接跟变量的定义,如: # terraform apply \

-var 'access_key=foo'

-var 'secret_key=bar'

# ...

以这种方式赋值变量是一次性的,并不会保存它们的值,也就是说下一次重新执行命令时,需要重新赋值。

从文件导入

为永久性存储一个变量的值,可以将其放在文件中保存。Terraform会自动加载当前目录下扩展名为.tfvars和.auto.tfvars的文件来填充定义的变量。如果以其他格式存放,可以使用-var-file选项来手动指定需要加载的变量值文件。这些文件使用Terraform格式或JSON格式。

使用文件也方便版本控制,但是用户名、密码这种东西就不要用版本控制管理的。因此可以将用户名和密码这类信息单独放在一个文件中,使用-var-file来手动指定。其他的,可以自动填充,方便使用版本控制管理的,可以直接放在.tfvars文件中,Terraform会自动加载。

环境变量

Terraform会读取TF_VAR_name这种格式的环境变量,用来填充定义好的变量。比如,环境变量中有一个TF_VAR_access_key的变量,Terraform就会读取到,并用于填充access_key变量。

default值

如果某个变量没有采用以上任何一种方法来进行赋值,那么如果在变量的定义中有个default属性,那么Terraform就会使用default的值来对变量进行赋值。

交互输入

没有使用任何方法来对变量赋值,在输入命令时使得Terraform不知道如何处理,此时就会出现交互界面,让用户手动输入变量值,来给变量赋值。

转载至链接:https://my.oschina.net/u/2561528/blog/1933533

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

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

相关文章

消息中间件—简谈Kafka中的NIO网络通信模型

前面写的两篇RocketMQ源码研究笔记系列:1. 消息中间件—RocketMQ的RPC通信(一)2. 消息中间件—RocketMQ的RPC通信(二)基本上已经较为详细地将RocketMQ这款分布式消息队列的RPC通信部分的协议格式、消息编解码、通信方式…

java整属取余数_js取整数、取余数的方法

摘要:这篇JavaScript栏目下的“js取整数、取余数的方法”,介绍的技术点是“取余数、取整数、取余、取整、js、方法”,希望对大家开发技术学习和问题解决有帮助。1.丢弃小数部分,保留整数部分parseInt(5/2)2.向上取整,有小数就整数部分加1Math…

如何系统学习领域驱动设计?

一、领域驱动设计为何又焕发青春?领域驱动设计(Domain Driven Design,DDD)确实已不再青春,从 Eric Evans 出版了划时代的著作《领域驱动设计》至今,已有将近十五年的时间,在软件设计领域中&…

java当中有关循环的代码_有关Java循环的内容,编程中还是比较常用的,下面分享给大家几个循环的示例代码,练习一下。1、循环输出1到100之间所有能被3或能被4整除的数。pack...

有关Java循环的内容,编程中还是比较常用的,下面分享给大家几个循环的示例代码,练习一下。1、循环输出1到100之间所有能被3或能被4整除的数。package com.hz.loop02;/*** 1、循环输出1到100之间所有能被3或能被4整除的数。* author ztw**/publ…

java的编辑框丢失焦点_java – 捕获EditText丢失焦点

我是一名长期,自学成才的业余VB程序员,现在正在尝试自学Java和Android.我这样说,所以你会知道我不会说好语言,而且对这两种追求都是非常新的.我开发了一个Android表单,其中包含一系列EditText框,每个框的内容都要在用户填写后保存到数组中.如果用户按下Enter键,我已经想出了如何…

如何运用DDD解决团队协作与沟通问题?

领域驱动设计的核心是“领域”,因此要运用领域驱动设计,从一开始就要让团队走到正确的点上。当我们组建好了团队之后,应该从哪里开始?不是UI原型设计,不是架构设计,不是设计数据库,这些事情重要…

centos6 mysql 启动_【17-02-18】 【求助】centos6 mysql重启后无法正常启动

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼# service mysqld restartStopping mysqld: [ OK ]MySQL Daemon failed to start.Starting mysqld: [FAILED]下面是# vim /var/log/mysqld.log2017-02-16 18:32:07 12429 [Note] Plugin FEDERATED is disabled.2017-02-16 18:32:07…

微服务等于Spring Cloud?一文告诉你微服务到底是什么

作者:TIM XU 原文:https://xiaoxubeii.github.io/articles/microservices-architecture-introduction/1微服务初探什么是微服务?首先微服务并没有一个官方的定义,想要直接描述微服务比较困难,我们可以通过对比传统WEB应…

在php中图片放大怎么实现,用PHP实现图片的缩放与裁剪

图片太大且规格不统一,显示的控制需要靠JavaScript来完成,用在移动设备上时显示效果不好且流量巨大,需要对现有图片库的图片进行一次处理,生成符合移动设备用的缩略图,将原来客户端JS做的工作转移到服务器端用PHP的GD库…

我们爬了上千个数据分析师信息, 你真的懂数据分析师嘛?

01 项目简介有人说,这个时代,只要站在了风口,猪都能飞起来,尤其互联网行业,千变万化,日异月殊,一不小心就错过了风口,如果没记错的话,前几年火的是App开发,后…

java游戏可以刷升级挖药材,【毕业设计】Java手机游戏设计

内容介绍原文档由会员 莎士比亚 发布论文标准WORD格式排版 67页 24714字 附程序设计源文件1 绪论1.1 手机软件现状在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势…

高可用Redis服务架构分析与搭建

作者:HorstXu 原文:https://www.cnblogs.com/xuning/p/8464625.html基于内存的Redis应该是目前各种Web开发业务中最为常用的Key-Value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热…

java怎么弄redis,java怎么使用redis

开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。Java的安装配置可以参考我们的 Java开发环境配置 接下来让我们安装 Java redis 驱动:首先你需要下载驱动包 下载 jedis.ja…

我花了14个小时找了一下长春长生们究竟卖到了哪里去

前言本文首发于个人的公众号和v2ex,事先也没想到会有这么多人关注。在这边重新编辑一下,去掉了原先前言中对此次疫苗事件背景的描述及部分不严谨的措辞。全文的观点从技术讨论出发,尽量客观中立,观点及行为为员工自发,…

java jackson 注解,java – 如何使用Jackson注释序列化此JSON?

我有以下JSON:{fields : {"foo" : "foovalue","bar" : "barvalue"}}我写了一个pojo如下:public class MyPojo {JsonProperty("fields")private List fields;static class Field {JsonProperty("…

我们分析了50万条拼多多商品数据,告诉你到底是消费升级还是降级?

作者:放开那个猕猴桃来源:人工智能与大数据生活转自:知乎,恋习Python一、缘起我在杭州有位朋友,提到有家做社交的电商很火,叫拼多多,我没有在意,直到有一天,我居然在电视…

java并发集合面试题,那些经常被问的JAVA面试题(1)—— 集合部分

【本文转自极客原创 作者:张锋 原文链接:】Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用&…

php7 二维数组排序,PHP二维数组排序

以前遇到二维数组排序的问题都是自己写排序函数,今天遇到一个二维数组排序问题,就想简单一点,网上找了一圈,没发现比较简单的写法,研究了一下PHP自带的函数,发现只使用array_multisort这个函数就可以实现二…

拯救阿波罗14号!那些伟大太空计划背后的计算机工程师们

1971年1月31日,阿波罗14号发射。外太空旅行近一周后的凌晨,回程中的阿波罗14号突然面临一个严峻的问题:它可能没办法正常降落了。问题出在其计算机工程师Don Eyles编写的一个应急程序上,他必须在很短的时…

golang web php,golang 适合做web开发吗

使用go语言来做web开发,是非常方便的。如果不使用框架,仅仅使用net/http包,也能快速开发一个web应用。但是,官方包不支持RESTful风格的API,所以我们依然还是需要选择一个框架来帮助我们进行开发。 (推荐学习&#xff1…