Advertisement
Guest User

Untitled

a guest
Apr 25th, 2015
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.91 KB | None | 0 0
  1. 使用版本为 =capistrano 3.3.5= , Capistrano 安装方法自行 Google.
  2.  
  3. ** 项目中初始化 Capistrano
  4. =cap install=
  5.  
  6. 会生成如下目录文件:
  7. #+BEGIN_SRC
  8. ├── Capfile
  9. ├── config
  10. │ ├── deploy
  11. │ │ ├── production.rb
  12. │ │ └── staging.rb
  13. │ └── deploy.rb
  14. └── lib
  15. └── capistrano
  16. └── tasks
  17. #+END_SRC
  18. 其中,
  19. - =Capfile= 用来配置 Capistrano
  20. - =deploy.rb= 定义共用的 tasks
  21. - =production.rb/staging.rb= 定义具体的 stage 的 tasks
  22.  
  23. ** 新建 stages
  24. =cap install STAGES=local,sandbox,qa,production= , =local,sandbox,qa,production= 等可以自行定义
  25.  
  26. ** 用法
  27. - =cap -T= 列出所有 tasks
  28. - =cap staging deploy= 部署 staging 环境
  29. - =cap production deploy= 部署 production 环境
  30. - =cap production deploy --dry-run= 模拟部署 production 环境,但实际上不作任何操作 (?)
  31. - =cap production deploy --prereqs= 列出 task dependencies
  32. - =cap production deploy --trace= 跟踪 task 调用 (?)
  33.  
  34. ** 服务器文件结构
  35. 在 =config/deploy.rb= 中可定义文件根目录:
  36. #+BEGIN_SRC
  37. set :deploy_to, '/var/www/my_app_name'
  38. #+END_SRC
  39. 那么部署之后, =/var/www/my_app_name= 的文件结构将会如下:
  40. #+BEGIN_SRC
  41. ├── current -> /var/www/my_app_name/releases/20150120114500/
  42. ├── releases
  43. │ ├── 20150080072500
  44. │ ├── 20150090083000
  45. │ ├── 20150100093500
  46. │ ├── 20150110104000
  47. │ └── 20150120114500
  48. ├── repo
  49. │ └── <VCS related data>
  50. ├── revisions.log
  51. └── shared
  52. └── <linked_files and linked_dirs>
  53. #+END_SRC
  54. 其中,
  55. - =current= 是指向最新版本的指针
  56. - =releases= 存放了所有版本的文件,并以时间戳命名。 =current= 指针指向这些目录中的一个。
  57. - =repo= 存放版本管理系统的配置。如果是 Git 则会是一个完整的 git repository.
  58. - =revisions.log= 记录每次 deploy 或者 rollback.
  59. - =shared= (?)
  60.  
  61. ** 配置
  62. *** 配置文件
  63. - 全局: =config/deploy.rb=
  64. - 针对特定 stage: =config/deploy/<stage_name>.rb=
  65.  
  66. *** 变量存取
  67. #+BEGIN_SRC
  68. set :application, 'MyLittleApplication'
  69.  
  70. # use a lambda to delay evaluation
  71. set :application, -> { "SomeThing_#{fetch :other_config}" }
  72. #+END_SRC
  73.  
  74. #+BEGIN_SRC
  75. fetch :application
  76. # => "MyLittleApplication"
  77.  
  78. fetch(:special_thing, 'some_default_value')
  79. # will return the value if set, or the second argument as default value
  80. #+END_SRC
  81.  
  82. *** 变量定义
  83. - =:application= application 名称
  84. - =:deploy_tp= 远端服务器部署的根目录。 =default: -> { "/var/www/#{fetch(:application)}" }=
  85. - =:scm= 所使用的版本管理系统。 =default: :git=
  86. - =:repo_url= 代码库的 url
  87. - =:repo_path= 远端服务器代码存放路径。 =default: -> { "#{fetch(:deploy_to)}/repo" }=
  88. - =:repo_tree=
  89. - =:linked_files=
  90. - =:linked_dirs=
  91. - =:default_env=
  92. - =:branch=
  93. - =:keep_releases=
  94. - =:tmp_dir=
  95. - =:local_user=
  96. - =:pty=
  97. - =:log_level=
  98. - =:format=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement