Terraform 云初始化 AWS

Posted

技术标签:

【中文标题】Terraform 云初始化 AWS【英文标题】:Terraform Cloud-Init AWS 【发布时间】:2019-12-22 13:40:28 【问题描述】:

我有一个用于部署 Ubuntu 的 Terraform 脚本。

resource "aws_instance" "runner" 
  instance_type = "$var.instance_type"
  ami = "$var.ami"
  user_data =   "$data.template_file.deploy.rendered"


data "template_file" "deploy" 
  template = "$file("cloudinit.tpl")"


我的 cloudinit.tpl:

#cloud-config
runcmd:
  - apt-get update
  - sleep 30
  - apt-get install -y  awscli

我在 cloud-init.log 上找不到任何问题,并且在 /var/log 中找不到 user-data.log 文件以了解为什么 user-data 不起作用。

【问题讨论】:

为什么要睡觉?可以发/var/log/cloud-init-output.log的相关部分吗?如果您在 AWS 控制台中查看实例的用户数据,它会显示什么? 我使用睡眠等待更新完成,在/var/log/cloud-init-output.log 我有这个:E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? 顺便说一句。还有packages,它也会自动为你运行apt-get update 【参考方案1】:

Cloud-init 有一个用于系统更新的特殊命令,它进行一致性操作

#cloud-config
package_update: true
package_upgrade: true
packages: ['awscli']

runcmd:
  - aws --version

您可能会在日志文件中看到命令输出,对于 Ubuntu,它是 /var/log/cloud-init-output.log

【讨论】:

以上是关于Terraform 云初始化 AWS的主要内容,如果未能解决你的问题,请参考以下文章

Terraform系列三腾讯云CVM中的玩法

terraform 将云作曲家从 1.0 升级到 2.0?

terraform如何创建数据盘

腾讯云支持Terraform开发实践

Terraform 学习总结—— 基于阿里云平台上的 Terraform 实战

Terraform 学习总结—— 基于阿里云平台上的 Terraform 实战