🪬

VagrantでCentOS7の仮想環境を構築

2019/03/27に公開

今回はタイトルの通りCentOS7で仮想環境を構築したので、その過程を記録していきます。

ただし仮想サーバーを作っただけで中身はまっさらなので、必要なソフトウェアは今後入れていきたいと思います。

今回は以下の記事を元に進めました。

https://qiita.com/sudachi808/items/3614fd90f9025973de4b

また Vagrant コマンドの一覧など参考になった記事も載せておきます。

環境

  • macOS Mojave 10.14.6
  • VirtualBox(ver6.0.14)
  • Vagrant(ver2.2.6)
  • CentOS Linux release 7.7.1908 (Core)

VirtualBoxをインストール

仮想環境を作るためのソフトをインストールする。

今回は「VirtualBox」をインストール >> https://www.virtualbox.org/

Vagrantをインストール

Vagrantとは仮想化ソフト(VirtualBox)を使用し、コマンドを入力することで仮想環境を管理したり構築したりできるツールです。

インストールはこちらから >> https://www.vagrantup.com/

仮想化ソフトは他にもいくつかあるそうですが「VirtualBox」を使っていれば良いみたいです。

参考サイト >> こちら

インストールしたらバージョンを確認してみる。

$ vagrant --version
Vagrant 2.2.6

インストールされていますね。

CentOS7の環境を作成

必要なソフトをインストールしたので仮想環境を構築していきます。

boxを追加する

boxとはOSのディスクイメージファイルで、これを追加することで仮想環境を作成できる。

https://app.vagrantup.com/centos/boxes/7

上記のリンクの公式を確認すると「centos/7」があるのでこれを取得する。

VagrantCloud にある box を追加する場合は名前だけでも良い。

vagrant box add centos/7

name を「centos/7」とし、実行すると provider は何かと聞かれるので「virtualbox」の「3」を選択する。

$ vagrant box add centos/7
 ==> box: Loading metadata for box 'https://app.vagrantup.com/centos/boxes/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' (v1902.01) for provider: virtualbox
     box: Downloading: https://vagrantcloud.com/centos/boxes/7/versions/1902.01/providers/virtualbox.box
     box: Download redirected to host: cloud.centos.org
 ==> box: Successfully added box 'centos/7' (v1905.1) for 'virtualbox'!

Successfulluy となったので、box がちゃんと追加されたか確認する。

$ vagrant box list
centos/7 (virtualbox, 1905.1)

これで追加されました。

初期設定

「Vagrantfile」という設定ファイルを作成します。

まず「CentOS7」というディレクトリを作って、そこに環境設定をしていきたいと思います。

mkdir CentOS7
cd CentOS7

これでディレクトリが作成され移動したので、ここに初期設定をしていきます。

$ vagrant init centos/7
 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」という設定ファイルが作成されます。

Finder で確認するとファイルができていました。

FinderのCentOS7フォルダに「Vagrantfile」が入っている

このファイルは仮想マシンを起動する際のconfigやprovisionが記述してあったり、IPアドレスなどの各種設定が記載されています。

また、このあと使う「vagrant up」などを使用していけます。

「Vagrantfile」の詳しい設定などは以下の記事が参考になると思います。

http://at-grandpa.hatenablog.jp/entry/2013/10/01/015501

「status」で確認すると仮想環境の状態を確認できます。

$ 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.

「default」が仮想マシンの名前で、「not created」がまだ作成されていないという状態を表しています。

仮想マシンを起動する

初期設定が終わったので「up」というコマンドで起動してみます。

$ vagrant up
 Bringing machine 'default' up with 'virtualbox' provider...
 ==> default: Importing base box 'centos/7'...
 ==> default: Matching MAC address for NAT networking...
 ==> default: Checking if box 'centos/7' version '1902.01' is up to date...
 ==> default: Setting the name of the VM: CentOS7_default_1553647485601_31203
 ==> 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: 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: Rsyncing folder: /Users/hogehoge/CentOS7/ => /vagrant

起動できたかを「status」で確認すると。

$ 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`.

先ほどの状態の「not created」 から「running」に変わりました。

「VirtualBox」でも確認してみると。

VirtualBoxで確認している画像

ちゃんと実行中になっています。

仮想マシンにログインする

仮想マシンが起動したので「ssh」でログインしてみます。

$ vagrant ssh
[vagrant@localhost ~]$

これでログインできましたので、バージョンを確認してみます。

なおユーザーはデフォルトでは vagran になっていますね。

CentOS のバージョンは、/etc/redhat-release ファイルの中身を見れば確認できます。

[vagrant@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

仮想マシンを停止する

まずはログアウトします。logoutは「exit」もしくは「control + D」でできます。

[vagrant@localhost ~]$ exit
logout
Connection to 127.0.0.1 closed.

これでログアウトができました。次は仮想マシンを停止します。

停止は「halt」コマンドでできます。

$ vagrant halt
 ==> default: Attempting graceful shutdown of VM...

停止したら状態を確認してみましょう。状態の確認は「status」ですね。

$ vagrant status
 Current machine states:

 default                   poweroff (virtualbox)

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

「running」から「poweroff」に変わりました。

これで仮想マシンの起動→ログイン→ログアウト→停止の基本的な流れができるようになりましたので、あとは必要なソフトを入れて構築していけば良いでしょう。

まとめ

今回はまっさらな仮想マシンを構築するまでを書いてきました。

大まかな流れをまとめると。

  • 「VirtualBox」と「Vagrant」をインストールする
  • 「$ vagrant box add centos/7」でboxを追加する
  • 初期設定でVagrantfileを作成する
  • 「$ vagrant up」で仮想マシンを起動
  • 「$ vagrant ssh」でログイン
  • 「$ exit」でログアウト
  • 「$ vagrant halt」で停止

となります。

一応ここまで環境構築ができたのでまとめてみました。

今後は必要なソフトをインストールしていろいろ試していきたいと思います。

Discussion