本地项目部署远程,并在远程进行操作
github:https://github.com/capistrano/capistrano
capistrano一般依存与于一个rails项目项目里面,也可以创建一个文件development然后cd进去 cap install也能初始化
(1)group :development do
gem 'capistrano'
gem 'capistrano-bundler'
gem 'capistrano-rails'
gem 'capistrano-rbenv'
# Add this if you're using rvm
# gem 'capistrano-rvm'
end 可以选择部分
(2)bundle exec cap install
├── Capfile
├── config
│ ├── deploy
│ │ ├── production.rb
│ │ └── staging.rb
│ └── deploy.rb
└── lib
└── capistrano
└── tasks
(3)deploy文件里 main可以设置
set :stage_dir, 'config/deploy'
set :stages, ["iqiyi_bj_production","iqiyi_sh_production","youku_production","tencent_production"]有些可以能直接是%w{development production}看自己需求吧,取其他名字对应在(2)config/deploy修改名字
(4)config/deploy/xxx_production.rb文件配置
set :application, 'iqiyi'
#server 部署两台,可以自己选一台
server 'remote_ip:30066', user: 'your remote serve name', password: 'your remote serve password', roles: %w{web app db}
server 'remote_ip:30066', user: 'your remote serve name', password: 'your remote serve password', roles: %w{web app db}
#代码仓库
set :repo_url, 'ssh://git@xxxxx/home/git/projects/xxxxx'
set :branch, 'master'
#目标目录
set :deploy_to, '/home/bbbb' #远程目录
set :scm, :git
set :rails_env, fetch(:stage)
set :pty, true
set :keep_releases, 5
(5)写task任务,操作命令
1)第一个任务把代码copy到远程(自动完成)
可以用的命令,after :finishing, 'deploy:cleanup'
after :published, :copy_yml_files
after :published, :build_xxx
还有其他命令 build_xxx这是一个task任务即在部署完成后自动运行的任务
2)自定义命令
task :start do
on roles(:all) do
(3101..3102).each do |i|
stage_param="#{fetch(:stage)}"
astage_param = stage_param.split("_")
stage_param = astage_param[2]
platform_param = astage_param[0]
if stage_param=="production"
stage_param="prod"
end
execute <<-EOBLOCK
logdir=/app/logs/xxx
if [ -d $logdir ]
then echo "$logdir exist!"
else mkdir $logdir
echo "$logdir created!"
fi
EOBLOCK
execute <<-EOBLOCK
echo "#{fetch(:stage)}"
EOBLOCK
execute "cd #{current_path}; ./eagle -r #{platform_param} -p #{i} -e #{stage_param} -c false -alsologtostderr=false -log_dir=\"/app/logs/bidder\" > #{current_path}/nohuplog 2>&1 &"#, pty: false
execute "cat #{current_path}/nohuplog"
end
end
end
上面定义了一个start任务 也可以其他
均是在namespace :deploy do
方法体里面
task :restart do
on roles(:all) do
Rake::Task["deploy:stop"].invoke
Rake::Task["deploy:start"].invoke
end
end
end有些可能不是用execute这个方法,直接run的方式
https://ruby-china.org/topics/18616
http://www.361way.com/capistrano-deploy/3563.html
文档很详细
cap xxx_production deploy
cap xxx_production deploy:start
分享到:
相关推荐
6. 配置和权限设置:根据需要调整配置文件,确保新版本正确运行,同时设置正确的文件权限。 7. 重启服务:最后,更新符号链接,指向新版本的代码,并重启服务以使变更生效。 在`ansistrano-deploy-88716c2`这个...
用 Capistrano 3 实现自动化部署 Web 应用 自动化部署是指在将 Web 应用部署到生产环境时,使用工具或脚本来自动完成部署过程,以减少人工错误和提高部署效率。Capistrano 3 是一个流行的自动化部署工具,它可以...
以下是此插件为您的capistrano部署过程所做的特定操作: 在服务器上创建一个新的PostgreSQL数据库和数据库用户 在所有发行节点上生成并填充database.yml文件(使用ssh) 支持多服务器设置:单独的db和app节点...
Capistrano的配置文件通常是`Capfile`和`config/deploy.rb`,它们定义了服务器列表、部署路径、任务顺序等信息。这样的配置方式使得团队成员可以清晰地了解部署流程,方便协作和维护。 **7. 版本管理** Capistrano...
使用Capistrano v3部署CakePHP应用程序。* 重要信息:到目前为止,已经使用CakePHP 3进行了测试,但是应该适用于使用作曲家的CakePHP 2。 安装 将此行添加到您的应用程序的Gemfile中: gem 'capistrano' , '~> ...
与Capistrano 3.4一起部署Laravel 5.1设置Capistrano echo " gem 'capistrano', '~> 3.4.0' " > Gemfilebundle installbundle updatecap install Capistrano全部设置完毕后,以该存储库中的文件为例,配置/config/...
使用 Capistrano 部署 Phoenix 应用程序。 凤凰特定选项 set :mix_env , "production" 安装 将此行添加到应用程序的 Gemfile 中: gem 'capistrano-phoenix' 然后执行: $ bundle 或者自己安装: $ gem ...
例如, bundle:install任务仅在应用程序包含Gemfile.lock文件并且自上次部署以来已更改的情况下运行。 应用程序具有自己的用户帐户和组,拥有该应用程序的所有关联文件和进程。 这为他们提供了专用的环境,允许将...
此扩展是 Jamis Buck 的 Capistrano 多阶段扩展的替代,后者将多阶段配置存储在单个 YAML 文件中,而不是多个 Ruby 文件中。 它提供了一种简单直接的方法来为不同的部署阶段指定变量、回调和角色,并且该文件可以由...
这个 gem 只是将最近删除的deploy:web:disable和deploy:web:enable任务提供给您的 Capistrano 2 部署。 注意此版本仅适用于 Capistrano 2.x。 对于 Capistrano 3 兼容版本,请使用。 用法 通过 rubygems 安装 ...
Chef + capistrano = chap:使用chef 或capistrano 部署您的应用程序。 编写此代码是为了解决具有 2 个非常相似但不完全相同的部署系统之间的问题。 使用 chap,您可以通过运行一个命令部署到单个服务器: $ chap ...
Capistrano链接的文件非常方便,但是在首次部署时,您可能会遇到一个麻烦的问题–无法部署,因为该文件不存在,但是该文件是在部署后创建的。 不好了! 安装 将此行添加到您的应用程序的Gemfile中: gem '...
使用Rsync进行Capistrano部署 传输内置的静态目录(如angular-js单页应用程序)并在远程计算机中具有典型的releases目录的理想选择。 特别地,如果您有很多bower_components和/或您的构建过程需要一些时间,并且您不...
LISSA 部署使用 Capistrano 3 部署 您可以使用它来部署服务器或配备的 Vagrant box。 要求 Ruby 1.9.3 或更新版本 1.6 或更新版本 安装 克隆存储库后执行: bundle install --path=vendor 用法 您可以通过复制 ...
它将在 config/god/#{role} 中寻找脚本,编译它们并将它们部署到 God_deploy_dir公约您可以通过set :god_roles, [:app,:web]在config/deploy.rb或config/deploy/ENVIRONMENT.rb capistrano 部署文件中覆盖默认值。...
向石墨发送Capistrano部署事件 警告:此gem可与capistrano 2.x配合使用,对于capistrano 3.x,请参见此 有关事件的更多信息 安装 将此添加到您的deploy.rb文件中: set :graphite_url, "your/graphite/event/url" ...
你可以期待找到关于设置Capistrano环境、编写部署任务、自定义部署流程以及处理常见问题等内容。这些资料对于初学者和经验丰富的开发者都是宝贵的资源,可以帮助他们更好地理解和使用Capistrano。 Capistrano的强大...
capistrano 复制文件Capistrano v3.* 扩展,用于在版本之间复制文件安装将此行添加到应用程序的 Gemfile 中: gem 'capistrano' , '~> 3.3.0'gem 'capistrano-copy-files' 然后执行: $ bundle或者自己安装: $ gem ...
Capistrano :: Symfony Symfony Capistrano v3的4个特定任务(受启发)。 它利用以下Capistrano任务来部署Symfony应用 ... 运行以下命令来设置本地文件: cap install 在require "capistrano/deplo
Capistrano::部署状态 Capistrano v3 的一项任务,它向您部署的 rails 应用... 一个任务将在部署结束时运行,它将把渲染的文件放在你想要的任何地方。 默认情况下,它的目标是 public/deployment_status.html。 您可