仮想開発環境の構築トップページ


Vagrant から CentOS をインストールする

準備作業(フォルダ作成)

Vagrant のファイルを保存するためのフォルダを作成する.Vagrant では仮想マシンごとにフォルダを作成することになる.ここでは,「C:\Users\Rinsaka\MyVagrant\」に仮想マシンごとのフォルダを作成することにする.コマンドプロンプトを起動して,次のようなコマンドを入力し,フォルダを作成する.

C:\Users\Rinsaka>mkdir MyVagrant ⏎
C:\Users\Rinsaka>cd MyVagrant ⏎
C:\Users\Rinsaka\MyVagrant>mkdir MyCentOS ⏎
C:\Users\Rinsaka\MyVagrant>cd MyCentOS ⏎
C:\Users\Rinsaka\MyVagrant\MyCentOS>

Vagrantfile をダウンロードする

仮想マシンを設定,起動するための Vagrantfile を 「C:\Users\Rinsaka\MyVagrant\MyCentOS」 フォルダに設置する.これは,林坂が GitHub に公開しているファイルをダウンロードするとよい.

GitHub の CentOS 7.2 系 https://github.com/rinsaka/centos7vagrantfile にアクセスする.「Code」をクリックし,「Download ZIP」をクリックしてダウンロードする.

cent1-01

ダウンロードした ZIP ファイルを右クリックして,「すべて展開」する.

cent1-02

適当な場所に展開する.

cent1-03

展開したフォルダと,「C:\Users\Rinsaka\MyVagrant\MyCentOS」フォルダを開き,展開したファイルを「C:\Users\Rinsaka\MyVagrant\MyCentOS」に移動(またはコピー)する.

cent1-04

ファイルを移動した状態

cent1-05

移動した Vagrantfile を Visual Studio Code で覗いてみる.37行目に IP アドレスの設定項目がある.ここでは,仮想マシンに 192.168.33.110 の IP アドレスを設定するように記述している.もしも,複数の仮想マシンを同時に起動するのであれば,192.168.33.111 や 192.168.33.112 のように重複しない IP アドレスを設定すれば良い.

cent1-06

CentOS を起動する

ここからはコマンドプロンプトを使って作業する.コマンドプロンプトを起動して,「C:\Users\Rinsaka\MyVagrant\MyCentOS」フォルダに移動する.

C:\Users\Rinsaka>cd MyVagrant ⏎

C:\Users\Rinsaka\MyVagrant>cd MyCentOS ⏎

C:\Users\Rinsaka\MyVagrant\MyCentOS>

「C:\Users\Rinsaka\MyVagrant\MyCentOS」に Vagrantfile ファイルが存在することを確認する.

C:\Users\Rinsaka\MyVagrant\MyCentOS>dir ⏎
 ドライブ C のボリューム ラベルは OS です
 ボリューム シリアル番号は 9018-19A1 です

 C:\Users\Rinsaka\MyVagrant\MyCentOS のディレクトリ

2021/03/24  14:23    <DIR>          .
2021/03/24  14:23    <DIR>          ..
2021/03/24  14:23    <DIR>          .vagrant
2021/03/24  14:18             1,089 README.md
2021/03/24  14:18             3,257 Vagrantfile
               2 個のファイル               4,346 バイト
               3 個のディレクトリ  106,689,757,184 バイトの空き領域

C:\Users\Rinsaka\MyVagrant\MyCentOS>

vagrant statusコマンドで,現在の状態を確認する.また,仮想マシンが作成されていない (not created) と表示される.

C:\Users\Rinsaka\MyVagrant\MyCentOS>vagrant status ⏎
Current machine states:

default                   not created (virtualbox)

The environment has not yet been created. Run `vagrant up` to
create the environment. If a machine is not created, only the
default provider will be shown. So if a provider is not listed,
then the machine is not created for that environment.

C:\Users\Rinsaka\MyVagrant\MyCentOS>

次は仮想マシンを作成する.vagrant up コマンドで仮想マシンのイメージをダウンロードし,起動する.なおこの作業にはかなりの時間(数分以上)を要する.

C:\Users\Rinsaka\MyVagrant\MyCentOS>vagrant up ⏎
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'centos/7' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Loading metadata for box 'centos/7'
    default: URL: https://vagrantcloud.com/centos/7
==> default: Adding box 'centos/7' (v2004.01) for provider: virtualbox
    default: Downloading: https://vagrantcloud.com/centos/boxes/7/versions/2004.01/providers/virtualbox.box
Download redirected to host: cloud.centos.org
    default:
    default: Calculating and comparing box checksum...
==> default: Successfully added box 'centos/7' (v2004.01) for 'virtualbox'!
==> default: Importing base box 'centos/7'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'centos/7' version '2004.01' is up to date...
==> default: Setting the name of the VM: MyCentOS_default_1616563906868_56974
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> 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:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH 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: Configuring and enabling network interfaces...
==> default: Rsyncing folder: /cygdrive/c/Users/Rinsaka/MyVagrant/MyCentOS/ => /vagrant

C:\Users\Rinsaka\MyVagrant\MyCentOS>

CentOS のインストールと起動ができたはずなので,vagrant status コマンドで状況を確認してみる.今度は動作中 (running) と表示された.

C:\Users\Rinsaka\MyVagrant\MyCentOS>vagrant status ⏎
Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

C:\Users\Rinsaka\MyVagrant\MyCentOS>

起動した仮想マシンをシャットダウンしてみよう.vagrant halt コマンドを利用するだけでよい.

C:\Users\Rinsaka\MyVagrant\MyCentOS>vagrant halt ⏎
==> default: Attempting graceful shutdown of VM...

C:\Users\Rinsaka\MyVagrant\MyCentOS>vagrant status ⏎
Current machine states:

default                   poweroff (virtualbox)

The VM is powered off. To restart the VM, simply run `vagrant up`

C:\Users\Rinsaka\MyVagrant\MyCentOS>

シャットダウンした仮想マシンを再度起動してみよう.起動は先ほどと同じ vagrant up コマンドである.今度はインストールの必要がないので,先程よりも短い時間で起動できる.

C:\Users\Rinsaka\MyVagrant\MyCentOS>vagrant up ⏎
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'centos/7' version '2004.01' 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: Adapter 2: hostonly
==> 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: Warning: Connection aborted. Retrying...
    default: Warning: Connection reset. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
==> 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: Configuring and enabling network interfaces...
==> default: Rsyncing folder: /cygdrive/c/Users/Rinsaka/MyVagrant/MyCentOS/ => /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.

C:\Users\Rinsaka\MyVagrant\MyCentOS>

念の為,起動しているかどうかを確認しよう.

C:\Users\Rinsaka\MyVagrant\MyCentOS>vagrant status ⏎
Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

C:\Users\Rinsaka\MyVagrant\MyCentOS>

!!!重要事項!!!

上記のような手順で CentOS をインストールすると,vagrant というユーザが登録され,パスワードも vagrant になっていることに注意しよう.

マウントでエラーが発生する場合

コマンドプロンプトを使って vagrant up を実行したときに,マウントに関するエラーが表示されることがある.そのまま使っても問題ないが,エラーを解消するためには vagrant-vbguest プラグインをインストールするとよい.

C:\Users\Rinsaka>cd MyVagrant ⏎

C:\Users\Rinsaka\MyVagrant>cd MyCentOS ⏎

C:\Users\Rinsaka\MyVagrant\MyCentOS>vagrant plugin install vagrant-vbguest ⏎