cookbook 'terraform', '~> 3.0.1'
terraform
(24) Versions
3.0.1
-
Follow6
Installs Terraform (terraform.io)
cookbook 'terraform', '~> 3.0.1', :supermarket
knife supermarket install terraform
knife supermarket download terraform
terraform Cookbook
Installs Terraform by HashiCorp.
Terraform is an open source tool that allows you to
configure entire infrastructure stack as code.
Transfer of Ownership
As of v2.1.1, the ownership of this cookbook was transferred to haidangwa. From this point forward, all issues and pull requests should be submitted at https://github.com/haidangwa/chef-terraform.
Requirements
Chef Client
As of version 3.0.0, this cookbook will require minimum Chef Infra Client >= 15.8
Cookbooks
This cookbook depends on the following cookbooks:
* ark cookbook to unpackage and install terraform.
* gpg to calculate and compare GPG hashes
Platforms
The following platforms are supported and have been tested under
Test Kitchen:
- CentOS 7 * 8
- Debian 9 & 10
- Amazon Linux
- Ubuntu 16.04
- Ubuntu 18.04
Other versions of these OSs should work. Alternative Debian and RHEL
family distributions are also assumed to work. Please report
any additional platforms you have tested so they can be added.
** Note for Debian:
dayne has found that this cookbook may not converge on Debian platforms. This can be fixed by doing running apt update
, and then it will converge. This workaround has been applied to Test Kitchen by invoking the terraform_test::ubuntu
recipe.
Usage
Simply include recipe[terraform]
in your run_list to have
Terraform installed. If you are using an artifact repository, like Nexus, hosted behind your corporate firewall, you must set the default attribute or override attributes in your roles or environments. The attributes are detailed velow.
Recipes
default
Installs Terraform from official pre-compiled binaries and gnupg with the gpgme recipe, below.
gpgme
Installs gnupg2 and haveged to ensure the checksums file from HashiCorp can be trusted. This recipe is included when the default recipe is added to your node's run list.
Attributes
node['terraform']['url_base']
If you are using an artifact repository, like Nexus, hosted behind your corporate firewall, you must set the default attribute or override attributes in your roles or environments.
Default: https://releases.hashicorp.com/terraform
node['terraform']['version']
The version of Terraform that will be installed (Default: 0.12.26)
node['terraform']['checksum']
As of v0.4.1, checksums are processed dynamically. There is no longer a need to specify the sha256 checksums of each terraform package in a cookbook attribute manually
_As of v1.0.0, the checksum file will have its gpg signature verified. If the gpg signature is rejected, the chef run will fail.
NOTE: All other attributes are considered internal and shouldn't
normally need to be changed.
Example setting default_attributes in a role (JSON file):
{ "name": "terraform_workstation", "description": "Role to apply onto a terraform workstation", "json_class": "Chef::Role", "default_attributes": { "terraform": { "url_base": "https://nexus.internal.com/nexus", "version": "0.12.5" } }, "override_attributes": {}, "run_list": [ "recipe[terraform]" ] }
Development
- Source hosted at GitHub
- Report issues/questions/feature requests on GitHub Issues
Credit
This cookbook, especially the checksum stuff in
attributes file has been influenced by the Packer
cookbook by
@sit.
License and Author
Author:: Ross Timson
<ross@rosstimson.com>
Contributor:: Dang Nguyen
<haidangwa@gmail.com>
Copyright 2014, Ross Timson
2016, Dang H. Nguyen
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Dependent cookbooks
ark ~> 5.0 |
gpg ~> 1.1 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
Collaborator Number Metric
3.0.1 failed this metric
Failure: Cookbook has 1 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
Contributing File Metric
3.0.1 passed this metric
Foodcritic Metric
3.0.1 passed this metric
No Binaries Metric
3.0.1 failed this metric
Failure: Cookbook should not contain binaries. Found:
terraform/files/default/hashicorp.asc
Testing File Metric
3.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
3.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
3.0.1 failed this metric
3.0.1 passed this metric
Foodcritic Metric
3.0.1 passed this metric
No Binaries Metric
3.0.1 failed this metric
Failure: Cookbook should not contain binaries. Found:
terraform/files/default/hashicorp.asc
Testing File Metric
3.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
3.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
3.0.1 passed this metric
3.0.1 failed this metric
Failure: Cookbook should not contain binaries. Found:
terraform/files/default/hashicorp.asc
Testing File Metric
3.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
3.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
3.0.1 failed this metric
3.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number