setting up terraform v0.14.0 on Apple M1 - terraform

Any pointers how to setup Terraform v0.14.0 on a Apple M1 , as tfenv doesn't support v0.14.0 on Apple M1
tfenv install v0.14.0
Installing Terraform v0.14.0
Downloading release tarball from https://releases.hashicorp.com/terraform/0.14.0/terraform_0.14.0_darwin_arm64.zip
curl: (22) The requested URL returned error: 403
Tarball download failed

You can set the env var TFENV_ARCH and use tfenv
TFENV_ARCH=amd64 tfenv install 0.14.0

If you are using tfenv, you can override the architecture with TFENV_ARCH environment variables: TFENV_ARCH=amd64. See docs.
If you are not using tfenv:
Terraform is a simple executable, you can download it and unzip it from here:
https://releases.hashicorp.com/terraform/0.14.0/:
wget https://releases.hashicorp.com/terraform/0.14.0/terraform_0.14.0_darwin_amd64.zip
unzip terraform_0.14.0_darwin_amd64.zip
Please note, there is no arm64 build for osx, but the amd64 works just fine on a Mac M1.
Now you can copy the extracted executable in a folder like /usr/local/bin, which should be on your PATH, so you can run terraform command from anywhere in your system.

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 completely uninstall terraform v0.11.14 from ubuntu 18?

I want to completely remove terraform v0.11.14 from my ubuntu 18 and install the new version. I'm unable to find any document or articles on web about this..
See How to uninstall terraform and install newer version of terraform on windows 10 linux subsystem?
To install it you typically copy the binary to /usr/local/bin, so to uninstall it just delete the binary from the installation location. If you don't know the the location, just run 'which terraform' to find it.

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

offline document for go/golang

Is there any Ubuntu go offline document package that I can install so that I can read the package docs for Go offline?
I thought it would be golang-doc but it is actually not -- there aren't any Go package docs in it.
Then I research further and tried
godoc -http=:6060
but visiting http://127.0.0.1:6060/pkg/ gives me
lstat /usr/lib/go/doc: no such file or directory
How to read the Go package docs offline?
PS. My Ubuntu and golang-go package:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.04
Release: 15.04
Codename: vivid
$ apt-cache policy golang-go
golang-go:
Installed: 2:1.4.2
Candidate: 2:1.4.2
Version table:
*** 2:1.4.2 0
500 http://ppa.launchpad.net/evarlast/golang1.4/ubuntu/ vivid/main amd64
I am not sure the answer marked as correct is actually the correct answer - I could not access the golang documentation offline using that at least.
This works for me on a Mac. I have not tested it on Ubuntu.
If you have godoc installed, run the following command:
godoc -http=:6060
Then open a browser with the following URL:
http://127.0.0.1:6060/pkg/
Or http://127.0.0.1:6060/ to see the first page of the golang web site.
All of the doco from the gloang web site will then be available to you.
According to Installing Go from source:
The source code for several Go tools (including godoc) is kept in the go.tools repository. To install all of them, run the go get command:
$ go install golang.org/x/tools/cmd/...#latest
Or if you just want to install a specific command (godoc in this case):
$ go install golang.org/x/tools/cmd/godoc#latest
To install these tools, the go get command requires that Git be installed locally.
You must also have a workspace (GOPATH) set up; see How to Write Go Code for the details.
Note: The go command will install the godoc binary to $GOROOT/bin (or $GOBIN) and the cover and vet binaries to $GOROOT/pkg/tool/$GOOS_$GOARCH. You can access the latter commands with "go tool cover" and "go tool vet".
Based on that information, have you tried:
Installing godoc using $ go install golang.org/x/tools/cmd/godoc#latest
Verifying Git is installed using $ git --version
Verifying the GOPATH using $ echo $GOPATH

Resources