主なタスク
サイトはnginx httpサーバーで実行する必要があり、gitはグループ開発に使用され、rvmは柔軟なruby構成に、サイトのニーズに合わせてgemを使用しますが、別のプロジェクトをホストする機能は保持します。 そして、これはすべてカピストラーノを通じて公開されることになっていました。
第一段階
最初の段階では、Linuxバージョンを決定する必要がありました。 次のディストリビューションが利用可能でした:Oneiric Ocelotおよびbitnamiアマゾンマシンイメージ。 最初は十分なチーズでしたが、2番目について詳しく説明しましょう。 Bitnamiは、ubuntu 10.04に基づいたオペレーティングシステムです。in>> / etc / init.d / nginx
chmod + x /etc/init.d/nginx
update-rc.d nginxのデフォルト
生活を楽にするいくつかの追加パッケージを追加しました。 しかし、いつものように、これは私たちの場合ではありませんでした。 インストールされた「改善」の1つはApacheでした。 最初に必要なことは、このサーバーを停止して初期化子を削除することです。 これを行うには、ルートとしてログインし、次のコマンドを実行します。
/etc/init.d/bitnami stop
また、念のためback_upなどのディレクトリにデーモンを移動します。
次に、必要なライブラリをインストールします
apt-get install build-essential bison openssl libreadline5 libreadline-dev
curl git-core zlib1g zlib1g-dev libssl-dev sqlite3 libreadline-dev libxml2-dev git-core subversion autoconf
グローバルrvmをインストールした後。 これを行うには、ターミナルに書き込みます。
bash < <(curl -L raw.github.com/wayneeseguin/rvm/1.3.0/contrib/install-system-wide)
ファイル/root/.bashrcおよび/etc/skel/.bashrcを修正します。 行[-z "$ PS1"] && returnは次のように置き換えられます。
if [[ -n "$PS1" ]]; then
##
fi
ファイルを保存して再起動します。rvmブート設定に加えて、rubyとgemsetのすべてのバージョンに必要ないくつかのgemを指定すると便利です。 これらは主にバンドラー、カピストラーノ、パッセンジャー、レーキです。 したがって、以下を/usr/local/rvm/gemsets/global.gemsに追加します
bundler -v~>1.0.18
rake –v~>0.9.2
capistrano –v ~>2.9.0
passenger –v ~>3.0.9
次に、迅速に動作するようにRails用のRuby EEをインストールします。
rvm install ree
デフォルトのルビーインタープリターとして設定します:
rvm use ree --default
サイトの追加のgemsetを作成した後:
rvm gemset create foo_site
ssh経由でアクセスできるユーザーを作成することは不可能だったため、bitnamiが$ HOMEディレクトリを作成して、サイトのバージョン、ログなどを保存する必要がありました。
mkdir foo_site
今、nginxとpassengerをインストールするといいでしょう
gem install passenger
rvmsudo passenger-install-nginx-module
rvmsudoが見つからなかったというエラーが表示された場合は、/ usr / local / rvm / binフォルダーを調べるか、$ PATH変数に追加して常に使用することができます。
インストーラーからの簡単な質問に答えると、設定する必要のある有効なnginxが得られます。 これを行うには、/ opt / nginx / conf / nginx.confで構成ファイルを開きます。そこで、passenger_rubyの値を/ usr / local / bin / passenger_rubyに変更します。
次に、サイトフォルダーの場所を指定する必要があります。 ファイルで、行「サーバー」の下に「ルート」を挿入し、/ home / bitnami / foo_site / application / current / publicを指定します。 将来のサイトのある「foo_site」フォルダーはどこにありますか。 ロケーションセクションをコメントアウトした後、nginxのデーモンをロードし、rootとして実行します:
curl -L raw.github.com/jnstq/rails-nginx-passenger-ubuntu/master/nginx/nginx > /etc/init.d/nginx
chmod +x /etc/init.d/nginx
update-rc.d nginx defaults
/etc/init.d/nginx start
これで、Amazonから受け取ったドメインのブラウザーに移動して、nginxからのエラーを確認できます。 すべてが正常に機能します。
次はgitについての会話です。 リポジトリを別の場所(たとえば、github)に配置したくない場合は、次のセクションが最適です。
gitを構成する
gitリポジトリマネージャーはたくさんありますが、人気のあるgitosisに決めました。 サーバーにインストールします。
sudo apt-get install gitosis
次に、gitユーザーを作成します
sudo adduser git
gitユーザーとしてログインしましょう:
sudo su git
gitをsudoersファイルに追加します。
%git ALL=(ALL) ALL
sshキーを作成します:
ssh-keygen -t dsa
次に、VPSサーバーを作成します。
sudo -H -u git gitosis-init < ~/.ssh/id_dsa.pub
git clone git@your_amazon_dns:gitosis-admin
次に、サイトリポジトリを作成します。そのために、ファイル/home/git/gitosis-admin/gitosis.confを開き、これを貼り付けます。
[
group foo_site]
writable = foo_site
members = git@domU-12-31-38-04-1D-DE developer1@mail.com developer2@mail.com
group foo_site]
writable = foo_site
members = git@domU-12-31-38-04-1D-DE developer1@mail.com developer2@mail.com
各要素をさらに詳しく検討します。
group foo_site –
writable = foo_site –
members = git@domU-12-31-38-04-1D-DE developer1@mail.com developer2@mail.com –
また、keydirフォルダーで、キーを使用してdeveloper1@mail.com.pubファイルを作成する必要があります
gitosis自体はgitリポジトリであるため、設定を変更した後、コミットとプッシュを行う必要があります。
git commit –am 'new changes' && git push
次に、/ home / git / repositories / foo_site.gitフォルダーを作成します。ここで、リポジトリーを初期化します。
git init -- bare /home/git/repositories/foo_site.git
git @ amazon-domainでgitリポジトリを使用できるようになりました:foo_site
capistranoを構成する
ローカルプロジェクトで、capifyコマンドを実行します。
彼女はCapfileとconfig / deploy.rbを作成します
deploy.rbファイルに次を追加します。
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require "rvm/capistrano"
require 'bundler/capistrano'
#require 'capistrano/ext/multistage'#
require 'capistrano_colors'#
default_run_options[:pty] = true
ssh_options[:forward_agent] = true
set :using_rvm, true
set :rvm_ruby_string, 'ree@foo_site'# ruby gemset
set :rvm_type, :system
set :scm, 'git'#
set :scm_verbose, true
set :git_enable_submodules, 1
set :deploy_via, :remote_cache
set :repository, ' '
set :user, 'bitnami'
set :use_sudo, false
set :stack, :passenger
after "deploy:update", "deploy:cleanup"
set :branch, "master"
server « », :web, :app, :db, :primary => true
set :keep_releases, 4
set :deploy_to, '/home/bitnami/foo_site /application'
set :bundle_without, [:test, :development]
次に、cap deploy:setupコマンドを実行します。
おめでとうございます。これで、十分な機能を備えたgitでサーバーを作成できました。
トピックに関する有用な情報
nginx + rvmに関する投稿
Gitサーバーを作成する