Capistranoを使用してデプロイメントを自動化する方法:はじめに
序章
Webベースのアプリケーションを作成する重要な領域の1つであり、多くの主要企業が誇りを持っているのは、展開です。 より正確には、展開方法。 このタスクは、実際には雑用と見なされることもありますが、プロジェクトに直接または追加の価値をほとんどまたはまったく追加しないように見える場合があります。 ただし、[展開の]巧妙に作成されたプロセスは、製品をオンラインにするために無駄になる時間などのオーバーヘッドを確実に削減するのに役立ちます。
非常に具体的な(そして変化する)要件がなく、絶対にドメインに焦点を当てたニーズがない限り、アプリケーションをオンラインにするときは、さまざまな専用ツール、自動化メソッド、またはスクリプトを利用して、より迅速に開発するというあなたの実際の仕事–大いに!
このDigitalOceanの記事では、Capistranoについて詳しく見ていきます。Capistranoは、日常的な展開とシステム管理タスクを自動化するために簡単に使用できるRubyベースのリモートサーバー自動化ツールです。 Capistranoを使用すると、製品を稼働させるために通常実行するすべてのアクションをほぼ完全に自動化できます。
目次
1. キャピストラーノ
- Rubyプログラミング言語
- キャピストラーノレシピ
- システム/サーバー管理
- アプリケーションの展開
2. Capistranoのインストール
- システムの準備
- Rubyのインストール
- Capistranoのインストール
3. Capistrano入門
- キャピストラーノの基本
- プロジェクト内でのCapistranoの開始
- Capistranoを使用してデプロイするためのユーザーの作成
キャピストラーノ
Capistranoは、紹介で述べたように、Rubyベースのオープンソースサーバー管理ツールです。 多くの既存の自動化ソリューションの単なる別の代替手段として出てくるかもしれませんが、その優れた[高度な]機能のおかげで使用するのに最適なソリューションです。
他の自動化ライブラリと同様に、Capistranoを使用すると、Capistranoにスクリプトを実行させることで、直接干渉することなく仮想サーバー上で任意の機能を実行できます(つまり、 レシピ)。 ただし、一般に、このツールは独自のデプロイメントアシスタントと考えることができ、デプロイメントマシンでコードを取得することから、デプロイメントプロセスをブートストラップすることまで、ほぼすべてのことを支援します。これは、複数のシステムで一度に、またはラウンドロビンファッション。
インターネット上の多くのチュートリアルを見ると、CapistranoがRoRの完璧なフレームワークであるという印象を受けるかもしれません。 ただし、Rubyに焦点を当てたフレームワーク(またはツール)であるにもかかわらず、PHP Webアプリケーションのデプロイなど、レシピを使用してさまざまな種類のデプロイメントシナリオを安全に処理できます。
Rubyプログラミング言語
Rubyは汎用です(つまり 特定の問題を解決するために作成されたものではありません)、Ruby-on-RailsWebアプリケーション開発フレームワークのリリースで大きな人気を得た動的プログラミング言語。
Rubyを使用してスクリプトを作成するための簡潔で順序付けられた方法(言語の設計方法のおかげで)は、言語が大きな勢いを増すのに役立ちました。 RoRフレームワークの目標と精神性、およびオブジェクト指向プログラミング(OOP)言語として提供される機能(当時利用可能な競合他社と比較して)と相まって、Rubyは過去10年間で最も広く好まれた言語の1つになりました。
RubyベースのツールであるCapistranoは、デプロイメント用のレシピをコンパイルするときに、Rubyのクリーンで明確な構文を利用する可能性をユーザーに提供します。
キャピストラーノレシピ
Capistrano lingoのレシピは、アプリケーションとサーバーを展開(または管理)するための操作上の指示を含むファイルに変換されます。 これらのレシピは、Ruby(またはRails)に関連しない多種多様な言語固有のデプロイメントをサポートするように変更できます。 それらは、Capistranoがアクションを実行するために使用するスクリプトと考えることができます。
システム/サーバー管理
Capistranoがどのような状況で役立つのか疑問に思っている場合は、以下にいくつかの例を示します。
システムとサーバーの管理ジョブ(通常)には、以下に関連するほとんどすべてのものが含まれます。
-
サーバーの構築
-
アプリケーションのインストール
-
これらのアプリケーションを実行しているシステムのメンテナンス
-
そして監視
独自のVPS(完全な制御/アクセスを備えた本格的な仮想化サーバー)で作業を開始すると、謎のように見えるものがすぐに馴染み始めます。
アプリケーションの人気が高まり始め、物事が成長し始めると、複数のドロップレットを管理し、すべてを何度も繰り返す必要がなくなります。 アプリケーションをデプロイしてそのメンテナンスに対処する場合、いくつかの問題、特にオーバーヘッドと時間の浪費に遭遇することを予期するのは当然です。
Capistranoは、アプリケーションの展開から始めて、すべてではないにしても、ほとんどの場合にそれらを支援できます。
アプリケーションの展開
アプリケーションのデプロイ(Webサイト、API、サーバーに関係なく)は通常、システムを最初から(または時間内に取得したスナップショットから)セットアップし、すべてを更新して準備し、依存関係をダウンロードし、ファイルをセットアップすることを意味します構造と権限に続いて、最終的にコードベースをアップロードするか、Gitなどのソース管理マネージャー(SCM)を使用してダウンロードします。
開発プロセス中に、各ステップで定期的に実行する必要のあるコマンドが存在する可能性があります(例: 展開サイクルに入る直前)。
これらのタスク(ローカルとリモートの両方)を論理的に整理され、最も重要なこととしてプログラム可能な方法でスクリプト化できることは、同じ手順を絶えず繰り返してどれだけの時間が無駄になっているのかを理解した直後に非常に貴重であることがわかります。プロセス。
Capistranoのインストール
注:この記事では、CentOS6.5オペレーティングシステムで実行されているVPSにCapistranoをインストールすることに焦点を当てています。 別の種類で作業している場合(例: Ubuntu)、同じロジックが適用されますが、インストールについては、公式のCapistranoドキュメントを確認することをお勧めします。
注:現在利用可能な最新のRubyバージョンを設定するこのセクションは、このテーマに関する専用記事の要約です- CentOS6.5にRuby2.1.0をインストールする方法。
システムの準備
Ruby(およびCapistrano)をインストールするには、最小限の出荷のCentOSドロップレットを準備し、他のアプリケーションやツールをインストールするために作成された開発ツールを装備する必要があります(例: ソースからRubyをインストールするコンパイラ)。
システムの更新から始めましょう。
以下を実行して、CentOSベースのドロップレットのデフォルトツールを更新します。
yum -y update
次のコマンドを実行して、開発ツールを含むバンドルをインストールします。
yum groupinstall -y 'development tools'
Rubyのインストール
RubyバージョンマネージャーであるRVMを使用して、「rubies」(RVMと呼ばれるRubyインタープリター)をダウンロードしてインストールします。
次の2つのコマンドを実行して、RVMをインストールし、Rubyのシステム環境を作成します。
curl -L get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
最後に、システムにRubyをインストールするために、RVMにRubyバージョン2.1.0をダウンロードしてインストールさせましょう。
rvm reload
rvm install 2.1.0
Rubyが実際にインストールおよびセットアップされていることを確認するには、次のコマンドを実行します。
ruby --version
# ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux]
Capistranoのインストール
システムの準備ができたら、RubyGemsのおかげでCapistranoの最新バージョンを簡単に入手できます。
以下を使用して、Capistranoバージョン3を入手できます。
gem install capistrano
完全に最新のバージョンで作業したい場合は、Githubリポジトリにリンクできます。
git clone https://github.com/capistrano/capistrano.git
cd capistrano
gem build *.gemspec
gem install *.gem
Rubyの場合と同様の方法で、Capistranoのインストールを確認できます。
cap --version
# Capistrano Version: 3.1.0 (Rake Version: 10.1.0)
Capistrano入門
必要なすべてのコンポーネントをセットアップして準備ができたら、開始記事のこの最後のセクションでCapistranoの基本を続行できます。
キャピストラーノの基本
Capistranoを使用するための鍵は、プロジェクトを外部のGitリポジトリにコミットし、展開中にダウンロードできるようにすることです。
これを行うには、Githubなどの任意のプロバイダーを選択できます。
または、こちらにアクセスしてVPSでプライベートGitリポジトリをホストする方法や、Gitの操作方法について学ぶことで、Gitに関するDigitalOceanのコミュニティ記事を見ることができます。
注: Capistranoが推奨するように、機密情報を含めないでください。 リポジトリ内のデータベース接続用の安全なクレデンシャル)。
プロジェクト内でのCapistranoの開始
Capistranoバージョン3の開始は、バージョン2とは少し異なり、次のコマンドで構成されています。
# Usage:
# Enter the project directory: cd [project-name]
# Initiate Capistrano: cap install
cd myapp
cap install
Capistranoを使用してデプロイするためのユーザーの作成
Capistranoを展開に使用する場合、レシピを実行する良い方法は、デフォルトのroot
以外のユーザーを使用することです。 まず、デプロイヤーグループを作成し、続行する許可を与えます。
ドロップレットに新しいグループを追加するには、次を実行します。
groupadd deployers
これで、特権アクセスを持つdeployers
グループにユーザーを追加し続けることができます。
deployerをデプロイヤーとして追加しましょう。
# Usage: sudo usermod -a -G deployers [name]
sudo usermod -a -G deployers deployer
最後に、デプロイヤーグループに権限を付与するには、以下を実行して/etc/sudoers
ファイルを編集します。
nano /etc/sudoers
グループの後に次の行を追加します。
..
## Allows people in group wheel to run all commands
%deployers ALL=(ALL) ALL
..
さらに詳しい情報
注: SSHとsudoの詳細については、 LinuxBasicsに関するDigitalOceanコミュニティの記事をご覧ください。
以上です! これで、展開にCapistranoを使用する準備が整いました。 次のCapistranoの記事に進んで、さまざまな展開シナリオでこのツールを使用する方法を確認してください。