2014-04-08 17 views
24

Bir web sunucusundan bir Ansible oynatma kitabından bir dosya kaydetmeye çalışıyorum. yoluyla çağırmaAnsible ve Wget

--- 
- 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 

: Burada

yanıtlayıcı 'pasajıdır

Bu başarısız olur
ansible-playbook my_3rparties.yml -l vsrv644 --extra-vars "repo_host=vsrv656" -K -f 10 

aşağıdadır:

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 

yoluyla başarısız komutu yapmaya çalışırken Olağanüstü olanı ssh, ne yapabileceklerini taklit etmek için, aşağıdaki gibi çalışmıyor:

-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 

Ama şöyle de -t kullanarak çözebilir:

-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' 

Sonra çalışır.

Sesli ortamda -t (sözde tty seçeneği) ayarlamanın bir yolu var mı?

S: Diğerleri önerdiği gibi sudoers dosyasını düzenleyerek çözebilirim ancak bu, kaçınmaya çalıştığım el ile bir adımdır. Özel modüller mevcut olduğunda shell -module kullanmayın.

cevap

53

Senin durumunda:

file Modül ile dizinleri oluşturun:

- name: create project directory {{ common.project_dir }} 
    file: state=directory path={{ common.project_dir }} 

İndirme dosyaları get_url Modül ile:

- name: download sources 
    get_url: url={{ opencv.url }} dest={{ common.project_dir }}/{{ opencv.file }} 

Not Yukarıdaki örneklerde yeni modül çağrı sözdizimi.

sudo şifresini kullanmak zorundaysanız, gerektiğinde --ask-sudo-pass no'lu telefonu vermeyi unutmayın (bkz. Ör. Remote Connection Information).

+0

Thx, bu yardımcı oldu! –