Próbuję wget pliku z serwera sieci web w ramach playbooka Ansible.Ansible i Wget
Oto ansibl urywek:
---
- 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
Wywoływanie go poprzez:
ansible-playbook my_3rparties.yml -l vsrv644 --extra-vars "repo_host=vsrv656" -K -f 10
nie powiedzie się z następujących czynności:
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
Podczas próby wykonania polecenia, które nie poprzez zwykły zdalny ssh, który naśladuje to, co ansibli może zrobić, nie działa w następujący sposób:
-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
Ale mogę rozwiązać go za pomocą -t następująco:
-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'
Wtedy to działa.
Czy istnieje sposób ustawienia opcji -t (opcja pseudo tty) na ansiblisku?
P.S: Mogłabym to rozwiązać, edytując plik sudoers, tak jak inni proponują, ale jest to krok ręczny, którego próbuję uniknąć.
Thx, to było pomocne !!! –