Ansistranoでソースコードをローカルで取得
アプリのデプロイにRubyのCapistranoを使っていて便利だなーと思っていたので、
新しく作ったアプリでは、AnsibleのAnsistranoを使ってみた。
でも、実行すると途中で止まる。
ansible-playbook -i inventory/hosts/production playbook/deploy.yml
gitリポジトリからソースの取得するときに、デプロイ先のサーバーからgit cloneしてるっぽい。
TASK [carlosbuenosvinos.ansistrano-deploy : include] *************************** included: /private/etc/ansible/roles/carlosbuenosvinos.ansistrano-deploy/tasks/update-code/git.yml for xx.xx.xx.xx TASK [carlosbuenosvinos.ansistrano-deploy : ANSISTRANO | GIT | Ensure GIT deployment key is up to date] *** skipping: [xx.xx.xx.xx] TASK [carlosbuenosvinos.ansistrano-deploy : ANSISTRANO | GIT | Update remote repository] ***
デプロイ先のサーバーで、gitのリポジトリを取得できるように設定すれば動くけど、
ローカル環境でリポジトリを取得したかったので、調べてみた。
ansistrano_deploy_via: git
から
ansistrano_deploy_via: copy
にすると、動くようになった、
と思ったけど、これはgit cloneではなくて単なるファイルコピーをするオプションだった。
ansistrano_deploy_from も足すとローカルのファイルをコピーする。
copyで実行したら遅すぎたので、rsyncに変えたら早くなった。
- hosts: all name: "appname1 host server" vars: ansistrano_deploy_from: "{{ playbook_dir }}/../../" ansistrano_deploy_to: /var/www/mmr2 ansistrano_deploy_via: rsync #ansistrano_deploy_via: git ansistrano_git_repo: git@gogs.companyname.test:appname1/appname1.git ansistrano_git_branch: feature/1.1 ansistrano_shared_paths: ["log","config"] ansistrano_after_update_code_tasks_file: "{{ playbook_dir }}/ansistrano/after_update_code.yml" ansistrano_after_symlink_tasks_file: "{{ playbook_dir }}/ansistrano/after_symlink.yml" vars_files: - vars/all/main.yml # - vars/{{ stage }}/main.yml # - vars/{{ stage }}/secret.yml roles: - carlosbuenosvinos.ansistrano-deploy