Import existing AWS resources into Terraform style (tf, tfstate)
Add this line to your application's Gemfile:
gem 'terraforming'And then execute:
$ bundle
Or install it yourself as:
$ gem install terraforming
You need to set AWS credentials.
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=$ terraforming
Commands:
terraforming dbpg # Database Parameter Group
terraforming dbsg # Database Security Group
terraforming dbsn # Database Subnet Group
terraforming ec2 # EC2
terraforming elb # ELB
terraforming help [COMMAND] # Describe available commands or one specific command
terraforming nacl # Network ACL
terraforming rds # RDS
terraforming s3 # S3
terraforming sg # SecurityGroup
terraforming sn # Subnet
terraforming vpc # VPCOutput .tf style (e.g. S3 buckets):
$ terraforming s3resource "aws_s3_bucket" "hoge" {
bucket = "hoge"
acl = "private"
}
resource "aws_s3_bucket" "fuga" {
bucket = "fuga"
acl = "private"
}To output .tfstate style, specify --tfstate option (e.g. S3 buckets):
$ terraforming s3 --tfstate{
"version": 1,
"serial": 1,
"modules": {
"path": [
"root"
],
"outputs": {
},
"resources": {
"aws_s3_bucket.hoge": {
"type": "aws_s3_bucket",
"primary": {
"id": "hoge",
"attributes": {
"acl": "private",
"bucket": "hoge",
"id": "hoge"
}
}
},
"aws_s3_bucket.fuga": {
"type": "aws_s3_bucket",
"primary": {
"id": "fuga",
"attributes": {
"acl": "private",
"bucket": "fuga",
"id": "fuga"
}
}
}
}
}
}(Probably you have to modify the output to add it to existing terraforming.tfstate)
After checking out the repo, run scripts/setup to install dependencies. Then, run scripts/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release to create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
- Fork it ( https://github.com/dtan4/terraforming/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request