Se você atualmente implanta seu projeto com Capistrano, mas começou o provisionamento com Ansible, tente substituir o Capistrano completamente por esta função Ansible no Galaxy:
Projeto de implantação
https://galaxy.ansible.com/list#/roles/732
Um exemplo de manual para implantações (para um projeto Symfony) seria tão simples quanto:
---
- name: Deploy the application
hosts: production
remote_user: "{{ production_deploy_user }}"
sudo: no
vars:
project_root: "/path/to/root"
project_git_repo: "https://github.com/user/repo"
project_deploy_strategy: git
project_environment:
SYMFONY_ENV: "prod"
project_shared_children:
- path: "/app/sessions"
src: "sessions"
- path: "/web/uploads"
src: "uploads"
project_templates:
- name: parameters.yml
src: "templates/parameters.yml.j2"
dest: "/app/config/parameters.yml"
project_has_composer: yes
project_post_build_commands:
- "app/console cache:clear"
- "app/console doctrine:migrations:migrate --no-interaction"
- "app/console assets:install"
- "app/console assetic:dump"
roles:
- f500.project_deploy
Este exemplo foi retirado de https://github.com/SweetLakePHP/SweetLakePHP
Ou, se estiver se sentindo ousado, tente escrever sua própria função com base no módulo deploy_helper você mesmo: