Ansible playbook:管道本地 cmd 输出(例如 git 存档)到服务器?
Posted
技术标签:
【中文标题】Ansible playbook:管道本地 cmd 输出(例如 git 存档)到服务器?【英文标题】:Ansible playbook: pipeline local cmd output (e,g. git archive) to server? 【发布时间】:2016-04-05 01:40:43 【问题描述】:所以我的项目有一个特殊的基础设施,服务器只有 SSH 连接,我必须每次使用 SSH/SFTP 手动将我的项目代码上传到服务器。服务器无法获取。
基本上我需要像 git archive master | ssh user@host 'tar -zxvf -'
这样使用剧本自动完成的东西。
我查看了文档,local_action
似乎可以工作,但它需要本地 ssh 设置。还有其他方法吗?
【问题讨论】:
本地 ssh 设置是什么意思? @helloV 这意味着主机必须有 ssh。见docs.ansible.com/ansible/playbooks_delegation.html 【参考方案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
。
【讨论】:
嘿,我发现unarchive module 非常有用。谢谢。可能需要先在connection: local
下添加另一个任务,然后再结合一个额外的 arg 像 unarchive: copy=yes
它可以工作!
copy=yes
为默认值,不必指定以上是关于Ansible playbook:管道本地 cmd 输出(例如 git 存档)到服务器?的主要内容,如果未能解决你的问题,请参考以下文章