通过 terraform 在 cloud init 中传递 python 脚本

Posted

技术标签:

【中文标题】通过 terraform 在 cloud init 中传递 python 脚本【英文标题】:pass python script in cloud init through terraform 【发布时间】:2021-01-14 18:45:29 【问题描述】:

我正在创建一个 ASG,我想在创建实例后不久在其中调用几个 rest api。我知道我可以编写一个 bash 脚本并在 cloud-config 中传递它,但我想使用一个 python 脚本,因为这会给我使用 json 解析库的额外优势。我无法弄清楚如何在用户数据云配置中传递 python 文件。非常感谢任何帮助。

  # ...terraform stuff for ASG
  user_data = <<EOF
  #cloud-config
  #script.py(my python script)

【问题讨论】:

【参考方案1】:

一种方法是内联运行您的脚本,如python -c "print 'Hello, World!'"

如果您确实需要传入的脚本,则需要让 user_data 脚本从某个存储位置将其下载到实例。或者,如果您使用的是自定义构建的 AMI,您可以在 AMI 中包含脚本。

【讨论】:

以上是关于通过 terraform 在 cloud init 中传递 python 脚本的主要内容,如果未能解决你的问题,请参考以下文章

user_data 未在 EC2 中执行,在 cloud-init thru terraform 中出现错误

带有 Terraform 的 KVM:SSH 权限被拒绝(Cloud-Init)

如何使用 cloud-init 和 Terraform 设置主机名?

防止 terraform 函数“模板文件”输出 heredoc

在 Azure VM 上使用 cloud-init 挂载数据磁盘失败

如何通过 terraform 使用服务帐户创建 google cloud pubsub pull 订阅?