本資料ではゲストOSに192.168.56.101
の固定IPアドレスを付与し、ホストの「VirtualBox Host-Only Network」を使用してホストーゲスト間の通信を行います。以下のいずれかの設定が必要です。
192.168.xx.0/24
を確認します。xxが56であればそのまま使用可能です。Vagrantfile
に記述する、ゲストOSに割り当てる固定IPアドレスを適宜修正します。Vagrant Cloudで公開されている仮想マシンイメージを入手します。使用するBoxファイルはbento/centos-7.6
です。
以下のコマンドを実行ください。
DOS> cd <任意のフォルダ>
DOS> vagrant init bento/centos-7.6
任意のフォルダにsilver.zipを解凍します。silverフォルダ配下にVagrantfileおよびPostgreSQL構築に必要なファイル一式が展開されます。
Windowsのコマンドプロンプトを開き、展開したフォルダに移動します。
C:\work配下にsilverを展開した場合の実行例
DOS> cd C:\work\silver
Vagrantfileには、1台のゲストOSを起動しネットワーク環境の設定とPostgreSQLのインストールを行うよう定義されています。
「0. VirtualBoxのホストオンリーネットワークの確認」でネットワーク設定に問題がなければ、Vagrantコマンドでプロジェクトを開始します。
DOS> vagrant up
正しく環境構築が完了すると、ホスト側のコマンドプロンプトには以下のログが表示されています。
TeraTermなどのツールでゲストにログインします。
この時、vagrant
ユーザ、パスワード無し、鍵ファイルにsilver\.vagrant\machines\default\virtualbox\private_key
を指定します。
ゲストにログインした後は、postgresユーザにスイッチしてPostgreSQLに対する操作が行えます。
[vagrant@localhost ~]$ sudo su - postgres
[postgres@localhost ~]$ ps x
PID TTY STAT TIME COMMAND
5461 ? Ss 0:00 /usr/pgsql-11/bin/postmaster -D /home/postgres/data/
5463 ? Ss 0:00 postgres: logger
5465 ? Ss 0:00 postgres: checkpointer
5466 ? Ss 0:00 postgres: background writer
5467 ? Ss 0:00 postgres: walwriter
5468 ? Ss 0:00 postgres: autovacuum launcher
5469 ? Ss 0:00 postgres: stats collector
5470 ? Ss 0:00 postgres: logical replication launcher
[postgres@localhost ~]$ psql
psql (11.2)
Type "help" for help.
postgres=# SELECT * FROM dog;
id | name | kind | owner_cd
----+--------+--------------+----------
1 | Poppy | Westy | 1
2 | Mitten | mix | 1
3 | Pearl | mix | 2
4 | Luke | Duchshund | 3
5 | Robbin | Schnauzer | 4
6 | Andy | Schnauzer | 4
7 | Ace | Jack Russell | 5
(7 rows)
以降は講義資料等に従って各自で学習を進めてください。
一度作成したゲスト環境は、通常のLinux環境同様に起動・停止が可能です。
[vagrant@localhost ~]$ sudo su -
[root@localhost ~]# shutdown -h now
VirtualBoxの管理コンソール等から「pg-silver」を選択して起動します。
[vagrant@localhost ~]$ sudo su -
[root@localhost ~]# systemctl start postgresql-11.service
[root@localhost ~]# su - postgres
[postgres@localhost ~]$ ps x
PID TTY STAT TIME COMMAND
3291 ? Ss 0:00 /usr/pgsql-11/bin/postmaster -D /home/postgres/data/
3293 ? Ss 0:00 postgres: logger
3295 ? Ss 0:00 postgres: checkpointer
3296 ? Ss 0:00 postgres: background writer
3297 ? Ss 0:00 postgres: walwriter
3298 ? Ss 0:00 postgres: autovacuum launcher
3299 ? Ss 0:00 postgres: stats collector
3300 ? Ss 0:00 postgres: logical replication launcher
構築検証や設定変更を繰り返した後、このゲストOSを完全に除去する場合、以下のように実行します。
DOS> cd C:\work\silver
DOS> vagrant destroy
再度Vagrantfileに従って実習環境を構築するには、
DOS> vagrant up
とします。
SlackのPostgreSQL部屋にご参加いただき、ご自由に発言ください。
postgresql-hackers-jp.herokuapp.com