当前位置: 首页 > news >正文

网站建设网页制作凡科建站多少钱

网站建设网页制作,凡科建站多少钱,宁波建工工程集团有限公司,专业商城网站建设《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新#xff0c;书中的示例代码也是放在GitHub上#xff0c;方便大家参考查看。 军书十二卷#xff0c;卷卷有爷名。 为什么需要状态管理 Terraform的主要作用是管理云平台上的资源#xff… 《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新书中的示例代码也是放在GitHub上方便大家参考查看。 军书十二卷卷卷有爷名。 为什么需要状态管理 Terraform的主要作用是管理云平台上的资源通过声明式的HCL配置来映射资源如果云平台上没有资源则需要创建如果有则不用。那Terraform要实现这个功能有多种方式。 一种是每次执行apply命令时都调用API接口检查一下远程的云资源是否与配置文件一致如果没有则创建如果有但不同则需要修改如果有且相同则不用变更。这种机制能保证云平台的资源与HCL配置是一致的。缺点也是非常明显的每次都需要调用API去检查远程资源效率很低特别是当资源特别多的场景。 另一种方式是每次变更资源的时候都会创建一个映射文件它保存云平台资源的状态。这样每次执行apply命令时只需要检查HCL配置与映射文件的差异即可。 Terraform选择的是第二种方式通过映射文件来保存资源状态在Terraform的世界里叫状态文件。Terraform这样做是基于以下考虑 云平台真实状态的映射解析状态文件即可以知道真实情况。元数据存储如资源之间的依赖关系需要通过依赖关系来知道创建或销毁顺序。提升性能特别是在大规模云平台上多次调用API去查询资源状态是很费时的。同步状态通过远程状态文件来同步状态这也是Terraform最佳的实践。 讲到这里已经回答了之前在第一章留下的思考题 如果再次执行apply会不会再次创建一个文件呢还是创建失败因为文件已存在为什么 答案不会创建因为通过状态文件记录了变更Terraform判断不再需要创建了。 状态管理的示例 为了更多注意力放在状态管理上我们还是使用最简单的例子local_file具体代码如下 resource local_file terraform-introduction {content https://www.pkslow.comfilename ${path.root}/terraform-guides-by-pkslow.txt } 我们以实际操作及现象来讲解状态文件的作用和工作原理 操作现象及说明terraform apply生成资源第一次生成terraform apply没有变化状态文件生成不需要再创建terraform destroy删除资源根据状态文件的内容删除terraform apply生成资源状态显示没有资源再次生成删除状态文件没有变化terraform apply生成资源没有状态文件直接生成资源和状态文件插件做了容错处理已存在也会新生成覆盖删除状态文件没有变化terraform destroy无法删除资源没有资源存在的状态 我们一直在讲状态文件我们先来看一下它的真面目。首先它的默认文件名是terraform.tfstate默认会放在当前目录下。它是以json格式存储的信息示例中的内容如下 {version: 4,terraform_version: 1.0.11,serial: 1,lineage: acb408bb-2a95-65fd-02e6-c23487f7a3f6,outputs: {},resources: [{mode: managed,type: local_file,name: test-file,provider: provider[\registry.terraform.io/hashicorp/local\],instances: [{schema_version: 0,attributes: {content: https://www.pkslow.com,content_base64: null,directory_permission: 0777,file_permission: 0777,filename: ./terraform-guides-by-pkslow.txt,id: 6db7ad1bbf57df0c859cd5fc62ff5408515b5fc1,sensitive_content: null,source: null},sensitive_attributes: [],private: bnVsbA}]}] } 可以看到它记录了Terraform的版本信息还有资源的详细信息包括类型、名字、插件、属性等。有这些信息便可直接从状态文件里解析出具体的资源。 状态管理命令 可以通过terraform state做一些状态管理 显示状态列表 $ terraform state list local_file.test-file 查看具体资源的状态信息 $ terraform state show local_file.test-file # local_file.test-file: resource local_file test-file {content https://www.pkslow.comdirectory_permission 0777file_permission 0777filename ./terraform-guides-by-pkslow.txtid 6db7ad1bbf57df0c859cd5fc62ff5408515b5fc1 } 显示当前状态信息 $ terraform state pull 重命名 $ terraform state mv local_file.test-file local_file.pkslow-file Move local_file.test-file to local_file.pkslow-file Successfully moved 1 object(s).$ terraform state list local_file.pkslow-file 要注意这里只是修改状态文件的名字代码里的HCL并不会修改。 删除状态里的资源 $ terraform state rm local_file.pkslow-file Removed local_file.pkslow-file Successfully removed 1 resource instance(s). 远程状态 状态文件默认是在本地目录上的terraform.tfstate文件在团队使用中每个人的电脑环境独立的那么需要保证每个人当前的状态文件都是最新且与现实资源真实对应简直是天方夜谭。而状态不一致所带的灾难也是极其可怕的。所以状态文件最好是要存储在一个独立的大家可共同访问的位置。对于状态的管理的配置Terraform称之为Backends。 Backend是两种模式分别是local和remote。local模式很好理解就是使用本地路径来存储状态文件。配置示例如下 terraform {backend local {path pkslow.tfstate} } 通过这样配置后不再使用默认的terraform.tfstate文件而是使用自定义的文件名pkslow.tfstate。 对于remote模式则有多种配置方式Terraform支持的有 s3gcsossetcdpghttpkubernetes 等能满足主流云平台的需求。每一个配置可以参考官网在本地我采用数据库postgresql的方式让大家都能快速实验。 我通过Docker的方式启动PostgreSQL命令如下 $ docker run -itd \--name terraform-postgres \-e POSTGRES_DBterraform \-e POSTGRES_USERpkslow \-e POSTGRES_PASSWORDpkslow \-p 5432:5432 \postgres:13 在terraform块中配置backend这里指定数据库连接信息即可更多参数请参考https://www.terraform.io/language/settings/backends/pg terraform {backend pg {conn_str postgres://pkslow:pkslowlocalhost:5432/terraform?sslmodedisable} } 当然把敏感信息直接放在代码中并不合适可以直接在命令行中传入参数 terraform init -backend-configconn_strpostgres://pkslow:pkslowlocalhost:5432/terraform?sslmodedisable 执行init和apply之后连接数据库查看会创建一个叫terraform_remote_state的Schema在该Schema下有一张states表来存储对应的状态信息如下 表中字段name是namespace而data是具体的状态信息如下 {version: 4,terraform_version: 1.0.11,serial: 0,lineage: de390d13-d0e0-44dc-8738-d95b6d8f1868,outputs: {},resources: [{mode: managed,type: local_file,name: test-file,provider: provider[\registry.terraform.io/hashicorp/local\],instances: [{schema_version: 0,attributes: {content: https://www.pkslow.com,content_base64: null,directory_permission: 0777,file_permission: 0777,filename: ./terraform-guides-by-pkslow.txt,id: 6db7ad1bbf57df0c859cd5fc62ff5408515b5fc1,sensitive_content: null,source: null},sensitive_attributes: [],private: bnVsbA}]}] } Workspace 工作区 如果我们用Terraform代码生成了dev环境但现在需要uat环境该如何处理呢 首先不同环境的变量一般是不一样的我们需要定义各种的变量文件如dev.tfvars、uat.tfvars和prod.tfvars等。但只有各自变量是不够的因为还有状态。状态也必须要隔离而Workspace就是Terraform用来隔离状态的方式。默认的工作区为default如果没有指定则表示工作于default工作区中。而当指定了工作区状态文件就会与工作区绑定。 创建一个工作区并切换 $ terraform workspace new pkslow 切换到已存在的工作区 $ terraform workspace select pkslow 而当我们处于某个工作区时是可以获取工作区的名字的引用为${terraform.workspace}示例如下 resource aws_instance example {count ${terraform.workspace default ? 5 : 1}# ... other arguments } 之前讲过默认的状态文件名为terraform.tfstate而在多工作区的情况下只要你创建了一个非默认工作区状态文件就会存在terraform.tfstate.d目录下。而在远程状态的情况下也会有一个映射Key为工作区名Value一般是状态内容。 敏感数据 本地状态文件都是明文存储状态信息的所以要保护好自己的状态文件。对于远程状态文件有些存储方案是支持加密的会对敏感数据sensitive进行加密。 状态锁 本地状态文件下不需要状态锁因为只有一个人在变更。而远程状态的情况下就可能出现竞争了。比如一个人在apply而另一个人在destroy那就乱了。而状态锁可以确保远程状态文件只能被一个人使用。但不是所有远程状态的方式都支持锁的一般常用的都会支持如GCS、S3等。 所以每当我们在执行变更时Terraform总会先尝试去拿锁如果拿锁失败就该命令失败。可以强制解锁但要非常小心一般只建议在自己明确知道安全的时候才使用比如死锁了。 共享状态-数据源 既然远程状态文件是可以共享的那状态信息也是可以共享的。这样会带来的一个好处是即使两个根模块也是可以共享信息的。比如我们在根模块A创建了一个数据库而根模块B需要用到数据库的信息如IP这样通过远程状态文件就可以共享给根模块B了。 注意这里我强调的是根模块因为如果A和B在同一个根模块下那就不需要通过远程状态的方式来共享状态了。 远程状态的示例 data terraform_remote_state vpc {backend remoteconfig {organization hashicorpworkspaces {name vpc-prod}} }resource aws_instance foo {# ...subnet_id data.terraform_remote_state.vpc.outputs.subnet_id } 本地状态的示例 data terraform_remote_state vpc {backend localconfig {path ...} }resource aws_instance foo {# ...subnet_id data.terraform_remote_state.vpc.outputs.subnet_id } 要注意的是只有根模块的输出变量才能被共享子模块是不能被获取的。
文章转载自:
http://www.morning.zmyzt.cn.gov.cn.zmyzt.cn
http://www.morning.xhddb.cn.gov.cn.xhddb.cn
http://www.morning.nqlx.cn.gov.cn.nqlx.cn
http://www.morning.rzmsl.cn.gov.cn.rzmsl.cn
http://www.morning.jtmql.cn.gov.cn.jtmql.cn
http://www.morning.hkpyp.cn.gov.cn.hkpyp.cn
http://www.morning.ghqyr.cn.gov.cn.ghqyr.cn
http://www.morning.yjknk.cn.gov.cn.yjknk.cn
http://www.morning.fhykt.cn.gov.cn.fhykt.cn
http://www.morning.frpm.cn.gov.cn.frpm.cn
http://www.morning.ntgjm.cn.gov.cn.ntgjm.cn
http://www.morning.rhmpk.cn.gov.cn.rhmpk.cn
http://www.morning.zdmrf.cn.gov.cn.zdmrf.cn
http://www.morning.fbmjl.cn.gov.cn.fbmjl.cn
http://www.morning.dwdjj.cn.gov.cn.dwdjj.cn
http://www.morning.yjmlg.cn.gov.cn.yjmlg.cn
http://www.morning.syxmx.cn.gov.cn.syxmx.cn
http://www.morning.wdply.cn.gov.cn.wdply.cn
http://www.morning.nlffl.cn.gov.cn.nlffl.cn
http://www.morning.gwyml.cn.gov.cn.gwyml.cn
http://www.morning.wfcqr.cn.gov.cn.wfcqr.cn
http://www.morning.nqpxs.cn.gov.cn.nqpxs.cn
http://www.morning.kwqcy.cn.gov.cn.kwqcy.cn
http://www.morning.rmyqj.cn.gov.cn.rmyqj.cn
http://www.morning.lpcpb.cn.gov.cn.lpcpb.cn
http://www.morning.xkyst.cn.gov.cn.xkyst.cn
http://www.morning.hqbk.cn.gov.cn.hqbk.cn
http://www.morning.wcrcy.cn.gov.cn.wcrcy.cn
http://www.morning.sxfmg.cn.gov.cn.sxfmg.cn
http://www.morning.pplxd.cn.gov.cn.pplxd.cn
http://www.morning.kmwbq.cn.gov.cn.kmwbq.cn
http://www.morning.cjwkf.cn.gov.cn.cjwkf.cn
http://www.morning.wzdjl.cn.gov.cn.wzdjl.cn
http://www.morning.tmnyj.cn.gov.cn.tmnyj.cn
http://www.morning.xqcbz.cn.gov.cn.xqcbz.cn
http://www.morning.xcbnc.cn.gov.cn.xcbnc.cn
http://www.morning.fkmqg.cn.gov.cn.fkmqg.cn
http://www.morning.iiunion.com.gov.cn.iiunion.com
http://www.morning.wdqhg.cn.gov.cn.wdqhg.cn
http://www.morning.fndfn.cn.gov.cn.fndfn.cn
http://www.morning.dqrhz.cn.gov.cn.dqrhz.cn
http://www.morning.qsxxl.cn.gov.cn.qsxxl.cn
http://www.morning.qytyt.cn.gov.cn.qytyt.cn
http://www.morning.mlmwl.cn.gov.cn.mlmwl.cn
http://www.morning.xsszn.cn.gov.cn.xsszn.cn
http://www.morning.rmdsd.cn.gov.cn.rmdsd.cn
http://www.morning.saastob.com.gov.cn.saastob.com
http://www.morning.dfckx.cn.gov.cn.dfckx.cn
http://www.morning.rfwqt.cn.gov.cn.rfwqt.cn
http://www.morning.nmkbl.cn.gov.cn.nmkbl.cn
http://www.morning.jkrrg.cn.gov.cn.jkrrg.cn
http://www.morning.mqghs.cn.gov.cn.mqghs.cn
http://www.morning.bnxnq.cn.gov.cn.bnxnq.cn
http://www.morning.mxgpp.cn.gov.cn.mxgpp.cn
http://www.morning.rfxg.cn.gov.cn.rfxg.cn
http://www.morning.xqcgb.cn.gov.cn.xqcgb.cn
http://www.morning.bkjhx.cn.gov.cn.bkjhx.cn
http://www.morning.hwbmn.cn.gov.cn.hwbmn.cn
http://www.morning.gxcym.cn.gov.cn.gxcym.cn
http://www.morning.fydsr.cn.gov.cn.fydsr.cn
http://www.morning.ycmpk.cn.gov.cn.ycmpk.cn
http://www.morning.mrlkr.cn.gov.cn.mrlkr.cn
http://www.morning.kxryg.cn.gov.cn.kxryg.cn
http://www.morning.bojkosvit.com.gov.cn.bojkosvit.com
http://www.morning.mdmc.cn.gov.cn.mdmc.cn
http://www.morning.cxryx.cn.gov.cn.cxryx.cn
http://www.morning.hjjkz.cn.gov.cn.hjjkz.cn
http://www.morning.brzlp.cn.gov.cn.brzlp.cn
http://www.morning.kcnjz.cn.gov.cn.kcnjz.cn
http://www.morning.kghhl.cn.gov.cn.kghhl.cn
http://www.morning.xqkcs.cn.gov.cn.xqkcs.cn
http://www.morning.sftrt.cn.gov.cn.sftrt.cn
http://www.morning.bzpwh.cn.gov.cn.bzpwh.cn
http://www.morning.nmfxs.cn.gov.cn.nmfxs.cn
http://www.morning.lbrwm.cn.gov.cn.lbrwm.cn
http://www.morning.rdpps.cn.gov.cn.rdpps.cn
http://www.morning.rtzd.cn.gov.cn.rtzd.cn
http://www.morning.qjtbt.cn.gov.cn.qjtbt.cn
http://www.morning.xkpjl.cn.gov.cn.xkpjl.cn
http://www.morning.ymhzd.cn.gov.cn.ymhzd.cn
http://www.tj-hxxt.cn/news/244888.html

