LoginSignup
2
1

More than 5 years have passed since last update.

Ansible を使って Go をインストールする

Posted at

開発環境を共有しやすくするため、Ansible を使ってツール類をインストールします。
Ansible の Galaxy にある Go の Role がとても分かりやすかったためメモしておきます。

事前準備

前提条件として、Ansible がインストールされていることとします。

Ansibleのバージョンを確認
$ ansible --version
ansible 2.1.2.0
  config file = 
  configured module search path = Default w/o overrides

必要なファイルは末尾に記載してありますので、ディレクトリにまとめて保存してから作業します。

作業手順

まず、Ansible Galaxy から Go をインストールするための Role をダウンロードします。
システムワイドに配置する方法と、ローカルディレクトリに配置する方法があります。
デフォルトは前者ですが、システムや実行ユーザーによっては書き込み権限が問題になることがあります。後者の場合は -p オプションを使います。必要に応じて使い分けましょう。

Roleをダウンロード
$ sudo ansible-galaxy install -r roles.yml
Roleをローカルディレクトリにダウンロードする場合
$ ansible-galaxy install -p ./roles -r roles.yml

次に、Playbook を書いて実行します。
一応 site.yml を書いていますが、中で呼び出しているファイルを直接指定しても構いません。

Playbookを実行
$ sudo ansible-playbook -c local -i development site.yml

なお、ここではローカル固定にしているので SSH を使わないために -c local オプションを付けています。リモートの環境をセットアップする場合はオプションを指定する必要はありません。

Playbook が正常に実行されると、環境変数 GOROOTPATH が設定されます。再度ログインしてインストールされた Go のバージョンを確認しましょう。

インストールされたGoのバージョンを確認
$ go version
go version go1.7.1 linux/amd64

インストールするバージョンやアーキテクチャを変更したい場合は変数を設定しておきます。

  • go_tarball
  • go_tarball_checksum
  • go_version_target

ファイル一覧

以下のファイルを作業ディレクトリにまとめて保存してから実行してください。

  • roles.yml: Ansible Galaxy からダウンロードする対象
  • site.yml: Playbook を実行するときのマスターファイル
  • tools.yml: 今回は Go をインストールするための Playbook
  • development: 対象とするホスト名
roles.yml
- src: joshualund.golang
site.yml
- include: tools.yml
tools.yml
- hosts: all
  become_user: yes
  roles:
    - { role: joshualund.golang }
development
localhost
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1