【发布时间】:2016-08-29 10:51:46
【问题描述】:
我想问你如何使用 Ansible 实现这样的案例。
我的主要目标是构建 git 裸存储库并将其克隆到同一台机器 (/var/www)。 我通常的步骤是:
1) git init —bare(在 /git/project-name 中运行)
2) git clone /git/project-name --no-hardlinks (running in в /var/www)
当我愿意使用 Ansible 做这个案例时,我无法实现第一步——如果是空的 git 裸存储库,则进行初始化。
Ansible git 模块要求 'repo' 参数应填写存储库地址,但如果我只是创建一个,我该如何定义呢?
git: repo=?? dest=/git/project-name bare=yes
【问题讨论】:
-
快速查看文档似乎无法在没有源的情况下创建新的存储库。你为什么要这样做,你确定这是你想要达到的目标吗?
-
我的目标是创建 centerl 存储库,我将从不同的机器推送我的代码,并从那里克隆所有其他存储库。这不是一个正确的方法吗?
-
Ansible 可以执行任意命令,因此如果您知道如何从命令行创建 git 存储库,您可以在 ansible playbook 中实现它。
git模块只能克隆仓库,不能从头创建新仓库。 -
除了使用
command模块运行 git 之外,您可以复制它创建的所有文件,或解压缩它们。它只是文件系统中的一个普通分支。不知道这是否有意义。 -
好的。我想我最终会使用命令模块。我会考虑是否可以为 Ansible 编写我自己的插件 :) 谢谢!
标签: git ansible ansible-playbook git-bare