使用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
广告
将在 10 秒后关闭
bannerAds