Ask Your Question

How puppetlabs-aws is different from Terraform?

asked 2018-09-01 11:50:39 -0500

karthikeayan gravatar image

I found this module while browsing through Puppet documentation.

In simple terms this allows to create and manage the AWS Resources as Infra-as-Code using Puppet. This is cool.

But how does this differ from Hashicorp Terraform?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2018-09-04 08:55:07 -0500

DarylW gravatar image

Fundamentally, both are a declarative DSL for specifying AWS resources, backed by individual aws sdk / rest calls to the AWS api.

Terraform is an opensource product from Hashicorp, which has an active community. puppetlabs-aws is a (IIRC) puppet supported module which defines a bunch of resources that can be used to describe AWS resources in the puppet syntax / DSL.

Terraform maintains a 'state' file, which it uses to keep track of things that it creates. puppetlabs-aws uses 'describe' calls to AWS to check the state of it's resources.

Just like regular puppet resources, if you 'delete' a resource from your manifest, it will not 'remove' it from puppet, it just won't manage it any more, so you would have to explicitly tell the resources to get deleted, or else you are left with danging, un-managed resources in your AWS account. The same thing can happen to terraform, if your local .tfstate file gets deleted/lost/corrupted

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2018-09-01 11:50:39 -0500

Seen: 90 times

Last updated: Sep 04