Vagrantを使用し、CentOS開発環境を構築する【初期設定等含む】

今回は、vagrantを使用して、virtualboxにcentosを入れ、apacheでwebサーバ公開するまでを行います。

まず、vagrant(ベイグラント)とは、

Vagrant(ベイグラント)は、FLOSSの仮想機械を構築するためのソフトウェアである[2]。構成情報を記述した設定ファイル (Vagrantfile) を元に、仮想環境の構築から設定までを自動的に行うことができる[3]。(以下略)

 

 

事前準備

環境は、Windowsで進めていきますが、

Macでもほとんど同様の手順で問題ないと思います。

事前準備として、

・virtualboxのダウンロード

・vagrantのダウンロード

が必要です。

既にダウンロード済みの人は飛ばしてください。

ダウンロードが済んでいない方は以下のリンクからどうぞ。

virtualboxはこちら。

https://www.virtualbox.org/wiki/Downloads

vagrantはこちら。

https://www.vagrantup.com/

仮想環境を作成

まずコマンドプロンプトを開きます。

(windowsキー + R を同時押しし、cmdと入力すると開けます)

コマンドプロンプトが開けたのを確認したら、以下のコマンドを入力します。

> vagrant box add centos/7

その後、どの仮想マシンを使用するか聞かれますので、3番のvirtualboxを選択します。

もし、ここでエラーが出た場合、vagrantがインストールできていない可能性があります。

==> vagrant: A new version of Vagrant is available: 2.2.6 (installed version: 2.2.4)!
==> vagrant: To upgrade visit: https://www.vagrantup.com/downloads.html

==> box: Loading metadata for box 'centos/7'
    box: URL: https://vagrantcloud.com/centos/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) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop

Enter your choice: 3
==> box: Adding box 'centos/7' (v1905.1) for provider: virtualbox
The box you're attempting to add already exists. Remove it before
adding it again or add it with the `--force` flag.

Name: centos/7
Provider: virtualbox
Version: 1905.1

私の場合は、既にboxが存在していたので、alredy existsと表示されましたが、boxが存在していない場合は、Successfully が表示されるようです。

念のため、boxが追加されたか確認します。

> vagrant box list
centos/7 (v1905.1)

これで、boxが追加されました。

次に、vagrantfileを作成します。

このファイルは、仮想環境を作成する際の設定ファイルです。

まずは、vagrantfileを作成するためのディレクトリを作成し、移動します。

mkdir centos7
cd centos7

まず初期設定をします。

vagrant init centos/7

こちらのコマンドを入力すると、以下のメッセージが表示され、「vagratnfile」が作成されます。

A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

念のため、vagrantfileが作成されたことを確認しましょう。

> dir

仮想マシンを起動する

> vagrant up

これで、仮想環境の起動ができました。

virtualboxから確認すると、「実行中」となっていることがわかると思います。

次にIPアドレスを設定します。

一度、仮想環境を停止させます。

> vagrant halt

その後、vagrantfileを開き、編集します。

手順通りに進めていれば、vagrantfileは、「C:Usersユーザ名centos7」に保存されていると思います。

プログラムからメモ帳を開き、編集しましょう。

以下を追記し、保存します。

config.vm.network "private_network", ip: "192.168.56.xxx"

192.168.56.xxxの部分には好きなIPアドレスを設定します。

例えば、「192.168.56.100」を設定してみましょう。

もう一度、仮想マシンを起動させます。

> vagrant up

起動できましたか?

もし、起動できなかった場合は、IPアドレスを変更して、もう一度起動してみましょう。

teratermからsshを行う

IPアドレスに先ほど設定したIPアドレスを。

設定していない場合は、「127.0.0.1 2222」で良かった気がします。

ユーザ名には「vagrant」と入力し、

パスフレーズには、RSA/DSA/ECDSA/ED25519鍵を使う を選択します。

秘密鍵は、vagrantfileと同階層の「.vagrantmachinesdefaultvirtualboxprivate_key」を使用します。

これで、teratermからのsshができます。

ただ、これだと面倒ですよね。

パスワード認証によるログインを設定

sshでログイン後、ユーザを作成します。

teratermでのログインが面倒という場合は、コマンドプロンプトからvagrant sshでもログインが可能です。

ログインができましたら、以下のコマンドでユーザを作成します。

> sudo useradd ユーザ名

作成したユーザにパスワードを設定する。

