5次元のカオス

南の島の学生がつらつらと日々を書き連ねます

Vagrantの導入とちょっとしたサーバの初期設定をしてみた

Vagrantの導入とちょっとした初期設定をしてみた

サーバを吹き飛ばすことが多い(えっ)ので、その度にに環境構築するのに

嫌気がさして来たため、いい加減やってみようと思い VagrantとChefを

ドットインストールを利用して勉強してみました。

※ 基本的にドットインストールのまとめです。

以下、自分への健忘録

なにをするか?

自分のPC上に仮想サーバ(Vagrant)を立ち上げ、サーバを使うための基本設定を行います。

(ココらへんを後々、chefでできるようになりたい)

使用したツールは以下の通り

  • 仮想マシンの管理

    • virtual box
  • 仮想マシン

    • Vagrant
  • 手順と流れ

    Vagrantの導入

    ※ ここでは、64bitのcentOSのイメージファイルを選択

    仮想マシンの追加

    • Vagrantに追加(先ほどのサイトから選んだOSの種類をaddの後に記述します)

      vagrant box add centos64box http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
      

    作業ディレクトリの作成

    • 作業ディレクトリを作成し、vagrantの初期化を行います

      mkdir test
      cd /test
      vagrant init centos64box

    ※ 以下、全ての操作は /test以下で行っています

    Vagrantfileの編集

    • Vagrantで立ち上げた仮想マシンへアクセスできるようにIPアドレスの設定をします

    • 先頭のコメントを外します

    /test/Vagrantfile

    config.vm.network :private_network, ip: "192.168.33.10"
    

    Vagrantの立ち上げ

    vagrant up
    

    MacにVagrant、Cent OS、apacheをインストール http://qiita.com/pakiln/items/0f3e3ca4dc67495c8218

    -> こっちのほうが早いかも

    仮想マシンの初期設定

    基本的にはサーバを借りた時、最初にやった方がいいことをを仮想マシン上でもやっているだけ!

    Webサーバへのアクセス

    サーバへのアクセスはvagrantによって提供されています

    vagrant ssh
    

    ※ ちなみにvagrantへsshでアクセスしたい場合

    設定ファイルの書き出し

    HostName, PortとUserを確認します

    vagrant ssh-config > vagrant.ssh.config  
    cat vagrant.ssh.config Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/sekaryoushin/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL

    sshによるアクセス

    ※ ユーザ名, パスワードは初期状態だと: vagrant になっているようです

    ssh vagrant@127.0.0.1 -p 2222  

    ※ 以下、centOS6.0の設定を行っていきます

    ネットワークの設定

    パッケージを最新にする

    sudo yum update -y
    

    サーバ連携のための設定(CentOS6以上のみ)

    sudo vi /etc/resolv.conf
    options single-request-reopen
    

    ※ なにをやっているかについては、こちらに詳しく載っています

    RHEL6/CentOS6では、single-request-reopen を必須にしたい…

    要約すると、サーバ連携をするときにCentOS6から名前解決をする方法が変わってしまったというお話?

    デフォルトでも問題ないが、これによって動作が早くなる処理があるのだとか(ごめんなさい、詳しくは分かってないです)

    ファイアーウォールの設定

    ローカル用の開発環境なので切ってしまった方が色々と楽というお話

    sudo service iptables stop
    sudo chkconfig iptables off
    

    Webサーバの導入

    Webサーバが既に入っているのかどうかの確認

    yum list installed | grep httpd
    

    Webサーバの導入

    上記の操作で入っていないことを確認した場合、httpdを導入します

    sudo yum install -y httpd
    

    Webサーバの起動

    導入した or 導入されていた httpdを起動します

    sudo service httpd start
    sudo chkconfig httpd
    

    Webサーバの動作確認

    適当なブラウザを開いて最初に設定したIPアドレスにアクセスします。

    apacheなページが開いたら、きちんと動作しています。

    自機の情報を確認する場合は、以下のコマンドが使えます

    addrがIPアドレスとなっています

    ifconfig
    eh1   Link encap:Ethernet  HWaddr 08:00:27:D1:D0:2C
          inet addr:192.168.33.10  Bcast:192.168.33.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fed1:d02c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1934 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:398484 (389.1 KiB)  TX bytes:552 (552.0 b)
    

    htmlファイルを設定してみます

    ファイルを置く場所へ移動します : /var/www/html

    cd /var/www/html
    

    そのままでは、この場所に置いたファイルを編集できないので権限を変更します

    sudo chown -R vagrant:vagrant /var/www/html
    

    ファイルの転送

    中身が適当なindex.htmlを用意します

    scpコマンドにて転送

    scp -P 2222 -F .vagrant.ssh.config ./test.html vagrant@127.0.0.1:/var/www/html
    

    ※ ドットインストールではFileZillaというソフトを使っていました

    ※ ファイル転送ツール後々使いそうだし調べるのもありかと思う…

    hostsを編集する

    そのままでもアクセスできるのですが、

    アクセスする度にIPアドレスやパスワードを入力するのはめんどうなので

    それらを解決してくれるhostsを編集します(IPとドメインの対応付けをしてくれます)

    hostsの作成 と 編集

    vim ~/.ssh/config
    

    以下を書き込んで保存

    # Vagrant用ファイル
    Host localenv
    HostName 127.0.0.1
    User vagrant
    Port 2222
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking no
    PasswordAuthentication no
    IdentityFile /Users/sekaryoushin/.vagrant.d/insecure_private_key
    IdentitiesOnly yes
    LogLevel FATAL
    

    ※ ドットインストールではMACで、hosterというhosts設定ツールを使用していました

    epel, remiリポジトリの追加

    リポジトリとは?簡単に言うとインターネット上にある倉庫で、便利なプログラムがたくさん入っています

    epelm remiはその中でも、有名なリポジトリ

    ※ デフォルトで入っているパッケージ情報が古いのでリポジトリを更新します

    epel の追加

    epeal downloadsより、epeal-releaseを検索します

    この記事を書いた時点では epel-release-6-8.noarch.rpm がヒット

    wgetコマンドを使ってダウンロード

    wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    

    epelリポジトリの追加

    sudo rpm -Uvh epel-release-6-8.noarch.rpm
    

    epelの設定を編集

    sudo vi /etc/yum.repos.d/epel.repo
    enable=0に変更
    

    ※ 自動更新されると、運用の際に困ることがあるのでupdateの設定を切っている

    remi の追加

    Les RPM de Remi - Repositoryより、

    Enterprise Linux 6 - repository auto-configuration package : remi-release-6.rpmを選択

    wgetコマンドを使ってダウンロード

    wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    

    rmeiリポジトリの追加

    sudo rpm -Uvh remi-release-6.rpm
    

    以上で基本的な設定は終わりです。

    あとは、色々と好きなものを入れていく作業なので、割愛します。