当前位置:当前位置:主页 > 计算机电子书 > 程序设计 > Terraform pdf电子书
Terraform 实战

Terraform 实战 PDF 清晰版

  • 更新:2022-04-08
  • 大小:47.8 MB
  • 类别:Terraform
  • 作者:斯科特·温克勒(Scott、Winkler)
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

Terraform 实战》是由人民邮电出版社出版的一本关于Terraform方面的书籍,作者是斯科特·温克勒(Scott、Winkler),主要介绍了关于Terraform、Terraform实战方面的知识内容,目前在Terraform类书籍综合评分为:8.1分。

书籍介绍

编辑推荐

1.由浅入深,实战功能强大

为用户提供循序渐进的入门介绍,深入剖析更加复杂的现实模式。随着你逐渐学习零停机时间部署等高级技术,你将系统掌握Terraform的精髓,而不是只能简单地复制和粘贴脚本。

2.专业人士编写,参考性强

业界专业人士编写,实战经验丰富,为用户提供实用建议。

3.专业性强,适合专业人士巩固提升

本书适合熟悉主流云平台的开发人员和运维人员自学阅读。本书提供了使用JavaScript和Go编写的示例。

内容简介

本书基于实际项目,揭示如何使用Terraform自动扩展和管理基础架构。本书重点介绍了Terraform0.12的语法、基础知识和高级设计(如零停机时间部署和创建Terraform提供程序)。本书主要内容包括如何使用Terraform,如何管理Terraform资源的生命周期,如何编程,如何在AWS云中部署多层的Web应用程序,如何实现无服务器的部署,如何通过Terraform部署服务器,如何实现零停机部署,如何测试、重构,如何扩展Terraform,如何通过Terraform自动部署,如何实现安全管理。

本书适合作为系统管理员、DevOps工程师、开发人员的自学和参考用书。

