1
我試圖建立一個寄存器即檢查,如果文件中ansibleAnsible獲取localhost用戶錯誤?
- name: check CRAN R script exists
stat:
path: "{{ playbook_dir }}/scripts/R/cran.R"
delegate_to: localhost
register: cran
tags: r_extras
這個任務執行任務之前就存在的是劇本的一部分,作爲須藤
- name: installing common apt dependencies, pip python packages as well as java
hosts: base
remote_user: "{{ sudo_guy }}"
roles:
# need to have non previlidged installer guy
- make_sw_guy
# apt-get installation
- common
become: true
當我運行劇本運行這樣
ansible-playbook -vvvv -i my_hosts all.yml --tags r_extras
我得到這個錯誤
fatal: [bio_training -> localhost]: FAILED! => {
"changed": false,
"failed": true,
"invocation": {
"module_name": "stat"
},
"module_stderr": "sudo: a password is required\n",
"module_stdout": "",
"msg": "MODULE FAILURE"
}
因爲Ansible認爲我是root
..這對我來說似乎有點愚蠢,但我可能會忽略這一點?
如何檢查本地文件是否存在?和/或如何獲得本地主機的$USER
可變
我可以通過添加become_user: $USER
「解決」這個問題,但我不知道如何使這個通用..
謝謝,我想我還沒有完全得到 - 忘記當你使用'become'變爲ansible時,它會運行所有以sudo爲前綴的地方..它對local_actions只是一個不直觀的東西,因爲你指定'sudo'爲遠程.. – serine
我不能在你的問題中看到任何'local_action'任務。你先在上面的評論中使用這個短語。 – techraf
我相信'delegate_to:localhost'和'local_action'是一回事。他們不是嗎? – serine