1

所以我的項目有一個特殊的基礎設施,服務器只有SSH連接,我必須手動將我的項目代碼每次上傳到服務器使用SSH/SFTP。服務器無法讀取。Ansible playbook:管道本地CMD輸出(例如,git存檔)到服務器?

基本上我需要類似git archive master | ssh [email protected] 'tar -zxvf -'自動完成使用playbook。

我看着文檔,local_action似乎工作,但它需要本地的SSH設置。還有其他方法嗎?

+0

你是什麼意思由當地的SSH設置? – helloV

+0

@helloV它表示主機必須有ssh。見http://docs.ansible.com/ansible/playbooks_delegation.html – est

回答

1

這樣的事情呢。您可能需要調整以適應您的需求。

tasks: 
    - shell: git archive master /tmp/master.tar.gz 
    - unarchive: src=/tmp/master.tar.gz dest={{dir_to_untar}} 

我還是不明白it requires a local ssh setup在你的問題。

+0

嘿,我發現[unarchive module](http://docs.ansible.com/ansible/unarchive_module.html)是非常有用的。謝謝。可能需要先在'connection:local'下添加另一個任務,然後再加上一個額外的參數,如'unarchive:copy = yes'! – est

+0

'copy = yes'是默認值,不必指定 – helloV

相關問題