未分類

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

更新日:

 

 

 

 

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

 

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

仮想機械の提供自体は、VirtualBoxをはじめとする仮想化ソフトウェアが行う。Vagrantは、これらソフトウェアが用意されているのを前提として、仮想機械の設定や立ち上げに特化している。このため、既存の仮想化ソフトウェア及び構成管理ソフトウェア(例: Chef英語版Salt英語版PuppetAnsible)をラップしたものとみなすこともできる。

wikipediaより引用

 

この説明だと少しわかりにくいですね。

簡単に言うと、vagrantとはvirtualboxを操るためのコマンドです。

 

事前準備

 

環境は、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と同階層の「.vagrant\machines\default\virtualbox\private_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というのは、以下の写真のようなキーボード配置のことです。

 

 

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

お疲れさまでした。

 

 

-未分類

Copyright© エンジニアの階段 , 2020 All Rights Reserved Powered by STINGER.