Vagrant

【Vagrant】インストール~Hello World!表示まで【CentOS7】

どうも、katです。

今回は、Vagrantのインストールからサーバー起動(Hello World!表示)までを解説していこうと思います。

少し長い記事となっていますが、実施済みの項目は読み飛ばしていただいてかまいません。

所要時間は、全部合わせても1時間~1時間半ほどで終わると思いますので、順番に進めていきましょう!

Vagrantとは

そもそもVagrantとは何でしょうか?

Vagrantとは、簡単に説明すると、仮想サーバー構築、OSの設定(インストール、ネットワーク、フォルダ共有設定など)を、簡単な設定ファイルと、コマンド1つで行うことのできる、仮想環境作成用のツールのことです。

仮想環境を作成しようと思うと、まずVirtualBox(もしくはXAMPP)を用意して、そこにOSを入れて。。など、結構大変かと思います。

それが、コマンド1つでできてしまうのですから、便利なものですね!

それでは、具体的な構築手順を順を追って説明していきます。

インストール

まずは、必要な2つのツールをインストールしていきます。

VirtualBoxのインストール

まずは、Vagrantを動かすために必要な、VirtualBoxというツールをインストールしていきます。

下記サイトから、自分のOSに合ったものをダウンロードします。

VirtualBoxダウンロードサイト

ダウンロードが終わったら、ファイルを開き、インストールします。

インストールは、ダウンロードしたファイルをダブルクリックし、案内に沿って進めていけばよいので、ここでは詳細は割愛します。

Vagrantのインストール

次に、Vagrantをインストールしていきます。

下記サイトからこちらも、OSに合ったものをダウンロードします。

Vagrantダウンロードサイト

ダウンロードが終わったら、ファイルを開き、インストールしていきます。

こちらもVertualBox同様、インストール作業の詳細は割愛します。

以上で、インストール作業は完了です。

Box追加

次に、VagrantにBoxと呼ばれるものを追加していきます。

Boxとは、サーバー(OSや中のファイルなど)の内容がひとまとまりになったような物で、純粋にOSだけのものや、apacheの設定まで終わっているものなど様々あります。

今回は、純粋にCentOS 7が入った、「centos/7」というBoxを使います。

コンソール or コマンドプロンプトを立ち上げ、下記を打ち込みます。

$ vagrant box add centos/7

1) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop

Enter your choice: 3 ← 3を入力し、Enterを押下します。

以上で、Boxが追加されました。

Vagrant立ち上げ

次に、Vagrantを立ち上げていきます。

まずは、Vagrant用のディレクトリ(フォルダ)を作成し、そこに移動します。

$ mkdir centos7
$ cd centos7

下記コマンドを打ち込みます。

$ vagrant init centos/7

$ mkdir workspace ← 作業用のディレクトリを作成します(名前は何でも良いです)

設定ファイル(VagrantFile)を書き換えます。

該当箇所のみ書き換えてください。

・固定IPを指定する場合、下記コメントをはずします。(推奨)

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

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

・割り当てるメモリを増やす場合は、下記を書き換えます。

# config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true 
# 
# # Customize the amount of memory on the VM: 
# vb.memory = "1024" 
# end

config.vm.provider "virtualbox" do |vb| 
# Display the VirtualBox GUI when booting the machine 
# vb.gui = true 
# 
# Customize the amount of memory on the VM: 
vb.memory = "2048" 
end

Vagrantを立ち上げます。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'centos/7' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: No guest additions were detected on the base box for this VM! Guest
    default: additions are required for forwarded ports, shared folders, host only
    default: networking, and more. If SSH fails on this machine, please install
    default: the guest additions and repackage the box to continue.
    default: 
    default: This is not an error message; everything may continue to work properly,
    default: in which case you may ignore this message.
==> default: Rsyncing folder: /Users/username/Documents/centos7/workspace/ => /vagrant
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

以上で、Vagrantが立ち上がりました。

apache起動

次に、下記を順番に実施し、apacheを起動していきます。

firewallを停止

本番環境では駄目かと思いますが、開発環境であればfirewallを停止しましょう。

また、後から変更もできますので、とりあえず画面表示したい場合は停止しましょう。

$ systemctl stop firewalld

以上で、firewallが停止しました。

SELinuxを無効化

こちらも、開発環境であればとりあえず無効化しましょう。

$ getenforce ← 現在の設定を確認
Enforcing

$ vi /etc/selinux/config

#SELINUX=enforcing ← コメントアウト
SELINUX=disabled ← 追記

vagrant再起動

$ getenforce ← 無効になったことを確認
Disabled

以上で、SELinuxを無効化しました。

apacheインストール

下記コマンドを打ち込み、インストールします。

$ yum install -y httpd

インストールが完了したら、サーバー起動時に自動起動するように設定しましょう。

$ systemctl enable httpd

共有フォルダ設定

ここまでできたら、一旦Vagrantを停止しましょう。

$ vagrant halt

停止したら、Vagrantfileを下記のように修正します。

# config.vm.synced_folder "../data", "/vagrant_data"

config.vm.synced_folder "./workspace", "/var/www/html"

Vagrantを再度起動し、sshログインします。

$ vagrant up
$ vagrant ssh

ここで、環境によっては、共有フォルダのエラーになる場合があります。

その場合は、下記の記事で解決方法を紹介していますので、参考にしてみてください。

【Vagrant】共有ファイルエラーになる場合の対処法【簡単】どうも、残業続きのkatです! 今回は、Vagrant構築で起こりやすい、共有フォルダのエラー解消方法について書いていこうと思います。 ...

htmlディレクトリ内に、下記のようにしてファイルを作成します。

$ cd /var/www/html/
$ touch test.html
$ vi test.html

Hello World! ←ファイルに書き込む内容

画面表示確認

それでは、ちゃんとサーバーが立ち上がったかどうか確認しましょう。

http://192.168.33.10/test.html

にアクセスしてみましょう。

上記のように表示されればOKです!

最後に

いかがだったでしょうか?

スムーズにいけば、1時間ちょっとでできるのではと思います。

うまく行かない場合は、表示されたエラーメッセージで検索したら、大抵解決策が書いてありますので、まずは検索してみましょう。

以上、「Vagrantのインストール~Hello Worldまで」でした~。

ABOUT ME
kat
プログラマー歴7年、2歳の子供を持つパパです。 興味のあることはプログラミングや今後のIT技術などです。 趣味でオンラインカードゲームのサイトを運営しております。 プログラミングを通して社会に貢献していきたいです。