> sudo passwd ユーザ名

これで、ユーザの作成、パスワードの設定が完了しましたが、これだけでは、パスワード認証でのログインはできません。

パスワード認証でのログインを許可する

> sudo vi /etc/ssh/sshd_config

このファイル内にある

PasswordAuthentication no

の行を

PasswordAuthentication yes

に書き換えます。

( / で先頭からの検索が行えます)

sshdを再起動し、変更を適用します。

> sudo systemctl restart sshd

これで、作成したユーザと設定したパスワードでログインができるようになりました。

作成したユーザにsudo権限を与える

先程作成したユーザでは、sudo(管理者として実行)できないため、権限を記述します。

> sudo visudo

ファイルを編集し、以下を追記します。

ユーザ名 ALL=NOPASSWD: ALL

ユーザ名には、先ほど作成したユーザ名を指定します。

これで、sudoコマンドをパスワードなしで実行できるようになります。

注意

パスワードなしで管理者権限を実行できてしまうようになるため、扱いに

ApacheでWebサーバを建てる

apacheをインストールします。

> sudo yum -y install httpd

インストールができたら、起動してみましょう。

> sudo systemctl start httpd

もし、これで起動できなかった場合は、

> sudo /etc/init.d/httpd start

起動できているか確認をします。

statusで確認することもできますが、プロセスの起動で確認を行います。

> ps -ef | grep httpd

apacheの公開ディレクトリにファイルを作成します。

公開ディレクトリは、「/var/www/html/」です。

こちらにファイルを作成します。

> sudo vi /var/www/html/index.html

中身を記述します。

<h1>Hellow world!</h1>

保存をしたら、ブラウザからサーバに設定したIPアドレスにアクセスします。

Apacheのキャッシュを有効にする

キャッシュを格納するディレクトリを作成します。

> sudo mkidr p /var/www/cache

念のため、権限付与しておきます。

> sudo chmod 777 /var/www/cache

キャッシュのためのモジュール読み込みを記述します。

> sudo vi /etc/httpd/conf/httpd.conf

以下を追記

LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
<IfModule mod_cache.c>
  <IfModule mod_cache_disk.c>
    CacheRoot /var/www/cache
    CacheEnable disk /
    CacheDirLevels 5
    CacheDirLength 3
  </IfModule>
  CacheIgnoreCacheControl On
  CacheIgnoreNoLastMod On
  CacheDefaultExpire  100000
  CacheMaxExpire 1728000000
</IfModule>

apacheの設定を有効

> httpd -M

apacheを再起動

> sudo systemctl restart httpd

もしくは、

> sudo /etc/init.d/httpd restart

キャッシュファイルが作成されているか確認します。

Webページアクセス後、

> ls /var/www/cache

を実行し、ファイルが作成されていれば、問題ないです。

Apacheの自動起動設定をする

サーバを再起動すると、apacheも停止するため、再起動後には、apacheを起動しなおす必要があります。

それだと面倒なため、自動起動設定をしておきます。

> sudo chkconfig httpd on

設定ができているか確認します。

> chkconfig --list httpd

実行レベル2,3,4,5がonになっていれば設定完了です。

日本語、時間に対応させる

日本語関連のパッケージをまとめてインストールする。

> sudo yum -y groupinstall "Japanese Support"

システムロケールを設定

> sudo yum -y install ibus-kkc vlgothic-*
> sudo localectl set-locale LANG=ja_JP.UTF-8
> source /etc/locale.conf

マニュアルを日本語化する。

マニュアルを確認します

> man ls

英語の状態なので、日本語に変更します。

> sudo yum -y install man-pages-ja

もう一度マニュアルを確認します。

日本語になっていれば、完了です。

> man ls

キーボードを変更

> localectl status
   System Locale: LANG=ja_JP.UTF-8
       VC Keymap: us
      X11 Layout: n/a 

VC Keymapの値が初期だとusとかになっていると思うので、ja106に変更します。

> sudo localectl set-keymap jp106

もう一度確認してみましょう。

> localectl status
    System Locale: LANG=ja_JP.UTF-8
       VC Keymap: jp106
      X11 Layout: jp
       X11 Model: jp106

ちなみにjp106というのは、以下の写真のようなキーボード配置のことです。

これで環境の設定は終了です。

お疲れさまでした。

コメントを残す

CAPTCHA


関連キーワード