运行来自Ansible到Terraform的模块

首先

基础设施即代码(IaC)非常方便。一旦习惯了这种便利,通过图形界面一点一点地操作就会变得麻烦起来。
大家都在使用哪些IaC工具呢?比如Ansible、Puppet、Chef、Terraform和CloudFormation等等。
这次我们将结合擅长操作云资源的Terraform和擅长管理操作系统的Ansible,试图通过Ansible将从云资源分配到EC2配置更改的一系列操作统一起来。

这篇文章是将个人博客文章编辑后用于Qiita的版本。
https://tagfa.wpx.jp/archives/312

Implement or put into practice (实施)

只需要一种选择,以下是对原文的汉语转述:

通过Ansible命令一键完成云资源部署和EC2配置更改。
其流程是,首先使用Ansible执行Terraform创建VPC、EC2和ELB。然后,使用Ansible进行通用处理和安装nginx。
模块结构如下所示。

image.png

因为Ansible具有可以执行Terraform代码的Terraform模块,所以我们将使用此模块。

在这里有一个问题,使用 Terraform 创建 EC2 实例之后,需要使用 Ansible 进行共同处理并安装 Nginx,但是将处理流程统一到 Ansible 中会遇到一个问题,就是在执行之前无法获取 EC2 的 IP 地址。

在这里出现的是Ansible的DynamicInventory功能。使用它可以动态更改清单文件。

作为处理流程

    • Terraformでクラウドリソースデプロイ

 

    • DynamicInventory更新

 

    Ansibleで共通処理、nginxインストール

会按照这个趋势发展。

请查看以下存储库以获取关于具体实施的更多信息:
https://github.com/tagfa/ansible-terraform

最后

如何呢?使用Ansible进行统一管理,只需一条命令即可完成多种操作,非常方便。

我猜同样的IaC工具,人们经常会纠结于“应该用哪个”,但我认为组合使用而不是互相替换会变得更好。

如果你有兴趣的话,请试试看。

广告
将在 10 秒后关闭
bannerAds