2016-08-29 7 views
2

このようなケースをAnabilitiesを使用して実装する方法をお聞きしたいと思います。可能性:裸のリポジトリをinitして同じマシンにクローンする方法は?

私の主な目標は、裸のリポジトリを作成し、同じマシン(/ var/www)に複製することです。 私のいつもの手順は以下の通りであった。

1)gitのINIT -bare(/ gitの/プロジェクト名)で実行されている

2)gitのクローン/ gitの/プロジェクト名-no-ハードリンクвで実行されている(の/ var/www)

私はこの場合、Ansibleを使って喜んでいますが、空のgit bareリポジトリの場合、最初のステップ初期化を実装できません。

可能なgitモジュールでは、 'repo' paramにリポジトリアドレスを入力する必要がありますが、作成する場合はどのように定義できますか?

git:repo = ?? DEST =/gitの/プロジェクト名裸=ここにはい

+0

ドキュメントを簡単に見てみると、ソースなしで新しいリポジトリを作成することはできないようです。なぜあなたはこれをやりたいのですか、これはあなたが達成したいと思うものですか? – Vampire

+0

私の目標はcentrelリポジトリを作成して、別のマシンからコードをプッシュし、他のすべてのリポジトリをクローンします。 これは正しいアプローチではありませんか? – ivarm

+3

Anabilitiesは任意のコマンドを実行することができるので、コマンドラインからgitリポジトリを作成する方法を知っていれば、それを不可能なプレイブックに実装できます。 'git'モジュールはリポジトリのみを複製することができ、新しいものをゼロから作成することはできません。 – larsks

答えて

2

は新しい裸のレポでの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 

あなたがすでに設定gitユーザーを持っていればあなたのサーバーでは、commandタスクに集中するだけです。楽しい!

+1

'file:' hunkや 'chdir:' argを 'git init --bare'コマンドに使う必要はありません。ターゲットディレクトリを指定するだけです。 ['git init' docs](https://git-scm.com/docs/git-init)から:_ディレクトリを指定すると、そのディレクトリ内でコマンドが実行されます。このディレクトリが存在しない場合、作成されます。_ – ssteinerX

+0

うわー、ありがとう!カッコいい。私は答えを更新します。 – bonh

関連する問題