2016-04-08 11 views
1

Bir zookeeper kümesini kurmak için Ansible komut dosyası yazıyorum. özü Yaupon katran topun sonra:Ansible: arşivlenmemiş yol nasıl alınır?

[[email protected] conf]# ls /opt/zookeeper 
zookeeper-3.4.8 

Ben çıkarılan alt dizinin adını bilmek zorunda, devam etmek için:

unarchive: src={{tmp_dir}}/zookeeper.tar.gz dest=/opt/zookeeper copy=no 

Ben sürüm numarasını içeren bir Yaupon dizini olsun. Örneğin, bir yapılandırmayı /opt/zookeeper/zookeeper-3.4.8/conf dosyasına kopyalamam gerekir.

zookeeper-3.4.8 Ansible bildirimi nasıl edinilir? Bir sonraki adımlara devam etmeden önce

cevap

1

bununla deneyin:

➜ ~ cat become.yml 
--- 
- hosts: localhost 
    user: vagrant 
    tasks: 
     - shell: ls /opt/zookeeper 
     register: path 

     - debug: var=path.stdout 


➜ ~ ansible-playbook -i hosts-slaves become.yml 
[WARNING]: provided hosts list is empty, only localhost is available 


PLAY *************************************************************************** 

TASK [setup] ******************************************************************* 
ok: [localhost] 

TASK [command] ***************************************************************** 
changed: [localhost] 

TASK [debug] ******************************************************************* 
ok: [localhost] => { 
    "path.stdout": "zookeeper-3.4.8" 
} 

PLAY RECAP ********************************************************************* 
localhost     : ok=3 changed=1 unreachable=0 failed=0 

Sonra sıradaki görevlerde {{path.stdout}}, yolun adını ayarlamak için kullanabilirsiniz.

1

Alternatif olarak, çalışması gerekir bu dizini

- name: Rename directory 
    shell: mv `ls -d -1 zookeeper*` zookeeper 

(ters tırnakların içinde) Yukarıdaki kabuk komut ikamesi adlandırmak olabilir.