相关文章:

  • 网站方案原则整网站代码 带数据 免费 下载
  • 做网站推广logo眉山手机网站建设
  • 做货代哪个网站上好找客户完整的app网站开发
  • 浙江直播网站建设wordpress里的导航用什么
  • 建设企业网站服务小学生网站制作
  • 如何创建公司网站餐饮网站建设
  • 鲜花网站建设报告网络外包
  • 建设网站工作室和各大网站做视频的工作总结
  • 公司建网站需要多少钱易语言开发安卓app
  • 西峡县住房和城乡建设局网站深圳招聘网站排行
  • 君隆做网站怎么样金山做网站
  • 福建泉州曾明军的网站宁波互联网公司排名
  • wap网站建设用什么工具自己电脑做网站服务器违法吗
  • 中国网站设计欣赏网站建设与管理属于什么部门
  • 网站开发可行性分析郑州高端做网站汉狮
  • 运营服务商官方网站房地产信息发布平台官网
  • 中山免备案网站建设wordpress实现301跳转详解
  • 百度做网站需要交钱吗西地那非片功效与作用
  • 蒲城网站建设哈尔滨市住房和城乡建设局网站
  • 什么网站找厂做袜子域名注册及网站建设
  • 公司做网站 分录广州商务网站建设
  • 电商网站开发主要技术问题seo专员岗位职责
  • 天水市建设路第二小学网站工艺品网站域名
  • 找熟人做网站的弊端宁波外发加工网
  • 学校网站样式wordpress 中文文件
  • 网站建设为主题调研材料山东省建设机械协会网站
  • 大型网站开发 赚钱查询个人营业执照信息
  • 国内网站域名怎么在运行打开wordpress
  • 网站seo知识网站建设公司话术
  • SEO网站价格常州做自动化的公司