概要
- vagrantで構築した複数のCentOS7の仮想マシンのホストオンリーアダプターと内部ネットワークの設定方法のまとめ.
背景
- mac m1でPythonで作る対話システムを学んでいるとopenNMTが使えない場面が出たため,Windowsで行なうことにした.
- 環境を作るところからだが,ただこれまでと同じように作っても面白くないと思い,ちゃんとやった事のないvagrantとdockerで環境を構築しようと考えた.
- そこで一時的に対話システムを止めてDockerの本を読んで勉強し始めた.
- が,思ったよりもvagrantでdockerの本用の環境を作成するのに時間がかかったのでまとめる.
- 以下のようなVagrantfileを作成
- 任意の文字列と任意のIPアドレスは重複しないように設定する
- 任意の内部ネットワーク名は同じ文字列を設定にする
#-*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "bento/centos-7.8"
config.vm.define "任意の文字列" do |machine|
# ホストオンリーアダプター
machine.vm.network "private_network", ip: "任意のIPアドレス", auto_config:false
# 内部ネットワーク
machine.vm.network "private_network", ip: "任意のIPアドレス", virtualbox__intnet: "任意の内部ネットワーク名"
end
config.vm.define "任意の文字列" do |machine|
# ホストオンリーアダプター
machine.vm.network "private_network", ip: "任意のIPアドレス", auto_config:false
# 内部ネットワーク
machine.vm.network "private_network", ip: "任意のIPアドレス", virtualbox__intnet: "任意の内部ネットワーク名"
end
end
CentOS7での設定
- 各VMに vargrant ssh vm名 でログインして管理者権限で以下のコマンドを実行
# 上記のVagrantfileのように記述すればeth1がホストオンリーアダプター
# eth2が内部ネットワーク
nmcli device connection eth1
nmcli device connection eth2
# ログインしているVMのVagrant fileで設定したホストオンリーアダプターのIPアドレスを任意のIPアドレスと置換する
nmcli con mod eth1 ipv4.addresses "任意のIPアドレス/24"
# ログインしているVMのVagrant fileで設定した内部ネットワークのIPアドレスを任意のIPアドレスと置換する
nmcli con mod eth1 ipv4.addresses "任意のIPアドレス/24"
nmcli con mod eth1 ipv4.method "manual"
nmcli con mod eth2 ipv4.method "manual"
nmcli device disconnection eth1
nmcli device disconnection eth2
nmcli device connection eth1
nmcli device connection eth2