Tôi đang cố gắng wget một tập tin từ một máy chủ web từ bên trong một Playbook Ansible.Ansible and Wget
Dưới đây là đoạn Ansible:
---
- hosts: all
sudo: true
tasks:
- name: Prepare Install folder
sudo: true
action: shell sudo mkdir -p /tmp/my_install/mysql/ && cd /tmp/my_install/mysql/
- name: Download MySql
sudo: true
action: shell sudo wget http://{{ repo_host }}/MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar
Gọi nó thông qua:
ansible-playbook my_3rparties.yml -l vsrv644 --extra-vars "repo_host=vsrv656" -K -f 10
Nó không thành công với những điều sau đây:
Cannot write to `MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar' (Permission denied).
FATAL: all hosts have already failed -- aborting
PLAY RECAP ********************************************************************
to retry, use: --limit @/usr2/ihazan/vufroria_3rparties.retry
vsrv644 : ok=2 changed=1 unreachable=0 failed=1
Khi cố gắng để thực hiện lệnh mà không qua thường xuyên từ xa ssh để bắt chước những gì ansible sẽ làm, nó không hoạt động như sau:
-bash-4.1$ ssh [email protected] 'cd /tmp/my_install/mysql && sudo wget http://vsrv656/MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar'
Enter passphrase for key '/usr2/ihazan/.ssh/id_rsa':
sudo: sorry, you must have a tty to run sudo
Nhưng tôi có thể giải quyết nó bằng cách sử -t như sau:
-bash-4.1$ ssh -t [email protected] 'cd /tmp/my_install/mysql && sudo wget http://vsrv656/MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar'
Sau đó nó hoạt động.
Có cách nào để đặt tùy chọn -t (giả tty) trên ansible không?
P.S: Tôi có thể giải quyết nó bằng cách chỉnh sửa tệp sudoers như những người khác đề xuất nhưng đó là một bước thủ công tôi đang cố gắng tránh.
Thx, điều này rất hữu ích !!! –