Capistranoを使うととデプロイが簡単だという話を良く聞くけれど、 Capistranoを使うことが難しかったのでメモ。 Getting Started インストール
Webアプリケーションのデプロイ作業1回の1つ1つの作業内容自体は単純ですが、設定ファイルの書き換えが煩雑な上に地味に時間を食うために、人為的なミスを誘発しやすくなります。このデプロイ作業でミスって原因不明の動作不良に悩まされたことは誰にでもあるかと思います。このような単調で時間のかかるデプロイ作業を自動化するツールの一つがcapistranoとなります。 Rails界では言わずと知れたデプロイツール。 数年前は意外と苦労することが多かったですが、最近は資料も豊富なので入門は比較的容易です。 少し資料が古くなっているようなので最新のRails用に整理しました。 Rails4で確認していますが、Rails3でも動くはずです。 サーバーサイドではrbenv+Phusion Passengerを使用しています。 capistranoはcapistrano-extを組み合わせています。 capis
Capistranoではリリース間でファイルを共有するためにいくつかのディレクトリがshared/以下にコピーされ、そちらにシンボリックリンクをはるようになっている。たとえばpublic/assetsとかlogとか。 この仕組は任意のディレクトリに対しても使うことができる。 # config/deploy.rb set :shared_children, shared_children + %w(path/to/hoge) こうするとcap deploy:setupしたときにshared/hogeに空ディレクトリが作成され、cap deployしたときにcurrent/path/to/hogeからそちらへとシンボリックリンクが作成される。なお元々あったcurrent/path/to/hogeは削除される。 追記 Capistrano3ではディレクトリ作成の仕組みが変わっているので要注意。
Capistrano、便利ですよね。 capistrano/capistrano 最近メジャーバージョンアップがあったのですが、使い方、というかスクリプトの書き方やお作法が変わり、「Capistrano 3にアップデートしたはいいけど全然動かなくてどうなってんだ」という流れはもはやお約束みたいです。 試しに僕も個人で作ってるウェブサイトのCapistranoをアップデートしてみたので、その上でこんなところに気を付けたいな、と思うポイントでも書いておきます。 capifyは使わない Capistranoを使うときは$ bundle installをし、次に$ bundle exec capify .とするのがお約束の流れですが、これからはcapifyを使ってもcap installを使ってねと言われます。 ですので: $ bundle exec cap installとしましょう。 マルチス
はじめに 「Capistrano のバージョンが上がったので使おうとしたら丸一日ハマっていた。」 「な… 何を言ってるのか わからねーと思うが (ry」 Table of Contents Gemfile cap install Capfile config/deploy.rb config/deploy/production.rb | staging.rb 参考文献 基本的な使い方などはREADMEを読んでください。 まあ、読んでてもアレだったんですけどね。 Gemfile Capistranoはどのような言語やフレームワークからでも利用可能」by 公式サイトとのことで、もはやRailsだけのものではありません(以前からですけど)。 よって、本体とは別に、プラグイン形式でGemを追加していきます。 group :development do # ... gem 'capistrano'
September 20, 2013 ミドルウェアの管理はchefを使用している サーバへのデプロイはcapistranoを使用している 上記2点が当てはまる場合、serverspecの使い方として Testing #chef Cookbook by #serverspec #devops / さよならインターネット serverspecでchefのjsonを読み込む / さよならインターネット serverspecをJenkins氏で回す場合について / さよならインターネット 上記エントリーを参考にして頂ければchef + serverspecである程度の インフラストラクチャの構築とテストが行えるかと思います。 また、こちらのエントリーのように、chefのrecipeからserverspecのテスト自体を 生成してしまうという素晴らしいアイデアもあります。最高ですね。 Chef のレ
awscapistrano 通常capistranoでroleを定義する際には下記のように記述するわけですが、インスタンス数に変更があった場合 追加したり削除したりがめんどくさいです。 set :app, "app-ip-address" set :web, "web-ip-address" 上記のような問題を解決するプラグインがcapistrano-ec2groupです。 GitHub - logandk/capistrano-ec2group: Capistrano plugin for deploying to Amazon EC2 instances by security groups インストール gem install capistrano-ec2group コード deploy.rbに以下の様に追記します。 このように指定するだけで、"web"roleには"security
Ansible、Vagrant、Serverspec などを用いた 「インフラのコード化」 手法について、初心者向けに解説します。
AWS Autoscaling環境を想定した、deploy時にS3にパッケージをアップロードするCapistranoプラグイン(IAMロール対応)RubyCapistranoAWSautoscale Capistrano-s3copy-awscli 概要 https://github.com/bacter1a/capistrano-s3copy-awscli AWS Autoscaling + Capistranoにおいて、 CapistranoでのDeploy時にS3にパッケージをput 稼働中の対象サーバはS3からパッケージをダウンロードして展開 AutoScaleされたサーバも起動時にS3からダウンロードして展開 みんな幸せ 上記動作のためのCapistranoプラグインを作りました。 AWSのAccess Key等をスクリプトに残したくなかったので、AWSのIAMロールに対応するた
Capistranoを使って、Ruby初心者でもRuby以外のソースコードをデプロイできるようになるまでの流れです。 Rubyもよくわからないし、デプロイツールもろくに使ったことないけど、 Capistranoを使ってコードをデプロイしたい。という人に特に向けた記事です。 私自身そういう人でした。 私の理解不足の部分が多々ありますが、とにかくCapistranoを使ってデプロイができることを目的とします。私は今回の方法で、PHPのコードをデプロイしています。 「もう手動デプロイは嫌だ」「デプロイツール使いたい」「なんかデプロイツール使わないとヤバそう」と思っている方々にとってちょうどいい記事になればいいなと。 Capistranoデプロイができるまで(目次) Capistranoってどういうもの デプロイの流れの概要 デプロイ先サーバーとの接続条件 Ruby、RubyGemsのインストール
CapistranoはSSH経由でリモートコマンドを実行するためのツールで、端末間でのアプリケーションのデプロイなどに使用されています。Ruby on Railsの台頭とともに知名度をあげ、Railsのデプロイメントでは定番のツールになっています。 Capistranoはそれ自体がRuby製で、Rubyのためのツールのようですが、冒頭の通りSSHでリモートコマンド実行を管理する用途であればどんな状況でも利用できます。 今回試してみるユースケースでは 1台の管理サーバーから2つのサーバー上にファイルを作成してみます。 まずEC2でAmazon Linuxを3台分マイクロインスタンスで起動しておきます。 ここでは管理サーバーをadmin、リモートの2台をhoge1,hoge2とし、3台にそれぞれEIPを付与します。 仮にそれぞれのEIPは以下の通りとします。 admin: xxx.xxx.xx
require 'aws-sdk' AWS.config({ :access_key_id => '<アクセスキーID>', :secret_access_key => '<シークレットアクセスキー>', :region => 'ap-northeast-1' }) # EC2のタグKeyのProjectがsampleのものを取得 instances = AWS.ec2.instances.select {|i| i.tags[:Project] == 'sample' && i.status == :running}.map(&:dns_name) role :app, *instances
まとめてたくさん処理したい! を解決する「Capistrano」:特集 DevOps時代の必須知識 インフラ運用の自動化を実現し、DevOpsを支援するツールはいくつかあります。ここではその中から「Capistrano」というツールについて、サンプルを用意しつつ紹介します。 はじめに インフラ運用の自動化を実現するツールには「Chef」や「Puppet」などいろいろあります。今回の記事ではそういったツールのうち、Capistranoというツールを簡単なサンプルを用意しつつ紹介します。 Capistranoとは Capistranoとは簡単にいうと、オープンソースで提供されている、複数のサーバ上で同時にスクリプトを実行するためのソフトウェアツールです。主に、同じ役割のサーバが複数台存在するような環境での自動化であったり、アプリケーションのデプロイ自動化に利用されています。 特にRuby On
はじめに Ruby製のデプロイツールであるCapistranoを使ってみました。いろいろなレシピを眺めていると、sudoの書き方が次のようにいろいろあって違いがわからなかったので、調べてみました。 sudo "hoge" # (1) sudoアクション run "sudo hoge" # (2) 文字列 "sudo" run "#{sudo} hoge" # (3) 文字列 "#{sudo}" run "#{try_sudo} huge" # (4) 文字列 "#{try_sudo}" なお、対象のバージョンは、執筆時点で最新の2.14.2です。 (1) sudoアクション この書き方は、deprecatedなので今は使いません。 2.x DSL Action Invocation Sudo · capistrano/capistrano Wik
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja 大きく分けて二つの話をしました。 Chefを導入する時の「考え方」 Chefのような構成管理ツールは万能でやり方もたくさんある(TMTOWTDI)ので、最初にどういうポリシーで組み立てるかが重要になります。今回「本気で使う」にあたり、以下のようなポリシーを設定しました。 原則サーバ上で作業せず、Chefで環境設定を実装する 公開されたcookbooksを再利用する opscode-cookbooksにあればそれを探す communityやgithubにあるcookbookを使う あきらめの心を持つ 必要ならばopscode-cookbook�sなど既存のcookbookをforkして手を入れる 半日調べて難しそうなことはあきらめる(自前Chef recip
たくさんのホストをChef設定したいけどChefサーバー立てるのめんどくさいし! でもコマンド一発ですべてのホストが更新されて欲しいし! というわけでこの組み合わせです。 Capistranoはインストール済みでsshのログインに必要な鍵も各ホストに配ってあるものとする。 加えてChefのクックブックなどはすでに定義済みで以下のパスにある前提で。 /home/akahige/chef-repo Chefに関してはここでは深くつっこまないので、よかったら以前書いたものをどうぞ。 chef-soloで作業環境構築の自動化 | ひげろぐ Chefを試してみた | ひげろぐ sudoの設定 chef-soloはsudo経由(root権限)で実行する必要がある。 そしてCapistranoでsudoを実行するにはパスワードなしでコマンドを実行できる必要がある。 そういう事情なのですべてのホストにてs
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く