2016-04-08 14 views
1

私は動物園のクラスターをセットアップするためのAnsibleスクリプトを書いています。エキス飼育係のtarボールの後:不可能:アーカイブされていないパスを取得するにはどうすればよいですか?

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

は、私が抽出されたサブディレクトリの名前を知っている必要があり、続行する:

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

私はバージョン番号が含まれている飼育係のディレクトリを取得します。たとえば、configureを/opt/zookeeper/zookeeper-3.4.8/confにコピーする必要があります。

zookeeper-3.4.8を入手するにはどうすればよいですか?あなたが次のステップに進む前に、

答えて

1

はこれで試してみてください:

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

その後、あなたは次のタスクでは、パスの名前を設定するために、{{path.stdoutを}}使用することができます。

1

また、あなたが動作するはずです。このディレクトリ

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

(バッククォート内)上記のシェルコマンド置換の名前を変更することができます。

関連する問題