1
hzlez 2017-03-15 08:14:34 +08:00
no tty present and no askpass program specified
|
2
hzlez 2017-03-15 08:16:22 +08:00
@hzlez sorry , 按快了。
我觉得,这个报错表示就是你的宿主机没权限直接连接到目标机器哇。还没有途径让你去输入密码,就跪了。 可以考虑把 ssh_key 拷贝到目标机器,这样就不用其他授权方式了。 你可以试试直接在主机 ssh 到目标机器是不是不行~ |
3
weiweiwitch 2017-03-15 10:14:21 +08:00 1
ansible 有个问题。如果你需要切换到更高权限的账户来执行命令,那么你需要设置 nopasswd 到这个账户,否则会出现你遇到的这种问题。
比如在 Ubuntu 那种使用 sudo 来执行管理命令的,你需要在 /etc/sudoers 的 sudo 那行改成%sudo ALL=(ALL:ALL) NOPASSWD:ALL 在 CentOS 那种使用 su 来切换到 root 的。你直接使用 root 来连。 |
4
dynaguy OP @hzlez
@weiweiwitch 其实这个 playbook 前面还有很多 task,都执行了,包括这个: - name: Copy Paraview bin files copy: src: /etc/ansible/files/ParaView-5.3.0-Qt5-OpenGL2-MPI-Linux-64bit/bin/ dest: /usr/local/bin/ 所以我不认为是权限问题。/usr/local/bin/可以写,而 /usr/local/lib/不能写,那也太诡异了! 这个成功执行的 copy, src 目录下只有几个文件,没有子目录和 link 。觉得问题在这里,但没有解决办法。愁 ing. 我会试试 @weiweiwitch 的建议,再报! |
5
lsj5031 2017-03-15 12:01:52 +08:00
@weiweiwitch 可以加 --ask-sudo-pass
|
6
nosun 2017-06-21 15:04:25 +08:00
遇到同样的问题,@weiweiwitch 的方法试了无效
|
8
dynaguy OP @nosun 好几个月了,又翻了一下我的解决办法,希望有帮助。
``` - hosts: testvbox become: true tasks: - name: Modify /etc/sudoers lineinfile: dest: /etc/sudoers regexp: '^Defaults env_reset' line: 'Defaults env_reset,!tty_tickets' - name: Copy Paraview bin files synchronize: src: /etc/ansible/files/ParaView-5.3.0-Qt5-OpenGL2-MPI-Linux-64bit/bin/ dest: /usr/local/bin/ - name: Copy Paraview lib files synchronize: src: /etc/ansible/files/ParaView-5.3.0-Qt5-OpenGL2-MPI-Linux-64bit/lib/ dest: /usr/local/lib/ archive: no links: yes recursive: yes - name: Restore /etc/sudoers lineinfile: dest: /etc/sudoers regexp: '^Defaults env_reset,!tts_tickets' line: 'Defaults env_reset' ``` |