概要
Windows10にVagrant + VirtualBoxでCentOS7の仮想環境を構築したときの記録。
Vagrant/VirtualBoxの導入
Vagrantのインストール
VirtualBoxのサイトのダウンロードページからインストールファイルをダウンロード。
- Windows/64bitを選択してDownload
- vagrant_2.2.14_x86_64.msi(232MB)
ダウンロードしたmsiファイルを実行
- Welcome to ….→Next
- End-User Lisence Agreement→accept & Next
- C:\HashiCorp\Vagrant→Next
- Ready to install Vagrant→Install
- Completed …→Finish
- You must restart your system …→Yes/No
- Restart
コンソールを起動し、インストールされたVagrantのバージョンを確認。
1 2 |
>vagrant -v Vagrant 2.2.14 |
VirtualBoxのインストール
VirtualBoxのサイトからパッケージをダウンロード。
- VirtualBox 6.1.18 platform packages
- Windows hosts
- VirtualBox-6.1.18-142142-Win.exe
インストール
- Welcome to …→Next
- Custom Setup
- インストール先はC:\Progrm Files\Oracle\VirtualBox
- ショートカット作成選択
- Warning Network Interfaces→Yes
- Ready to Install→Install
- … installation is complete→Finish
VisuaruBoxを起動してバージョン確認。
- バージョン 6.1.18 r142142 (Qt5.6.2)
拡張版のインストール
本体ダウンロードのリンクの下に拡張版のダウンロードがある。説明書きに”Support for USB 2.0 and USB 3.0 devices, …”とあって、USBを有効が有効になる。
- VirtualBox 6.1.18 Oracle VM VirtualBox Extension Pack→download
- VirtualBox起動
- ファイル→環境設定→機能拡張
- 右方のアイコン→ファイル選択→インストール
この段階ででSSD 147/237GB freeでインストール前と容量が変わっていない。
Boxの導入
Vagrant導入当初BoxとしてVagrant CloudのCentos/7を選んだが、共有フォルダ-設定がうまくいかなかったのでbento/Centos-7.7に変更した。
Boxのインストール
仮想環境のBoxをインストール。Vagrant Cloudで提供されているbento/CentosOS-7.7を選んだ。
- Vagrantからのインストールの場合は以下のコマンド。
- >vagrant box add bento/centos-7.7
- ダウンロードに10分程度かかる
- 他のサイトからの場合、名前を指定してインストールする場合は以下のコマンド。
>vagrant box add name url/local_file
1 2 3 4 5 6 7 8 |
C:\>vagrant box add bento/centos-7.7 ==> box: Loading metadata for box 'bento/centos-7.7' box: URL: https://vagrantcloud.com/bento/centos-7.7 ==> box: Adding box 'bento/centos-7.7' (v202005.12.0) for provider: virtualbox box: Downloading: https://vagrantcloud.com/bento/boxes/centos-7.7/versions/202005.12.0/providers/virtualbox.box Download redirected to host: vagrantcloud-files-production.s3.amazonaws.com box: ==> box: Successfully added box 'bento/centos-7.7' (v202005.12.0) for 'virtualbox'! |
インストールされたBoxの存在確認(前にインストールしたCentos/7のBoxも残っている)。
1 2 3 |
>vagrant box list bento/centos-7.7 (virtualbox, 202005.12.0) centos/7 (virtualbox, 2004.01) |
Boxファイルの格納場所
Windows
ユーザーフォルダー\.vagrant.d\boxes
仮想環境のVagrant設定
ドライブ直下にVagrantディレクトリー、その下にCentOS7のディレクトリーを作成し、そこに移動。
1 2 3 4 |
>mkdir \vagrant >cd \vagrant >mkdir centos7 >cd centos7 |
移動後のディレクトリー内で初期設定。この操作によってディレクトリー内にvagrantfileが作成されて、仮想環境が利用可能になる。
1 2 3 4 5 6 7 |
C:\>cd \vagrant\centos7 C:\vagrant\centos7>vagrant init bento/centos-7.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. |
この時点でSSD 140/237GB free。
仮想環境の利用
仮想環境の起動
vagrant up
コマンドで仮想環境を起動。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
C:\vagrant\centos7>vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Importing base box 'bento/centos-7.7'... ==> default: Matching MAC address for NAT networking... ==> default: Checking if box 'bento/centos-7.7' version '202005.12.0' is up to date... ==> default: Setting the name of the VM: centos7_default_1614080986394_67691 ==> 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] GuestAdditions versions on your host (6.1.18) and guest (6.1.6) do not match. Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.jaist.ac.jp * extras: ftp.jaist.ac.jp * updates: ftp.jaist.ac.jp Resolving Dependencies --> Running transaction check ---> Package centos-release.x86_64 0:7-8.2003.0.el7.centos will be updated ---> Package centos-release.x86_64 0:7-9.2009.1.el7.centos will be an update --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Updating: centos-release x86_64 7-9.2009.1.el7.centos updates 27 k Transaction Summary ================================================================================ Upgrade 1 Package Total download size: 27 k Downloading packages: No Presto metadata available for updates Running transaction check Running transaction test Transaction test succeeded Running transaction Updating : centos-release-7-9.2009.1.el7.centos.x86_64 1/2 Cleanup : centos-release-7-8.2003.0.el7.centos.x86_64 2/2 Verifying : centos-release-7-9.2009.1.el7.centos.x86_64 1/2 Verifying : centos-release-7-8.2003.0.el7.centos.x86_64 2/2 Updated: centos-release.x86_64 0:7-9.2009.1.el7.centos Complete! Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.jaist.ac.jp * extras: ftp.jaist.ac.jp * updates: ftp.jaist.ac.jp No package kernel-devel-3.10.0-1127.el7.x86_64 available. Error: Nothing to do Unmounting Virtualbox Guest Additions ISO from: /mnt umount: /mnt: not mounted ==> default: Checking for guest additions in VM... The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed! umount /mnt Stdout from the command: Stderr from the command: umount: /mnt: not mounted |
仮想環境へのログイン
現バージョンでは、Windowsでもvagrant ssh
で接続できる。
1 2 |
>vagrant ssh [vagrant@localhost ~]$ |
バージョンを確認。
1 2 3 4 5 |
C:\vagrant\centos7>vagrant ssh This system is built by the Bento project by Chef Software More information can be found at https://github.com/chef/bento [vagrant@localhost ~]$ |
実行中の仮想環境の確認
仮想マシンを立ち上げたコンソールとは別のコンソールを立ち上げ、vagrant status
で確認。
1 2 3 4 5 6 7 8 9 |
C:\vagrant\centos7>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`. |
仮想環境からのログアウト
CentOSのexit
コマンドでログアウト。
1 2 3 |
[vagrant@localhost ~]$ exit logout Connection to 127.0.0.1 closed. |
仮想環境の停止
Windowsプロンプトでvagran halt
コマンドを実行して停止。
1 2 |
>vagrant halt ==> default: Attempting graceful shutdown of VM... |
仮想環境停止の確認
停止後のWindows環境でvagrant status
を実行すると仮想環境の停止を確認できる。
1 2 3 4 5 6 |
>vagrant status Current machine states: default poweroff (virtualbox) The VM is powered off. To restart the VM, simply run `vagrant up` |
ロケール/タイムゾーンの設定
ロケール/タイムゾーンの確認
現在のロケール、タイムゾーンはdate
、locale
、localectl
コマンドで確認できる。インストール直後はUSになっている。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
[vagrant@localhost ~]$ date Wed Feb 24 08:43:47 UTC 2021 [vagrant@localhost ~]$ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= [vagrant@localhost ~]$ localectl System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: n/a |
ロケールの設定
ロケールの設定はlocalectl
をsuで実行。
sudo localectl set-locale LANG=ja_JP.UTF-8
設定の反映には再接続が必要。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[vagrant@localhost ~]$ sudo localectl set-locale LANG=ja_JP.UTF-8 [vagrant@localhost ~]$ date Wed Feb 24 08:47:31 UTC 2021 [vagrant@localhost ~]$ exit logout Connection to 127.0.0.1 closed. C:\vagrant\centos7>vagrant ssh Last login: Wed Feb 24 04:57:38 2021 from 10.0.2.2 Last login: Wed Feb 24 04:57:38 2021 from 10.0.2.2 This system is built by the Bento project by Chef Software More information can be found at https://github.com/chef/bento [vagrant@localhost ~]$ date 2021年 2月 24日 水曜日 08:47:49 UTC |
タイムゾーンの設定
現在のタイムゾーンはtimedatectl
コマンドで確認できる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[vagrant@localhost ~]$ timedatectl Local time: 水 2021-02-24 08:57:31 UTC Universal time: 水 2021-02-24 08:57:31 UTC RTC time: 水 2021-02-24 07:00:39 Time zone: UTC (UTC, +0000) NTP enabled: yes NTP synchronized: yes RTC in local TZ: yes DST active: n/a Warning: The system is configured to read the RTC time in the local time zone. This mode can not be fully supported. It will create various problems with time zone changes and daylight saving time adjustments. The RTC time is never updated, it relies on external facilities to maintain it. If at all possible, use RTC in UTC by calling 'timedatectl set-local-rtc 0'. |
とりあえずWarningは置いておく。
設定可能なタイムゾーンの一覧は以下のとおり。
timedatectl list-timezones
1 2 3 4 5 6 7 |
[vagrant@localhost ~]$ timedatectl list-timezones Africa/Abidjan Africa/Accra Africa/Addis_Ababa ..... Asia/Tokyo ..... |
タイムゾーンの設定はtimdatectl
をsuで実行。
sudo timedatectl set-timezone [タイムゾーン名]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[vagrant@localhost ~]$ sudo timedatectl set-timezone Asia/Tokyo sudo timedatectl set-timezone Asia/Tokyo [vagrant@localhost ~]$ timedatectl timedatectl Local time: 水 2021-02-24 18:00:43 JST Universal time: 水 2021-02-24 09:00:43 UTC RTC time: 水 2021-02-24 18:00:44 Time zone: Asia/Tokyo (JST, +0900) NTP enabled: yes NTP synchronized: yes RTC in local TZ: yes DST active: n/a Warning: The system is configured to read the RTC time in the local time zone. This mode can not be fully supported. It will create various problems with time zone changes and daylight saving time adjustments. The RTC time is never updated, it relies on external facilities to maintain it. If at all possible, use RTC in UTC by calling 'timedatectl set-local-rtc 0'. |