目录

  • 第一部分Terraform训练营
  • 第1章Terraform入门3
  • 1.1Terraform的优点4
  • 1.1.1置备工具5
  • 1.1.2易于使用5
  • 1.1.3免费且开源的软件5
  • 1.1.4声明式编程6
  • 1.1.5云无关6
  • 1.1.6表达能力强且高度可扩展7
  • 1.2“HelloTerraform!”7
  • 1.2.1编写Terraform配置8
  • 1.2.2配置AWS提供程序10
  • 1.2.3初始化Terraform11
  • 1.2.4部署EC2实例12
  • 1.2.5销毁EC2实例16
  • 1.3新的“HelloTerraform!”18
  • 1.3.1修改Terraform配置19
  • 1.3.2应用修改20
  • 1.3.3销毁基础设施20
  • 1.4炉边谈话21
  • 小结21
  • 第2章Terraform资源的生命周期22
  • 2.1过程概述22
  • 2.2声明本地文件资源24
  • 2.3初始化工作空间25
  • 2.4生成执行计划26
  • 2.5创建本地文件资源30
  • 2.6执行no-op34
  • 2.7更新本地文件资源35
  • 2.7.1检测配置漂移39
  • 2.7.2terraformrefresh41
  • 2.8删除本地文件资源42
  • 2.9炉边谈话44
  • 小结44
  • 第3章函数式编程45
  • 3.1有趣的MadLibs46
  • 3.1.1输入变量47
  • 3.1.2使用变量定义文件赋值48
  • 3.1.3验证变量49
  • 3.1.4打乱列表49
  • 3.1.5函数51
  • 3.1.6输出值52
  • 3.1.7模板53
  • 3.1.8生成输出结果54
  • 3.2生成许多MadLibs故事55
  • 3.2.1for表达式56
  • 3.2.2局部值57
  • 3.2.3隐式依赖58
  • 3.2.4count元实参60
  • 3.2.5条件表达式61
  • 3.2.6更多模板62
  • 3.2.7本地文件63
  • 3.2.8压缩文件64
  • 3.2.9应用修改67
  • 3.3炉边谈话68
  • 小结69
  • 第4章在AWS中部署多层Web应用程序70
  • 4.1架构71
  • 4.2Terraform模块73
  • 4.2.1模块的语法73
  • 4.2.2根模块74
  • 4.2.3标准模块结构74
  • 4.3根模块75
  • 4.4网络模块78
  • 4.5数据库模块82
  • 4.5.1从网络模块传递数据83
  • 4.5.2生成随机密码84
  • 4.6自动扩展模块86
  • 4.6.1下滴数据86
  • 4.6.2模板化cloudinit_config88
  • 4.7部署Web应用程序92
  • 4.8炉边谈话93
  • 小结94
  • 第二部分现实环境下的Terraform
  • 第5章简单的无服务器部署97
  • 5.1“两美分网站”98
  • 5.2架构和计划100
  • 5.3编写代码104
  • 5.3.1资源组105
  • 5.3.2存储容器106
  • 5.3.3存储blob107
  • 5.3.4Function应用108
  • 5.3.5终润色111
  • 5.4部署到Azure114
  • 5.5将Azure资源管理器与Terraform结合起来116
  • 5.5.1部署不支持的资源116
  • 5.5.2从遗留代码迁移117
  • 5.5.3生成配置代码118
  • 5.6炉边谈话119
  • 小结119
  • 第6章与朋友协同使用
  • Terraform120
  • 6.1标准后端和增强后端120
  • 6.2开发S3后端模块121
  • 6.2.1架构122
  • 6.2.2扁平模块123
  • 6.2.3编写代码124
  • 6.3共享模块130
  • 6.3.1GitHub130
  • 6.3.2Terraform注册表131
  • 6.4每人一个S3后端133
  • 6.4.1部署S3后端133
  • 6.4.2在S3后端存储状态135
  • 6.5在工作空间中复用配置代码138
  • 6.5.1部署多个环境139
  • 6.5.2清理142
  • 6.6TerraformCloud简介143
  • 6.7炉边谈话144
  • 小结144
  • 第7章CI/CD管道即代码145
  • 7.1两个部署146
  • 7.2GCP上的Docker容器的CI/CD147
  • 7.2.1设计管道147
  • 7.2.2施工设计148
  • 7.3初始工作空间设置149
  • 7.4动态配置和置备程序151
  • 7.4.1for_each与count152
  • 7.4.2使用置备程序执行脚本153
  • 7.4.3带有local-exec置备程序的null资源155
  • 7.4.4处理重复的配置块156
  • 7.4.5动态块158
  • 7.5配置无服务器容器160
  • 7.6部署静态基础设施162
  • 7.7Docker容器的CI/CD165
  • 7.8炉边谈话168
  • 小结169
  • 第8章多云MMORPG170
  • 8.1混合云负载均衡171
  • 8.1.1架构概览172
  • 8.1.2代码174
  • 8.1.3部署176
  • 8.2在Nomad集群联邦上部署一个MMORPG178
  • 8.2.1集群联邦基础179
  • 8.2.2架构179
  • 8.2.3阶段1:静态基础设施181
  • 8.2.4阶段2:动态基础设施186
  • 8.2.5准备玩家1189
  • 8.3使用托管服务重新设计MMORPG190
  • 8.3.1代码191
  • 8.3.2准备玩家2192
  • 8.4炉边谈话193
  • 小结194
  • 第三部分精通Terraform
  • 第9章零停机时间部署197
  • 9.1自定义生命周期198
  • 9.1.1使用create_before_destroy实现零停机时间部署198
  • 9.1.2其他考虑因素200
  • 9.2蓝/绿部署201
  • 9.2.1架构202
  • 9.2.2代码204
  • 9.2.3部署204
  • 9.2.4蓝/绿切换206
  • 9.2.5其他考虑因素207
  • 9.3配置管理208
  • 9.3.1将Terraform和Ansible组合起来208
  • 9.3.2代码209
  • 9.3.3基础设施部署215
  • 9.3.4应用程序部署216
  • 9.4炉边谈话218
  • 小结218
  • 第10章测试和重构220
  • 10.1置备自助基础设施221
  • 10.1.1架构221
  • 10.1.2代码222
  • 10.1.3预部署224
  • 10.1.4污染和轮转访问密钥225
  • 10.2重构Terraform配置227
  • 10.2.1模块化代码227
  • 10.2.2模块展开229
  • 10.2.3使用局部值替换多行字符串231
  • 10.2.4循环多个模块实例233
  • 10.2.5新的IAM模块234
  • 10.3迁移Terraform状态236
  • 10.3.1状态文件的结构236
  • 10.3.2移动资源237
  • 10.3.3重新部署238
  • 10.3.4导入资源239
  • 10.4测试基础设施即代码242
  • 10.4.1编写一个基本的Terraform测试243
  • 10.4.2测试套件245
  • 10.4.3运行测试247
  • 10.5炉边谈话247
  • 小结248
  • 第11章通过编写自定义提供程序扩展Terraform249
  • 11.1Terraform提供程序的蓝图250
  • 11.1.1Terraform提供程序的基础知识250
  • 11.1.2Pestore提供程序的架构251
  • 11.2编写Petstore提供程序253
  • 11.2.1设置Go项目253
  • 11.2.2配置提供程序模式254
  • 11.3创建宠物资源257
  • 11.3.1定义Create()259
  • 11.3.2定义Read()261
  • 11.3.3定义Update()262
  • 11.3.4定义Delete()263
  • 11.4编写验收测试265
  • 11.4.1测试提供程序模式265
  • 11.4.2测试宠物资源266
  • 11.5生成、测试、部署268
  • 11.5.1部署PetstoreAPI268
  • 11.5.2测试和生成提供程序270
  • 11.5.3安装提供程序271
  • 11.5.4宠物即代码271
  • 11.6炉边谈话275
  • 小结276
  • 第12章自动化Terraform277
  • 12.1仿造版的TerraformEnterprise278
  • 12.1.1对TerraformEnterprise实施逆向工程278
  • 12.1.2设计细节280
  • 12.2从根级别开始281
  • 12.3开发一个TerraformCI/CD管道282
  • 12.3.1声明输入变量282
  • 12.3.2IAM角色和策略283
  • 12.3.3构建计划和应用阶段286
  • 12.3.4配置环境变量289
  • 12.3.5声明管道即代码291
  • 12.3.6终代码294
  • 12.4部署TerraformCI/CD管道297
  • 12.4.1创建源代码仓库297
  • 12.4.2创建小特权部署策略298
  • 12.4.3配置Terraform变量299
  • 12.4.4部署到AWS299
  • 12.4.5连接到GitHub301
  • 12.5使用管道部署“HelloWorld!”301
  • 12.6炉边谈话305
  • 小结306
  • 第13章安全和密钥管理307
  • 13.1保护Terraform状态308
  • 13.1.1从Terraform状态删除不必要的密钥308
  • 13.1.2使用小特权访问控制312
  • 13.1.3静态加密313
  • 13.2保护日志314
  • 13.2.1哪些敏感信息会被泄露315
  • 13.2.2local-exec置备程序的危险317
  • 13.2.3外部数据源的危险317
  • 13.2.4HTTP提供程序的危险319
  • 13.2.5限制日志访问320
  • 13.3管理静态密钥320
  • 13.3.1环境变量320
  • 13.3.2Terraform变量322
  • 13.3.3重定向敏感的Terraform变量324
  • 13.4使用动态密钥325
  • 13.4.1HashiCorpVault326
  • 13.4.2AWSSecretsManager327
  • 13.5Sentinel和策略即代码328
  • 13.5.1编写一个基本的Sentinel策略329
  • 13.5.2阻塞local-exec置备程序330
  • 13.6结语331
  • 小结331
  • 附录AAWS身份验证333
  • 附录BAzure身份验证335
  • 附录CGCP身份验证337
  • 附录D使用Shell提供程序
  • 创建自定义资源339
  • 附录E创建Petstore
  • 数据源344

资源获取

相关资源

网友留言