How to move tf binary to another location? - linux

I installed an older version of terraform and the binary is in my downloads, how do I move it to another location? have to /opt/homebrew/Cellar/tfenv/3.0.0/versions/1.0.0/terraform
I used the method here: https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli
but I get: terraform is not a directory

think about using tfenv if you want to maintain different terraform versions in same PC.

By your path, it seems that you are using homebrew as a package manager.
Use these steps to install any version of terraform.
Install tfenv
brew install tfenv
List the available versions of terraform via tfenv (optional)
## To view all the available versions via tfenv.
tfenv list-remote
## tfenv list-remote | head -n <number_of_last_terraform_versions_you_want_to_list>
tfenv list-remote | head -n 20 ## example
To Install the required terraform version via tfenv
## tfenv install <terraform_version_you_want>
tfenv install 1.3.7
Switch to the version you installed via tfenv in the past or the last step.
## tfenv use <terraform_version_you_want>
tfenv use 1.3.7

Related

Where is terraform binary in Ubuntu after update?

I had terraform v0.14.5 installed on my Ubuntu Jenkins build node.
$ which terraform
/usr/local/bin/terraform
$ terraform -v
Terraform v0.14.5
Your version of Terraform is out of date! The latest version
is 1.2.7. You can update by downloading from https://www.terraform.io/downloads.html
So I followed APT Packages for Debian and Ubuntu to install the latest version, which is currently v1.2.7, and it installed successfully.
$ apt policy terraform
terraform:
Installed: 1.2.7
Candidate: 1.2.7
However, I still get
$ which terraform
/usr/local/bin/terraform
$ terraform -v
Terraform v0.14.5
Your version of Terraform is out of date! The latest version
is 1.2.7. You can update by downloading from https://www.terraform.io/downloads.html
How do I set the executable to the latest installed terraform version?
Try dpkg -L terraform, this will list all installed files from this package.
which looks for binaries in the PATH environment variable. If /usr/local/bin is before /usr/bin, then /usr/local/bin/terraform will always show up first.
E.g. my PATH variable has this order
$ echo $PATH
/home/olaf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

How to install specified Terraform version and use it further

If I install Terraform via brew install terraform#0.12 , it installed latest version 0.12.31.
And then to use it I run command alias terraform=$(brew config | awk '/HOMEBREW_PREFIX:/ { print $2 }')/opt/terraform#0.12/bin/terraform.
But I need to use not the latest version, I want to use 0.12.29.
And I can install it via
brew install tfenv
tfenv install 0.12.29
tfenv use 0.12.29
But I don't know how to specify this version ( 0.12.29 ) in alias terraform=.
Have you heard of this project? https://tfswitch.warrensbox.com/Quick-Start/
It makes adjusting the current version of terraform a lot easier.
Same for terragrunt https://warrensbox.github.io/tgswitch/additional.html

Terraform - version differences

Why, when I run terraform -v do I get:
Terraform v0.9.6
Your version of Terraform is out of date! The latest version
is 0.9.7. You can update by downloading from www.terraform.io
i.e. implying the latest version is 0.9.7 BUT, at the time of this post (and when I ran the terraform -v command) https://www.terraform.io/ says 0.9.8 as does brew via http://brewformulas.org/Terraform
Install the required binary package (depending upon your OS) from Download page. https://github.com/hashicorp/terraform/releases
Unzip the .zip file to the bin directory as per your OS
For mac
unzip terraform_0.9.11_darwin_amd64.zip -d /usr/local/bin
Now check the terraform version:
terraform version
Terraform v0.9.1

Upgrade Terraform version

