Ansible:如何初始化 git bare 存储库并将其克隆到同一台机器?

Iva*_*nin 4 git git-bare ansible

我想问一下,如何使用 Ansible 来实现这样的情况。

\n\n

我的主要目标是 nit git bare 存储库并将其克隆到同一台计算机 (/var/www)。\n我通常的步骤是:

\n\n

1) git init \xe2\x80\x94bare (在 /git/project-name 中运行)

\n\n

2) git clone /git/project-name \xe2\x80\x94no-hardlinks (在 \xd0\xb2 /var/www 中运行)

\n\n

当我愿意使用 Ansible 来完成这种情况时,我无法实现第一步——如果是空的 git bare 存储库则初始化。

\n\n

Ansible git 模块要求“repo”参数应填写存储库地址,但如果我只是创建一个,我如何定义它?

\n\n

git: 回购=?? dest=/git/项目名称 bare=yes

\n

bon*_*onh 5

这是一个使用新的裸存储库设置 git 服务器的示例手册:

---
- hosts: git.example.org
  become: true
  tasks:
    - user:
        name: git
        shell: /usr/bin/git-shell
        home: /srv/git

    - authorized_key:
        user: git
        state: present
        key: https://github.com/myuser.keys

    - command: git init --bare /srv/git/myrepo.git
      args:
        creates: /srv/git/myrepo.git/HEAD
      become_user: git
Run Code Online (Sandbox Code Playgroud)

如果您已经git在服务器上设置了用户,那么您只需专注于该command任务。享受!

  • 您不需要将整个“file:”块或“chdir:”参数添加到“git init --bare”命令中;只需提供目标目录。来自 [`git init` 文档](https://git-scm.com/docs/git-init):_如果您提供一个目录,则命令将在其中运行。如果该目录不存在,则会创建该目录。_ (2认同)