编写我的第一个Ansible脚本。我正在尝试安装GVM。

当直接在包装盒上运行gvm版本时,我安装了GVM ok(我登录到该包装盒并选中),我得到:Go Version Manager v1.0.22 installed at /d1/golang/gvm
但是当我在Ansible中将其作为命令运行时:

- name: GVM Version
  shell: gvm version
  become: yes

我收到以下错误:
failed: [prod2] => {"changed": true, "cmd": "gvm version", "delta": "0:00:00.002081", "end": "2015-10-19 13:41:54.123575", "rc": 127, "start": "2015-10-19 13:41:54.121494", "warnings": []}
stderr: /bin/bash: gvm: command not found

FATAL: all hosts have already failed -- aborting

我正在运行一个bash脚本,其中包含:source /d1/golang/gvm/scripts/gvm,该脚本应确保您不必重新启动终端-参见下面的ansible命令。
- name: Run gvm source
  shell: . /etc/profile.d/golang.sh executable=/bin/bash
  become: yes

有什么想法我做错了吗?

最佳答案

我最终在ansible命令中运行了两个命令

name: Install go
  shell: . /etc/profile.d/golang.sh && gvm install go1.5 executable=/bin/bash

这样可以确保已设置源,然后允许运行gvm命令。

10-07 17:01