I'm start using Terraform and I'm following the project updates on his Github repository.
I see new releases are available on releases section:
https://github.com/hashicorp/terraform/releases
I installed Terraform tool following the steps:
https://www.terraform.io/intro/getting-started/install.html
The new releases are a zip file with base code but I want to know how I can install it on my computer (OSX). What I downloaded when I installed for the first time was a zip file with just a "terraform" file as unix executable.
How I can generate this Unix executable from the zip available on the github releases section?
Any idea?
Thank you!
If you use Homebrew on MacOS already, you can install Terraform simply by
$ brew install terraform
and upgrade by
$ brew upgrade terraform
In fact, you might be interested in letting Homebrew also control other tools:
$ brew install awscli
$ brew install packer
$ brew cask install docker
$ brew cask install virtualbox
$ brew cask install vagrant
There are packages for each OS available on the Downloads Page.
Pick the appropriate package for your OS and download the zip file.
Extract the contents of the zip file, which should be a single terraform binary, into some reasonable location that's in your PATH (e.g. /usr/local/bin).
Add execute permissions: e.g. chmod u+x /usr/local/bin/terraform.
Run terraform and make sure you see the help text.
You could download the binary :
wget https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip
then :
unzip terraform_${TERRAFORM_VERSION}_linux_amd64.zip
then :
mv terraform /usr/local/bin/
make sure to change ${TERRAFORM_VERSION} by the version you want to install
exemple :
0.13.2
**TLDR:
for Installation - brew install terraform
for Upgrade - brew upgrade terraform
for Verification - terraform --version
i'm new to using terraform, but to use terraform with multiple versions i use tfenv as terraform version manager
tfenv command
$ tfenv
tfenv 2.2.3
Usage: tfenv <command> [<options>]
Commands:
install Install a specific version of Terraform
use Switch a version to use
uninstall Uninstall a specific version of Terraform
list List all installed versions
list-remote List all installable versions
version-name Print current version
init Update environment to use tfenv correctly.
pin Write the current active version to ./.terraform-version
terraform currently i use
$ terraform -version
Terraform v1.1.9
on linux_amd64
list of terraform i have
$ tfenv list
1.2.0-rc2
* 1.1.9 (set by /home/takimi/.tfenv/version)
change terraform version
$ tfenv use 1.2.0-rc2
and if you want to use another terraform version you just install it with command tfenv install <terraform version>
Adding this response for the sake of completeness.
Hashicorp came up with their own brew taps for all Hashicorp products for MacOS platforms.
to upgrade ...
brew upgrade hashicorp/tap/{vault|consul|nomad|terraform|packer}
to install ...
brew install hashicorp/tap/{vault|consul|nomad|terraform|packer}
Reference : https://www.hashicorp.com/blog/announcing-hashicorp-homebrew-tap
This is detailed in the repository README under 'Developing Terraform' HERE
Essentially...
Ensure you've installed the GO programming language (version 1.7+ at the time of writing).
Create a GO workspace directory.
Create the $GOPATH environment variable pointing to the GO workspace directory you just created.
Add $GOPATH/bin to your $PATH
Clone the Terraform repo (or extract zip) to $GOPATH/src/github.com/hashicorp/terraform
Run make dev within the Terraform repo.
The Terraform binary should be created in $GOPATH/bin
I would recommend you follow the steps in the README as opposed to what I've written above it's comprehensive and may change.
You shouldn't need to do any of this unless your actively developing Terraform, otherwise stick with the installation method in the getting started guide.
To work with multiple Terraform versions, I'm using tfswitch. This allows you to switch between the terraform versions which makes things much easier.
You can find the documentation here.
I was able to use this tool to manage terraform versions: https://github.com/Zordrak/tfenv. The first step was to remove the existing installation with: rm '/usr/local/bin/terraform'
You could use something like asdf or tfenv to manage the terraform binaries.
Gives you the advantage of having the option to use different version per project if required.
$sudo apt-get upgrade
it will work in linux if you have setup right path for terraform

Ansible + why yum not install the latest version

I am installed successfully the ansible tool from yum repository as
yuminstallansible
ansible is great tool even more then puppet
From site - http://docs.ansible.com/ansible/intro_installation.html#getting-ansible
but after yum installation I see that the ansible isn’t the latest version
ansible--version
ansible1.1
Ansible releases - https://github.com/ansible/ansible/releases
please advice why yum not install the latest ansible version ( 1.9 )
You must configure EPEL first: https://dl.fedoraproject.org/pub/epel/7/x86_64/repoview/ansible.html
It may be better to install Ansible with pip.
pip will get you the latest version much more quickly than yum

Resources