ローカルのゲスト os に開発環境を作る
0時に寝て7時に起きた。いろいろうまくいってない。
vagrant 再び⌗
rpm でパッケージングされた openldap サーバーの動作検証をするために vagrant で rockylinux/8 Vagrant box の環境を構築する。 rockylinux 8 だと次のようなエラーが発生した。
VBoxManage: error: Failed to open OVF file 'path/to/.vagrant.d/boxes/rockylinux-VAGRANTSLASH-8/7.0.0/virtualbox/box.ovf' (VERR_FILE_NOT_FOUND)
既知のバグとして次の forum にワークアラウンドが書かれている。
uefi なマシンのせいなのかな?詳細を理解していないけど Vagrantfile を次のようにする。
Vagrant.configure("2") do |config|
config.vm.box = "rockylinux/8"
config.vm.provider "virtualbox" do |domain|
domain.customize ["modifyvm", :id, "--firmware", "efi"]
end
end
修正済みのイメージをダウンロードするようにメタデータを作成する。
$ vi box-metadata.json
{
"name" : "rockylinux/8",
"description" : "Rocky Linux 8 7.0.0 Bugfix",
"versions" : [
{
"version" : "7.0.1-20221213.0",
"providers" : [
{
"name" : "virtualbox",
"url" : "http://dl.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-Vagrant-Vbox-8.7-20221213.0.x86_64.box"
}
]
}
]
}
再度 vagrant の環境を作り直す。
$ vagrant box add box-metadata.json
$ rm -rf .vagrant/ # 古い設定を削除
$ vagrant up
vagrant を使うのも4年ぶりになるかな。コンテナに慣れてしまうと久しぶり感がある。使い方を忘れていて調べながらやってた。
vagrant にポートフォワーディングの設定を追加⌗
$ vi Vagrantfile
...
config.vm.network "forwarded_port", guest: 389, host: 1389 # ldap
config.vm.network "forwarded_port", guest: 636, host: 1636 # ldaps
...
これでホスト os からゲスト os へ接続できる。
==> default: Forwarding ports...
default: 389 (guest) => 1389 (host) (adapter 1)
default: 636 (guest) => 1636 (host) (adapter 1)
default: 22 (guest) => 2222 (host) (adapter 1)
ここでは ldap サーバーに対して Apache Directory Studio で接続できるように ssh のポートフォワーディングを設定している。
scp でファイルを転送⌗
config を出力する。ssh の秘密鍵へのパス設定をしてくれるので scp のオプションに指定しなくて済む。
$ vagrant ssh-config > ssh.config
ポート番号も config に記載されているけれど、それは指定しないと scp できなかった。
$ scp -P 2200 -F ssh.config path/to/myfile vagrant@localhost:
vagrant ユーザーのパスワードも聞かれて vagrant を指定すればコピーできた。config を作ってもあまり便利ではなかった。
vagrant-scp というプラグインがあるのでインストールしてみる。
$ vagrant plugin install vagrant-scp
次のようにして使う。この方が簡単。
$ vagrant scp path/to/myfile ./ # 仮想マシンのホームディレクトリにコピーされる
Read other posts