2016-06-24 2 views
2

私は配備のために無計画なプレイブックを使用しています。私のソースコードをチェックアウトするためにgitを使用しています。私が抱えている問題は、私は私のソースの古いバージョンを取得し続けることです。なぜこれが起こっているのか分かりません。これの前に大丈夫だった。キャッシュを無効にする方法はありますか?可能なgitモジュールにキャッシュがありますか?

- name: Checkout eclaim_revamp source code 
    git: repo={{ deployment_url }} dest=/opt/eclaim_revamp force=yes version={{ eclaim_branch }} key_file=~/.ssh/id_travis accept_hostkey=yes 
    when: app_version == "eclaim_revamp" 

上記は、bitbucketから私のソースコードをチェックアウトするのに使用する宣言です。どんな助けもありがとう。

詳しい情報

私が作成したドッキングウィンドウの画像に対して、この脚本を実行しています。

+0

あなたのドッカー画像に対して実行可能なプロセスを含めることはできますか?どのようにこれをやろうとしているかに応じて、変更を不変にプッシュし、完了したら元のイメージに戻すことができます。 – BMitch

答えて

0

ansible git moduleはチェックアウトを強制する必要があります(force=yesを使用している場合)。古いファイルは、実行中のプロセスが更新されるはずのファイルに対してハンドルを保持しているために発生します。

このような場合、またはエラーメッセージが表示された場合は、それを確認してください。

トラヴィス・ジョブから

(これが失敗した)、私は見ることができます:それはissue 14438で修正される可能性がある

TASK [app_server : Checkout eclaim source code] ******************************** 

task path: /root/django_deployment/django_app_server_db_server/deployment/roles/app_server/tasks/main.yml:122 

skipping: [localhost] => {"changed": false, "skip_reason": "Conditional check failed", "skipped": true} 

を(とAnsible 2.1)

しかし、この場合には、これは簡単です:Low Kian Seongin the commentsを確認します。

私は自分のファイルを上書きしています。

したがって、チェックアウトは正常に機能しますが、一部のファイルは書き直されます。

+0

私は 'force = yes'のコメントを外して、私のファイルはまだ古くなっています。私はこれをドッカーベースのインスタンスに対して実行し、sshを実行してファイルがまだ更新されていないことを確認します。 –

+0

はい、ファイルにハンドルを保持しているプロセスがある場合、そのファイルを更新できないため、forceは無視されます。あなたはgitリポジトリを完全に削除しようとしてみましたか?そして、下層のgit clone/checkoutをやり直してください。 – VonC

+0

同じもの。私のgitツリーの問題は、このような動作を引き起こす可能性がありますか? –

関連する問題