使用Ansible安装Go语言
为了更方便共享开发环境,我们将使用Ansible来安装工具。因为Ansible Galaxy中提供的Go角色非常易懂,所以我将记下来。
joshualund.golang – Ansible Galaxy
jlund/ansible-go – GitHub
事前筹备
假设Ansible已成功安装。
$ ansible --version
ansible 2.1.2.0
config file =
configured module search path = Default w/o overrides
请将所需的文件保存到目录中,然后开始工作,文件清单已经列在末尾。
任务流程
首先,从Ansible Galaxy下载用于安装Go的角色。
有两种方法可以将它放置在系统范围内或本地目录中。
默认情况下是前者,但根据系统或执行用户的不同,写入权限可能会成为问题。在后者的情况下,可以使用-p选项。根据需要使用不同方法。
$ sudo ansible-galaxy install -r roles.yml
$ ansible-galaxy install -p ./roles -r roles.yml
然后,撰写并执行Playbook。
虽然我写了site.yml,但也可以直接指定调用文件。
$ sudo ansible-playbook -c local -i development site.yml
另外,在这里我们选择了本地固定,因此不需要使用 SSH,所以添加了 -c local 选项。如果要设置远程环境,则不需要指定选项。
当Playbook成功执行后,会设置环境变量GOROOT和PATH。请重新登录并确认已安装的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: 対象とするホスト名
- src: joshualund.golang
- include: tools.yml
- hosts: all
become_user: yes
roles:
- { role: joshualund.golang }
localhost