culabs/deployment 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

culabs/deployment

最新稳定版本:v7.7.1

Composer 安装命令:

composer require culabs/deployment

包简介

System for deployment Symfony application

关键字:

README 文档

README

Resumen

Este proyecto es con el objetivo de automatizar el despleigue de aplicaciones. Fue creado para symfony2, pero puede ser utilizado para cualquier otro framework. El proyecto surigió para dar respuesta al siguiente problemática: Se cuenta con una aplicación symfony, donde a través de variables de entornos se le inyectan la configuración de la base de datos. Luego con una misma instancia de la aplicación, utilizando distintos dominios (cada uno con una configuración de base datos diferentes) la aplicación se comporta como aplicaciones independientes. Con esta filosofía se puede crera un ambiente trabajo para varios clientes.

Instalación

php composer.phar global require "culabs/deployment:dev-master" --prefer-dist

Incluir el directorio ~/.composer/vendor/bin/ en la variable $PATH para poder ejecutar el comando.

Uso

Detro de la aplicación crear una carpeta con el nombre deployment y dentro crear una estructura de ficheros como esta:

deployment
  - data
    - schema.sql
  - config.yml
  - config_base.yml
  - site_test.yml

Aclarar que esto es un ejemplo, eres libre de hacer la configuración que desees.

Dentro de config_base.yml se pondría algo como esto:

parameters:
    DocumentRoot: %APP_DIR%/web
    database_user: root
    database_password: root
    vars_environment:
        SYMFONY__DATABASE__NAME: %database_name%
        SYMFONY__DATABASE__USER: %database_user%
        SYMFONY__DATABASE__PASSWORD: %database_password%
    supervisor_options:
        autorestart: 'true'
        user: www-data
        redirect_stderr: 'false'
        stdout_logfile: %APP_DIR%/app/logs/supervisor_%database_name%.log
        stdout_logfile_maxbytes: 10MB
deployment:
    up:
        database_create:
            service: command
            command: php app/console doctrine:database:create -n
            env: %vars_environment%
        schema_create:
            service: command
            command: mysql --user=%database_user% --password=%database_password% %database_name% < %APP_DIR%/deployment/data/schema.sql
        database_migrations:
            service: command
            command: php app/console doctrine:migrations:migrate -n
            env: %vars_environment%
        cache_clear:
            service: command
            command: php app/console cache:clear -e=prod
            env: %vars_environment%
        supervisor_command1:
            service: supervisor
            key: %database_name%_command1
            filename: %APP_DIR%/app/supervisor/%database_name%.conf
            command: 'php %APP_DIR%/app/console app:command1 -e=prod'
            options: %supervisor_options%
            vars_environment: %vars_environment%
        supervisor_command2:
            service: supervisor
            append: true
            key: %database_name%_command2
            filename: %APP_DIR%/app/supervisor/%database_name%.conf
            command: 'php %APP_DIR%/app/console app:command2 -e=prod'
            options: %supervisor_options%
            vars_environment: %vars_environment%
        supervisor_restart:
            service: command
            command: service supervisor restart
        vhost:
            SetEnv: %vars_environment%
            DocumentRoot: %DocumentRoot%
            ServerName: %ServerName%
    update:
        database_update:
            service: command
            command: php app/console doctrine:migrations:migrate -n
            env: %vars_environment%
        cache_clear:
            service: command
            command: php app/console cache:clear -e=prod
            env: %vars_environment%
    down:
        vhost:
            ServerName: %ServerName%
        database_drop:
            service: command
            command: php app/console doctrine:database:drop --force -n
            env: %vars_environment%
        supervisor:
            filename: %APP_DIR%/app/supervisor/%database_name%.conf
        supervisor_restart:
            service: command
            command: service supervisor restart

Luego site_test.yml tendría este contenido

imports:
    - { resource: config_base.yml }

parameters:
    ServerName: dev.sittest.com
    database_name: sittest.com
    supervisor_options:
        stdout_logfile: %APP_DIR%/app/logs/supervisor_%database_name%.log

Ya con esta configuración se puede instalar una nueva aplicación ejecutando las operaciones de la opción up a través del comando:

culabs-deployment deployment up --config-file=site_test.yml

Para ejecutar actualizaciones se ejecutan las operaciones de la opción update

culabs-deployment deployment update --config-file=site_test.yml

Finalmente se puede desintalar una aplicación con el comando:

culabs-deployment deployment down --config-file=site_test.yml

En el caso que se tenga varias aplicaciones configuradas y se desee hacer un update a todas ellas, se debe crear el fichero config.yml con lo siguiente:

deployment:
    batch:
        - site_test.yml
        - site_test_1.yml
        - site_test_2.yml

Luego se ejecuta el comando:

culabs-deployment deployment batch

统计信息

  • 总下载量: 39
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-04-21