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 存档)到服务器?的主要内容,如果未能解决你的问题,请参考以下文章

ansible-playbook批量安装tomcat8版本

ansible-playbook批量安装tomcat8版本

ansible编译httpd playbook示例

ansible-playbook 批量安装zabbix_agent

jenkins pipeline job实战

ansible——ansible的脚本和playbook剧本