我正在尝试使用Ansible来源/ etc / profile或/etc/bash.bashrc,但不断收到错误消息。
TASK [Source Profile]
*********************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "cmd": "source /etc/profile", _
"failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2}
我的代码是
- name: Source Profile
shell: source /etc/bash.bashrc
args:
executable: /bin/bash
我尝试了很多其他的事情。
,例如command: source /etc/bash.bashrc
(还尝试了/etc/profile
而不是/etc/bash.bashrc
)
我如何获取或应用此方法的最佳方法是什么?
谢谢
答案 0 :(得分:0)
仔细检查您尝试提供的文件是否存在,来自您的错误消息" 没有此类文件或目录"告诉你文件不存在,例如,这在本地工作:
# ansible-playbook -i "localhost," -c local test.yml
---
- hosts: localhost
tasks:
- name: test source profile
shell: source /etc/bashrc
register: output
args:
executable: /bin/bash
- debug: msg="{{ output }}"
在这种情况下,正在尝试提供/etc/bashrc
另外,请注意register: output
和:
- debug: msg="{{ output }}"
这会将命令的输出注册到名为output
的变量并打印其内容,试一试,它可以为您提供更多关于错误的想法。
它将输出如下内容:
$ ansible-playbook -i "localhost," -c local test.yml
PLAY [localhost] ***************************************************************
TASK [setup] *******************************************************************
ok: [localhost]
TASK [test source profile] *****************************************************
changed: [localhost]
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": {
"changed": true,
"cmd": "source /etc/bashrc",
"delta": "0:00:00.004553",
"end": "2017-09-22 21:15:24.654777",
"rc": 0,
"start": "2017-09-22 21:15:24.650224",
"stderr": "",
"stdout": "",
"stdout_lines": [],
"warnings": []
}
}
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0