NUCにOS再インストール&仮想環境構築

Share on Facebook5Tweet about this on TwitterShare on Google+0Share on LinkedIn0

こんにちは、mi2yo4です。

私の自宅で使用している会社支給マシン。これについて、OSを再インストールしてみました。

今回はその記録となります。

停電から復帰すると何故かhttpサーバが立ち上がらなくなってしまった…orz

このまま原因追及してもいいんですが…前々から気になっていたのがこのマシン上のOSです。

会社ではCentOSもしくはUbuntuがデファクトになっているのに、コイツだけは何故かFedoraが走っている(しかもちょっと古め)…

ディストリビューションが他と微妙に違うと管理のコストもかかってしまいますよね。

また、このマシンは私がjoinする前から弊社のzako58が使っていて、それを私がjoinした後に譲り受けたものです。

以来ずっと弄り倒していたので、インストールしているソフトについても当人も何が入っているのかよく分かっていません^^;

なのでこの際すっきりさせる方向で頑張ってみようと思いました。

インストール方針

インストール対象のマシンはNUCというジャンルのものらしいので、光学ドライブなどは一切ついていません。
なので、今回はUSBメモリからのインストールで何とかしようと思います。

条件としては以下の通りとなります。

  • 社内で使用しているOSはCentOS6もしくはUbuntu14.04を使いたい
  • PHP5.3.xを使う必要がある(しかしUbuntu14.04ではPHP5.5環境)
  • 対象マシンは古めのディストリビューション(CentOS6)だと上手くインストールできない

色々とディストリビューションを変えてインストールしてみましたが、上記の条件を一発で満たすようなものは見つかりませんでした。

あちらを立てればこちらが立たず、という悩ましい状況ですね。

(ここまででインストールを数回行って疲弊しておりますorz)

skypeで相談の結果、Ubuntu系でサーバを立てて、その上に仮想環境でCentOS6などを動作させれば良いのでは、という結論になりました。

最終的には個人的好みを反映してXubuntu14.04にしました。

インストール記録

OSインストール

さて、Xubuntu14.04をチョイスしたのでさくさく作業を進めます。ダウンロード先は以下になります。

http://cdimage.ubuntu.com/xubuntu/releases/14.04/release/

対象マシンには光学ドライブが無いのでUSBメモリによるインストールを行います。

unetbootinというツールを使います。

http://unetbootin.github.io/

先ほどダウンロードしたXubuntu14.04のisoイメージを選択して、USBメモリを展開先に選択します。

スクリーンショット 2016-04-22 06.40.33

展開が済んだら、USBメモリをNUCマシンに挿してリブート。BIOS画面を立ち上げて、USBメモリからのbootを内蔵ディスクよりも優先させます。

後は画面の指示に従うだけ。光学ドライブではないのでインストールがサクサクと進みます。これからはUSBメモリの方が簡単・速いのでお勧めですね。

仮想環境構築用ライブラリインストール

Xubuntuに仮想環境用のライブラリ関連をインストールします。

基本的には下の情報を参考にしました。

ubuntu 14.04でVagrantを使って簡単にKVM仮想マシンを立ち上げる〜vagrant-libvirt

まずはこのNUCマシンがKVMに対応しているCPUかどうかをチェックします。

$ egrep -c '(vmx|svm)' /proc/cpuinfo

確認が済んだら、KVM(libvirt)関連ライブラリをインストールします。

# apt-get install kvm libvirt-bin virtinst bridge-utils

Vagrantのインストールを行います。これは配布元からダウンロードしてきました。

# wget https://releases.hashicorp.com/vagrant/1.8.1/vagrant_1.8.1_x86_64.deb
# dpkg -i vagrant_1.8.1_x86_64.deb

vagrant-libvirtライブラリのインストール

# apt-get install libxslt-dev libxml2-dev libvirt-dev zlib1g-dev
# vagrant plugin install vagrant-libvirt

弊社ではfabricを使っていますので、fabricのインストールをします。

# apt-get install fabric

vagrant-fabricプラグインを導入

# vagrant plugin install vagrant-fabric

vagrant-mutateプラグインのインストール
Virtualboxのboxをlibvirt用のboxに変換してくれます

# vagrant plugin install vagrant-mutate

さて、ここまでで準備が完了しました。

仮想環境構築

いよいよ、仮想環境を構築します。
(といってもここからは簡単ですが…)

centos6用のboxイメージを取得

# vagrant box add bento/centos-6.7
==> box: Loading metadata for box 'bento/centos-6.7'
    box: URL: https://atlas.hashicorp.com/bento/centos-6.7
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) parallels
2) virtualbox
3) vmware_desktop

Enter your choice: 2
==> box: Adding box 'bento/centos-6.7' (v2.2.5) for provider: virtualbox
    box: Downloading: https://atlas.hashicorp.com/bento/boxes/centos-6.7/versions/2.2.5/providers/virtualbox.box
==> box: Successfully added box 'bento/centos-6.7' (v2.2.5) for 'virtualbox'!

# vagrant box list
bento/centos-6.7 (virtualbox, 2.2.5)

virtualbox用のイメージを取得したいので2を選択しています。

次にvirtualboxイメージをkvmイメージに変換します

# vagrant mutate bento/centos-6.7 libvirt
Converting bento/centos-6.7 from virtualbox to libvirt.
    (100.00/100%)
The box bento/centos-6.7 (libvirt) is now ready to use.

# vagrant box list
bento/centos-6.7 (libvirt, 2.2.5)
bento/centos-6.7 (virtualbox, 2.2.5)

boxにlibvirtなCentOS6.7が追加されましたね。

適当なディレクトリを用意して移動し、仮想環境を構築します。

# vagrant init bento/centos-6.7
A <code>Vagrantfile</code> has been placed in this directory. You are now
ready to <code>vagrant up</code> your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
<code>vagrantup.com</code> for more information on using Vagrant.

そして起動!

# vagrant up --provider=libvirt

後はvagrant sshして必要なライブラリをインストールしましょう。

まとめ

Vagrant,Fabricについては過去にこのような記事を書いていました。

特にFabricに関しては、「これから使いそう!」って所で終わっていましたが、現在では弊社のメンテナンス業務に無くてはならないツールとなっています。
是非簡単に使えるので使ってみて下さいね。

今回はこれまでの成果に加えてKVM環境でのOSインストールまで出来ました。
上記のVagrant,Fabricと組み合わせると、これまでマニュアルと首っ引きだったあぐりログサーバの環境構築がとても楽に出来そうな形になるので、ますます開発に専心する事が出来そうですよ!

それではまた!