例えばこんな感じのVagrantfileからフォワードしているhost側のポートを抜き出したいとする
$ cat Vagrantfile
Vagrant.configure(2) do |config|
config.vm.box = "centos/7"
config.vm.hostname = "centos7"
config.vm.network "forwarded_port", host: 8080, guest: 80, host_ip: "127.0.0.1"
config.vm.network "forwarded_port", host: 18080, guest: 18080, host_ip: "127.0.0.1"
config.vm.network "forwarded_port", host: 10443, guest: 443, host_ip: "127.0.0.1"
config.vm.network "private_network", ip: "192.168.33.12"
config.vm.synced_folder ".", "/vagrant", type: "virtualbox", mount_options: ['dmode=777','fmode=744']
config.vm.provider "virtualbox" do |vb|
vb.name = "centos7"
vb.cpus = 2
vb.memory = 2048
end
end
抜き出し
$ cat Vagrantfile | perl -nle 'print $1 if /host: (\d+)/'
8080
18080
10443
行ごと表示したければprintの後の$1
を消すだけで良い
$ cat Vagrantfile | perl -nle 'print if /host: (\d+)/'
config.vm.network "forwarded_port", host: 8080, guest: 80, host_ip: "127.0.0.1"
config.vm.network "forwarded_port", host: 18080, guest: 18080, host_ip: "127.0.0.1"
config.vm.network "forwarded_port", host: 10443, guest: 443, host_ip: "127.0.0.1"