どうも、katです。
今回は、Vagrantのインストールからサーバー起動(Hello World!表示)までを解説していこうと思います。
少し長い記事となっていますが、実施済みの項目は読み飛ばしていただいてかまいません。
所要時間は、全部合わせても1時間~1時間半ほどで終わると思いますので、順番に進めていきましょう!
Vagrantとは
そもそもVagrantとは何でしょうか?
Vagrantとは、簡単に説明すると、仮想サーバー構築、OSの設定(インストール、ネットワーク、フォルダ共有設定など)を、簡単な設定ファイルと、コマンド1つで行うことのできる、仮想環境作成用のツールのことです。
仮想環境を作成しようと思うと、まずVirtualBox(もしくはXAMPP)を用意して、そこにOSを入れて。。など、結構大変かと思います。
それが、コマンド1つでできてしまうのですから、便利なものですね!
それでは、具体的な構築手順を順を追って説明していきます。
インストール
まずは、必要な2つのツールをインストールしていきます。
VirtualBoxのインストール
まずは、Vagrantを動かすために必要な、VirtualBoxというツールをインストールしていきます。
下記サイトから、自分のOSに合ったものをダウンロードします。
ダウンロードが終わったら、ファイルを開き、インストールします。
インストールは、ダウンロードしたファイルをダブルクリックし、案内に沿って進めていけばよいので、ここでは詳細は割愛します。
Vagrantのインストール
次に、Vagrantをインストールしていきます。
下記サイトからこちらも、OSに合ったものをダウンロードします。
ダウンロードが終わったら、ファイルを開き、インストールしていきます。
こちらも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
ここで、環境によっては、共有フォルダのエラーになる場合があります。
その場合は、下記の記事で解決方法を紹介していますので、参考にしてみてください。
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まで」でした~。