2013年 11月 の投稿一覧

Vagrantで構築したCentOSで開発する

Vagrantで開発を始めて、ある程度知識も溜まってきたので備忘録代わりにブログに書きたいと思います。

環境

HOST Max OS X Lion
GEST CentOS 5.9(64bit)
Vagrant 1.3.5
Virtual Box 4.3.0

目次

  1. VirtualBox のインストール
  2. Vagrant1.3 のインストール
  3. box ファイルのインストール
  4. Vagrantfile の作成
  5. 仮想サーバを構築

Virtual Box のインストール

Downloads – Oracle VM VirtualBox.

上記からダウンロード、インストール。インストール時最新は、4.3.0。

Vagrant1.3 のインストール

Vagrant – Downloads.

上記からダウンロード、インストール。Rubyのgemコマンドでもインストールできるようです。インストール時最新は、1.3.5。

box ファイルのインストール

A list of base boxes for Vagrant – Vagrantbox.es.

イメージファイルを一から作るのは大変ですので、上記、Vagrantbox.esサイトからboxファイルを探して、インストールする方法が一番手軽です。ただ、他人が作ったイメージファイルなので、セキュリティがどうとかっていう事を聞いたことが有るので、そこは自己責任ですね。
会社のサーバーが古いのでそれに合わせて、イメージファイルを探して、インストールしました。

$ vagrant box add centos59_64 http://tag1consulting.com/files/centos-5.9-x86-64-minimal.box

Vagrantfile の作成

Vagrantfileはvagrantの設定ファイルになります。
$HOMEの下にvagrantというディレクトリと今回のサーバー用のディレクトリ(centos59_64)を作成して、その下で管理しています。

$ mkdir ~/vagrant
$ cd ~/vagrant
$ mkdir centos59_64
$ cd centos59_64

Vagrantfilevagrant initコマンドで作成し、変更していきます。

$ vagrant init
$ vi Vagrantfile

ちなみに、変更後のVagrantfileは以下の通りです。

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "centos59_64"
  config.vm.network :private_network, ip: "192.168.33.10"

  config.vm.synced_folder "/Users/suusuke/vagrant/centos59_64/home/", "/home/", \
        create: true, owner: 'root', group: 'root', \
        mount_options: ['dmode=777,fmode=666']

   config.vm.provider :virtualbox do |vb|
     #vb.gui = true
  
     # Use VBoxManage to customize the VM. For example to change memory:
     vb.customize ["modifyvm", :id, "--memory", "1024"]
   end
end

Vagrantのプロ?は、ここでchefやshellを使って、プロビジョニングしていくようですが、まだそこまで出来ないので、最低限の設定を書いています。
一つだけポイントとして、vagrantにはsynced_folderという機能があり、仮想サーバーのディレクトリを、ホストにマウントすることができます。今回は、Vagrantfileのあるディレクトリに、homeディレクトリをマウントさせています。これは、WEBサイトを作成する際に、ApacheのVirtualHostで各ユーザーディレクトリの下を公開ディレクトリにして開発する為です。

仮想サーバーを構築

vagrant upコマンドで、仮想サーバーを立ち上げます。

$ vagrant up

あとは、sshでサーバーにログインして、環境を作成していきます。

$ root@192.168.33.10

Apache、PHP、MySQL、PostgreSQL、Postfix、Dovecot 等をインストールして、それぞれ設定しホストPCでホストの設定をすればWEBの開発環境の完成です。

$ vi /etc/hosts
192.168.33.10  vagrant.localhost
192.168.33.10  test.example.com
....

実際にプログラムは、synced_folderのお陰で、ホストPCで変更したものが即座に反映されます。
僕は、Eclipseを普段使っているので、workspaceを~/vagrang/centos59_64/homeにして、開発をしています。

あと、WEBプログラムでメールのテストの為に、PostfixとDevcotで設定したのですが、逆にsynced_folderの機能のせいで、半日くらいうまく行かなくて時間を使ってしまったので、そちらは後ほど書き留めたいと思います。

参考サイト

Vagrant で自分の PC に「作って、壊して、元に戻せる」サーバを作る – Shin x blog.

WordPressの管理画面のセキュリティを高めるプラグイン

自分のブログは最低限のセキュリティ対策はしているつもりでしたが、仕事で管理しているWordPressのサイトにバックドアが仕込まれていて、実害は無かったもののヒヤヒヤしたので、さらにセキュリティを高めるべくプラグインを導入しました。

Crazy Bone (狂骨)

WordPress › Crazy Bone « WordPress Plugins.

ログインが実行されたログ(IPやユーザー名等)の取得ができるプラグイン。
設定は特に無く、管理画面の[ユーザー]->[ログイン履歴]でログの確認ができる。
導入してみたら、大したアクセスのないこのブログでも、結構アタック来ててビックリしました。

ログイン履歴_‹_suusuke_-_blog_—_WordPress

Simple Login Lockdown

WordPress › Simple Login Lockdown « WordPress Plugins.

ログインするときのIDやパスワードの入力を間違えた場合に、ログインできなくすることができるプラグイン。
設定画面から、ログインチャレンジ回数、ログインできなくする時間を設定できる。
表示設定_‹_suusuke_-_blog_—_WordPress
実際に、指定したチャレンジ回数ログインに失敗すると、以下のようになって、ログインできなくなる。
Too_many_login_attemps

セキュリティに対して、認識が甘かったなと痛感した出来事でした。