eval命令如何在ansible playbook中工作
How can eval command work in ansible playbook
我想通过 ansible 剧本评估命令。这是剧本。
- name: enable ssh-agent
command: eval $(ssh-agent)
我试过这个剧本。
$ ansible-playbook -i hosts site.yml
但是我遇到了这个错误。
failed: [host] => {"cmd": "eval", "failed": true, "rc": 2}
msg: [Errno 2] No such file or directory
FATAL: all hosts have already failed -- aborting
ansible playbook 中的 eval 命令如何工作?
提前致谢。
command
模块需要一个可执行文件作为参数。
eval $(ssh-agent)
是一个unix shell
能理解的表达式 not ansible.
正如 tedder 所说,我不明白你为什么要设置 ssh-agent,但如果你这样做,我建议你试试 shell
模块而不是 command
。希望您已经以某种方式将 ssh-agent
设置为某个合适的值。
# Just for debugging.
- name: enable ssh-agent
shell: echo "ssh-agent = $(ssh-agent)"
- name: enable ssh-agent
shell: eval $(ssh-agent)
在这种情况下,ansible 会将整个字符串传递给 shell,然后 shell 会对其求值。
我想通过 ansible 剧本评估命令。这是剧本。
- name: enable ssh-agent
command: eval $(ssh-agent)
我试过这个剧本。
$ ansible-playbook -i hosts site.yml
但是我遇到了这个错误。
failed: [host] => {"cmd": "eval", "failed": true, "rc": 2}
msg: [Errno 2] No such file or directory
FATAL: all hosts have already failed -- aborting
ansible playbook 中的 eval 命令如何工作? 提前致谢。
command
模块需要一个可执行文件作为参数。
eval $(ssh-agent)
是一个unix shell
能理解的表达式 not ansible.
正如 tedder 所说,我不明白你为什么要设置 ssh-agent,但如果你这样做,我建议你试试 shell
模块而不是 command
。希望您已经以某种方式将 ssh-agent
设置为某个合适的值。
# Just for debugging.
- name: enable ssh-agent
shell: echo "ssh-agent = $(ssh-agent)"
- name: enable ssh-agent
shell: eval $(ssh-agent)
在这种情况下,ansible 会将整个字符串传递给 shell,然后 shell 会对其求值。