I would use Pulumi if I had to do it over again. I use the Pulumi Python SDK for some internal things at my work currently and it's so much better of a DX than fighting HCL all day.
We actually tried to adopt Terraform early in 2015 but we hit some of the nasty state bugs back in version .05 or .06 IIRC and we hosed one of our deployments and couldn't recover. That burned the Terraform bridge for us and we just used Ansible to automate everything.