This script enables you to launch your Rails application in production environment (port:80) with Nginx and Unicorn.
Please make sure that your Gemfile in your rails application includes unicorn.
| Starman: | |
| - Preforking standalone HTTP server | |
| - Based on Catalyst::Engine::HTTP::Prefork by Andy Grundma | |
| - Ported to Plack by Tatsuhiko Miyagawa | |
| - Uses Net::Server::PreFork | |
| - Supports HTTP/1.1 | |
| - Pipelined requests | |
| - Chunked request/response | |
| - Keep-Alives | |
| - Graceful restart with HUP (No shutdown with QUIT yet) |
| Use the MetaCPAN mirror for faster module installs: | |
| cpanm --mirror http://cpan.metacpan.org #perl | |
| or (courtesy of @doyster) | |
| export PERL_CPANM_OPT="--mirror http://cpan.metacpan.org" | |
| or as an alias: |
| # graphite-web install is hardcoded in setup.cfg to /opt/graphite | |
| sudo mkdir /opt/graphite | |
| sudo chown brad.users /opt/graphite | |
| # run under python2.7 virtualenv | |
| virtualenv --python=python2.7 ~/ve/graphite | |
| source ~/ve/graphite/bin/activate | |
| # install the necessary python packages (simplejson is for flot graphs) | |
| pip install graphite-web carbon whisper django django-tagging uwsgi simplejson |
| #! /bin/sh | |
| ### BEGIN INIT INFO | |
| # Provides: gunicorn-graphite | |
| # Required-Start: $remote_fs $syslog | |
| # Required-Stop: $remote_fs $syslog | |
| # Should-Start: $nginx | |
| # Default-Start: 2 3 4 5 | |
| # Default-Stop: 0 1 6 | |
| # Short-Description: gunicorn + nginx ubuntu init script | |
| # Description: gunicorn + nginx ubuntu init script |
| #!/bin/bash | |
| SESSION_NAME=tmux-ssh | |
| INITIAL_WINDOW_NAME=tmux-ssh-window | |
| ### セッションの作成 | |
| tmux start-server | |
| tmux new-session -d -n $INITIAL_WINDOW_NAME -s $SESSION_NAME | |
| ### 引数で与えられたホストにssh接続 |
コンテナは、軽量な仮想化技術です。これはQemuやVMwareのような完全仮想化に比べると、どちらかというと拡張されたchrootに似ています。なぜなら、コンテナはハードウェアをエミュレートしたりせず、ホストと同じOSを共有するからです。なのでコンテナは、SolarisのzoneやBSDのjailと比べて優れています。Linux-vserverとOpenVZの二つが、現在のところ既に存在している独立して実装されているLinux機能のコンテナ実装です。実はコンテナは、vserverとOpenVZの機能の上位互換を開発するための仕事の延長で登場しました。いくつかのvserverとOpenVZの機能は現在のコンテナではまだ実装されていませんが、コンテナは多くのLinuxディストリビューションを起動(boot)することができ、upstreamカーネルの変更なしで利用することができるという利点があります。
コンテナのユーザー領域の実装には、カーネルの同じ機能を利用した二つの方法があります。Libvirtは、「lxc:///」に接続してLXCドライバー経由でコンテナへのアクセスを許可します。この仕組みは他のドライバーと同じ使い方をサポートしているので、非常に使い勝手の良いものになるでしょう。もう一つのコンテナ実装は、単純に「LXC」と呼ばれるものです。これはlibvirtとは互換性はありませんが、より多くのユーザー領域ツールによってより柔軟に使うことができます。これは、少し混乱を生む特異な部分もありますが、二つのLXC間での入れ替えも可能になります。
このドキュメントでは主にlxcパッケージについて記述します。あとは、ドキュメントの最後の辺りにかけてlibvirt LXCドライバーについても記述します。
このドキュメントでは、コンテナの名前はCN、C1、そしてC2として説明します。
| package DBIx::Lite::ResultSet::Role::Slave; | |
| use strict; | |
| use warnings; | |
| use Role::Tiny; | |
| around $_ => sub { | |
| my ($ORIG, $self, @args) = @_; | |
| local $self->{dbix_lite} = $self->{dbix_lite}->master; | |
| return $self->$ORIG(@args); | |
| } for qw( |