无法在ansible中运行脚本

无法在ansible中运行脚本,ansible,Ansible,我正在尝试使用ansible运行自制。我正处于正确安装自制软件的阶段。我只需要为brew配置路径 因为没有路径,找不到brew命令 我谨此陈辞: 我正在尝试将以下命令添加到ansible中 test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv) test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin

我正在尝试使用ansible运行自制。我正处于正确安装自制软件的阶段。我只需要为brew配置路径

因为没有路径,找不到
brew命令

我谨此陈辞:

我正在尝试将以下命令添加到ansible中

test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile
Ansible:

- name: map 1
  shell: test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
错误:

FAILED! => {"changed": true, "cmd": "test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)", "delta": "0:00:00.002858", "end": "2020-07-14 16:44:20.881614", "msg": "non-zero return code", "rc": 1, "start": "2020-07-14 16:44:20.878756", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}

经过多次测试,我发现这与使用的用户帐户有关

默认情况下,我的基本ansible脚本设置为
root
。所以我需要做的是当我的
变成:no

- name: Test homebrew directive and eval homebrew path
  become: no
  shell: test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
  become_user: ec2-user

经过多次测试,我发现这与使用的用户帐户有关

默认情况下,我的基本ansible脚本设置为
root
。所以我需要做的是当我的
变成:no

- name: Test homebrew directive and eval homebrew path
  become: no
  shell: test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
  become_user: ec2-user

我猜
ansible\u用户
的主目录与手动运行这些命令时的主目录不同。
退出1
测试-d
失败时的退出代码;如果
test-d
预计会失败,那么您需要在
shell:
中使用
|true
,或者在任务中添加
ignore\u errors:yes
,我猜
ansible\u用户的主目录与手动运行这些命令时的主目录不同。
退出1
测试-d
失败时的退出代码;如果
测试-d
预计会失败,那么您需要在
shell:
中添加
| | true
,或者将
忽略错误:yes
添加到任务中