1
| |
--config の後ろにはeditor以外にもさまざまなパラメータを指定できる。指定できるものは /etc/alternatives 以下にあるシンボリックリンクの名称。
1
| |
--config の後ろにはeditor以外にもさまざまなパラメータを指定できる。指定できるものは /etc/alternatives 以下にあるシンボリックリンクの名称。
lxc-createコマンドで新しいLXCコンテナを作成するとき、 -t オプションによってどのテンプレートを使うか(どのディストリビューションのコンテナを作成するか)指定する。
指定できるテンプレート名を確認するには /usr/share/lxc/templates ディレクトリを参照すればよい。テンプレートのファイル名から lxc- を除いたものが指定できる。
具体的には下記の通り。
Octopressのclassicテーマの検索ボックスは、実際に使ってみるとサイト内検索ではなく単なるGoogle検索として動作している。
サイト内検索ができるようにするためには下記のパッチを適用する。
https://github.com/imathis/octopress/commit/514ed5eb9f6bb91a6f3288febf3c2ba892a9b693
SHIRASAGIをインストールする手順(2)の続きです。
ここからはSHIRASAGI公式サイトのインストール手順に従って進めます。
1
| |
ここでMongoDBをインストールします
※先にインストールすると既にあるものとぶつかり合ってしまいます
1
| |
以下を一番最後に追記する
1 2 3 4 5 | |
1
| |
(バージョン確認してみるとインストールできたことが分かります)
1 2 | |
1 2 3 | |
1
| |
警告が出ました
示してある通りにする
1
| |
再度行う
1 2 3 4 5 | |
(rvmのバージョンを確認したい場合は)
1 2 | |
1 2 | |
gitがないと言われたのでインストールします
参考:Gitのインストール
1
| |
最後に「完了しました!」と表示されたらOK
再度行う
1 2 3 4 5 6 | |
「 http://localhost:3000/.mypage にアクセスしてください」と書いてある(インストール手順)
でも、今はVirtualBox上の仮想マシンなので
いつも通りブラウザではアクセスしても表示されません。
(ちなみに http://192.168.56.101:3000/.mypage/ にもアクセスできない)
ターミナル上でアクセスする
1 2 | |
言われた通りに http://localhost:3000/.mypage/login へアクセスする
1 2 3 4 5 6 7 8 9 | |
ターミナルにhtmlが表示され、アクセスできた
こちらにもアクセスできます
1
| |
ブラウザでアクセスできるようにします
1
| |
ブラウザを起動してアクセスする
http://192.168.56.101:3000/.mypage/login
画面が表示されました!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
問題なくできました。
1 2 | |
1
| |
1
| |
1
| |
1
| |
ブラウザのログイン画面で入力してみる
Email:sys@example.jp
Password:pass
ログインできました!
これでSHIRASAGIのインストールは完了です。おつかれさまでした。
Linuxにおいてファイル領域を冗長化したい場面は多いと思います。
例えばファイルサーバやNFSサーバなどの共有領域は冗長構成にしておきたい場面は多いのでは無いでしょうか。
オンプレなサーバであれば、媒体自体をハードウェアRAIDやソフトウェアRAIDでミラーリングしたり、DRBD等のツールでクラスタ化することが多いと思います。
クラウドを使った場合は、いろいろと仕様的な制限があったりで、使えない場合があります。
今回は簡単に構築でき、マスターレスで動作する分散ファイルシステム GlusterFS の設定について書きます。
今回CentOS6、Amazon Linuxにて検証
※2台のVolume提供サーバをそれぞれ gfs_sv1・gfs_sv2、クライアントをgfs_clと仮定します。
クラウドやアーキテクチャに従い作業
なお、提供領域が外部volumeで無い場合は、下記 /etc/fstab への追記までの作業は不要。
今回の例は/var/glustervols
1
| |
下記はext4でマウントしている
1
| |
/etc/fstab に追記する1
| |
※UIDに注意
今回の例では、apacheの領域として設定
1 2 3 | |
1 2 3 | |
/etc/yum.repos.d/glusterfs-epel.repo の enabled=1 を enabled=0 に書き換え、指定時以外はyumリポジトリを参照しないようにする。
1
| |
※Amazon Linuxの場合$releaseverの値が取得できないので、yumの実行前に /etc/yum.repo.d/glusterfs-epel.repo の $releasever を 6など適切な物に 書き換える
1 2 3 | |
/etc/hosts に追記する1 2 3 | |
例ではgfs_sv1において、replicaモードで2つの領域( gfs_sv1の /var/glustervols と gfs_sv2の /var/glustervols )を一つの vol01 という仮想ボリュームとして構成している
1 2 3 4 | |
注意する点としては、 gluster peer probe コマンドで連携するホストを指定するが、 Glusterクライアントの gfs_cl も含めている ところ。
今回の例では、gfs_clでの作業
1 2 3 | |
起動時に自動マウントする場合は /etc/fstab に下記を追記する。
1
| |
これでクライアントであるgfs_clにおいて、 /var/app01 にファイルやディレクトリを作成すると、両方のVolume提供サーバの /var/glustervols にファイルが作成され冗長構成が実現する。
その後の編集なども同期され冗長化は維持される。
クライアントがglusterfsファイルシステムを利用出来ない場合は、nfsでマウントすることも可能。
この場合クライアントからはVolume提供サーバのどちらかを指定しマウントすることになる。
GlusterFSは、マスターを持たないのでどちらを指定しても良い。
ただし、Volume提供サーバの物理的な故障などで冗長化が壊れた場合、glusterfsマウントした場合は自動的に動作中のVolume提供サーバと通信し、サービス可動が維持できるが、 NFSマウントした場合は指定したVolume提供サーバが落ちた場合は停止する ことになる。
SHIRASAGIをインストールする手順(1)の続きです。
ここからの手順は、前提としてVirtualBoxにCentOS6.5 64bitがインストールされた状態です。
SHIRASAGI公式サイトの動作環境に記載されているものをインストールしていきます
1
| |
最後に「完了しました!」と表示されたらOK
バージョンの確認
1 2 3 | |
インストールされたことが確認できました。
参考:Rubyのインストール
以下のコマンドでインストールすると、現時点(2015年1月)では古いバージョン(1.8.7)がインストールされるのでしないように気をつける。
1
| |
今回は「Ruby2.1.2」という指定があるので、次の方法でインストールします。
参考:Ruby2.0をソースからインストールする手順 (CentOS/RedHat)
ダウンロードします
1 2 3 | |
wgetがないと言われたのでインストールします
1
| |
最後に「完了しました!」と表示されたらOK
再度ダウンロードします
1
| |
最後に「完了しました!」と表示されたらOK
展開します
1
| |
コンパイル・インストールします
1 2 3 4 | |
このエラーを解決するためにはgccのインストールが必要らしい
1
| |
最後に「完了しました!」と表示されたらOK
再度
1 2 | |
バージョンを確認します
1 2 | |
インストールされていることが確認できました!
次の作業のためにディレクトリを移動します
1
| |
参考:Unicorn: Rack HTTP server for fast clients and Unix
インストールします
1 2 3 4 5 | |
zlibがないらしいので入れます
1
| |
最後に「完了しました!」と表示されたらOK
改めてインストール
1 2 3 4 5 | |
さっきと同じエラーが出たので入ってないらしい
zlibというディレクトリに移動して実行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
改めてインストール
1 2 3 | |
さっきのエラーはなくなったけど別のエラーが発生しました…
opensslをインストールしないといけないらしいのでインストールします
opensslというディレクトリに移動して実行
1 2 3 4 5 6 7 8 9 10 | |
エラーが発生しました
参考:rubyのインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
改めてインストールします
1
| |
バージョンを確認します
1 2 | |
無事にインストールされたことが確認できました!
参考:Ruby on Rails: Download 第1章 ゼロからデプロイまで
今回は4.1.6をインストールしたいのでバージョン指定します
1
| |
バージョンを確認します
1 2 | |
インストールされたことが確認できました!
これで環境が整いました。
MongoDBをまだインストールしていませんが、あとで行います。
(このときにインストールすると手間がかかるため)
SHIRASAGI公式サイトのダウンロードページにアクセスします。
インストール手順がありますが、前提として動作環境に記載された状態にする必要があります。
動作環境に記載されている通り、
OSは以下のどちらかにする必要があります。
* CentOS 6.5 64bit
* ubuntu Server 14.04LTS
今回はCentOS 6.5 64bitをインストールします。
(※ はじめにVirtualBoxをインストールする必要があります。)
この手順は詳しく書きませんが、以下のページを参考にしたらできました。
* VirtualBoxのネットワーク設定とCentOS6.5のインストール
* macにVirtualBoxをインストールしてCentOSを起動してホストとssh接続、最後に共有ディレクトリの設定まで
<気をつけたこと>
* 容量不足になるといけないのでファイルサイズを20GBにした
* 言語設定では日本語を選択するが、キーボードではアメリカ合衆国(U.S)を選択する
これでOSの準備ができました!
起動後、ログインします。
1 2 | |
ログインできました!
—– 以下はしなくてもいいけど、やっておくと便利なこと —–
VirtualBoxのCentOS上の画面での操作は慣れないと不便な点
(スクロールできない、コピー&ペーストできない等)があるので
ターミナルからssh接続できるようにしました。
参考:macにVirtualBoxをインストールしてCentOSを起動してホストとssh接続、最後に共有ディレクトリの設定まで
手順は次のようになります。
1. ホストオンリーネットワークを作成
2. 仮想マシンでホストオンリーアダプタを設定
3. 2つのファイルを編集
以下は補足として3. 2つのファイルを編集するときの操作を詳しく書きました。
1
| |
「i」キーを押す (下に「– INSERT –」と出れば入力モードになる)
下記のように書き換える
1 2 3 4 5 6 | |
<気をつけたこと>
* カーソルを見失った場合は「command」キーを押して切り替え
* スクロールはできないので、キー操作で移動する
編集し終わったら…
「esc」キーを押す
「:wq」と入力する(上書き保存して終了)
同じように下記も書き換える
1
| |
「esc」キーを押して、「i」キーを押す
1 2 3 4 5 6 7 8 9 10 | |
「esc」キーを押して、「:wq」と入力する
2つの編集が終われば、ネットワークの再起動をする
1
| |
ターミナル(Macの場合)を起動して接続します
(Finder > アプリケーション > ユーティリティ > ターミナル)
1 2 | |
これでターミナルからssh接続できるようになりました!
ファイル関係のテスト用にダミーファイルがいっぱい必要な事ありますよね。
シェルスクリプトが面倒なのでRubyでつくりました。
ただし、実際のファイル作成についてはddコマンドを実行しています。
ループとファイル名作成はRubyで、ファイルそのものはコマンドを使うという怠け者( => オレ)です。
1 2 3 4 5 6 7 8 9 10 | |
/testvolumeディレクトリの中に、さらにtestdir00〜testdir99というディレクトリを作成し、各ディレクトリにtestfile00〜testfile99という100KBのファイルを作成しています。
ファイルサイズはsystemコマンド中のddコマンドでbsとcountを変更することで調節できます。
bs=1024 で1KByte)count=100 で上記ブロックサイズx100)EIPやパブリックIPがアタッチされていないインスタンスは外部との接続ができない。
このため、yumやwgetなどができないが、それ以外にインターネットとの通信が不要の場合はproxyを経由するのが簡単。
インターネットとつながっているインスタンスにProxyを立てて、これを経由させる。
今回はCentOS6およびAmazon Linuxが対象
1
| |
/etc/squid.conf を編集(主な設定のみ記載。例では経由するサーバは172.16.0.0/16にあるものとする)
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 | |
(上記Proxyサーバを172.16.1.100と想定)
/etc/yum.conf の最終行に下記を追記
1 2 | |
/etc/apt/apt.conf.d/80proxy を作成(ファイル名は何でも良いです。)
1 2 3 | |
/etc/wgetrc 中の内容を下記の様に修正
1 2 3 | |
ホームディレクトリに .curlrc を作成
1
| |
ubuntuのリポジトリのnginxは古いので新しいものをnginx本家からインストールできる様にする。
1 2 3 | |
1 2 | |
1 2 | |