使用Terraform部署代码和管理配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Terraform部署代码和管理配置相关的知识,希望对你有一定的参考价值。

只是给出背景:

  1. 我打算使用Terraform为ec2机器,elb等提供新的独立环境,然后维护配置。使用terraform并使用AWS提供程序这样做听起来相当简单。

问题1:在启动这些实例时,我想安装一些软件包等,这样当Terraform启动实例(服务器)时,应该启动并运行一些东西/应用程序。

假设上面已经启动并运行:

问题2:如何在Terraform推出的环境中的服务器上部署新代码?我应该用于例如。 ansible剧本/厨师食谱/木偶表现?或Terraform提供一些其他选择/方式?

答案

简要回答:

问题1:在启动这些实例时,我想安装一些软件包等,这样当Terraform启动实例(服务器)时,应该启动并运行一些东西/应用程序。

有两种选择:

  1. 使用已安装的包创建实例的AMI,并在resource中指定它。
  2. 使用user data脚本安装实例启动时所需的软件包。
  3. 在实例运行后使用ansible playbooks / chef recipes / puppet来安装包(例如,创建带有terraform的opsworks堆栈)

问题2:如何在Terraform推出的环境中的服务器上部署新代码?我应该用于例如。 ansible剧本/厨师食谱/木偶表现?或Terraform提供一些其他选择/方式?

不是terraform的预期用例,使用其他工具,如jenkins或aws服务,如codepipeline或codedeploy。 Ansible / chef / puppet也可以提供帮助(例如使用opsworks)

以上是关于使用Terraform部署代码和管理配置的主要内容,如果未能解决你的问题,请参考以下文章

Terraform 用户 TF_VAR 不工作的嵌套模块

Terraform入门教程,示例展示管理Docker和Kubernetes资源

如何使用一个 terraform 脚本和不同的变量值管理多个不同环境的部署

Terraform + AWS ECS,持续部署流程?

使用 Terraform 管理 GKE 及其部署

Terraform:使用封闭的网络连接