Lxdコンテナに静的IPアドレスを設定しようとしています。コンテナは以下で作られています:
nonroot $ lxc起動画像:centos/7/AMD64 my_centos
かなりbogstandardのlxd(デフォルトのapt-get install lxd; service lxd start)環境で。今、私はそのことを静的IP 10.0.3.50(たとえば)にしたいと思います。
いくつかグーグルした後(なぜこれがサイトのドキュメントからはっきりしていないのか私にはまだはっきりしていません)、それを行うためにハッキングしなければならないプロファイル情報がsqliteデータベースにあることがわかりました。はい:
lxc profile copy default my_centos
lxc profile edit my_centos
...
name: my_centos
config: {}
description: ""
devices:
eth0:
name: eth0
nictype: bridged
parent: lxcbr0
type: nic
そしてそれは私にそれを変更させません:
name: my_centos
config:
raw.lxc:
lxc.network.type = veth
lxc.network.name = eth0
lxc.network.link = lxcbr0
lxc.network.ipv4 = 10.0.3.50/24
lxc.network.ipv4.gateway = 10.0.3.1
lxc.network.flags = up
description: ""
devices:
eth0:
name: eth0
nictype: bridged
parent: lxcbr0
type: nic
エラーは次のとおりです。構成解析エラー:インターフェイス固有のipv4/ipv6lxc.networkキーのみが許可されます
これはおそらくnictypeとeth0のタイプに関係していますが、デバイスを削除しても同じ効果があります。
誰かがこれを行う正しい方法で私を教えてもらえますか?
これは LXDコンテナと静的IPを使用したネットワーク に関連していますが、これをlxdで設定したいと思います(つまり、構成ファイルではなくプロファイルを使用します)。
静的IPを持つコンテナーが必要で、ローカルネットワーク上でそれらを表示したいという同様の問題がありました。
Lxdプロファイルを介してそれを行う方法を理解していません。ただし、静的IPを使用して単一のコンテナーを作成する手順は次のとおりです。次に、コンテナのクローンを作成し、/ etc/network/interfacesファイルでそのIPを変更するだけのスクリプトを記述して、静的IPを使用してコンテナを作成することができます。
手順は次のとおりです。
ホストマシンにブリッジを作成します。
編集:/ etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#auto eth0
#iface eth0 inet dhcp
auto br0
iface br0 inet static
address 172.16.115.208
broadcast 172.16.119.255
netmask 255.255.248.0
gateway 172.16.112.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
IPアドレスを自分の値に置き換えます。
「bridge_ports」はeth0をブリッジに追加することに注意してください。
ネットワークを再起動します。
Sudo /etc/init.d/networking restart
新しい橋を立ち上げる:
Sudo ifup br0
この時点で、新しく作成されたブリッジを介したネットワーク接続がまだあるかどうかを確認する必要があります。
Lxcプロファイルを編集し、親を新しく作成されたブリッジとして設定します。
lxc profile edit default<or your container's profile name>
- parent: lxcbr0
+ parent: br0
コンテナにアクセスし、静的IPアドレスを設定します。
lxc exec my-container-name /bin/bash
Sudo vim /etc/network/interfaces
#auto eth0
#iface eth0 inet dhcp
auto eth0
iface eth0 inet static
address 172.16.115.252
broadcast 172.16.119.255
netmask 255.255.248.0
gateway 172.16.112.1
繰り返しますが、それに応じてIPアドレスを変更します。コンテナを再起動し、新しいIPが割り当てられているかどうかを確認します。
lxc info my-container-name
これで、コンテナに静的IPが割り当てられ、ネットワーク上に表示されます。これで、クローンを作成し、インターフェイスファイルのIP値を変更して、静的IPが異なる複数のコンテナーを取得するスクリプトを作成できます。
外部dnsmasq構成ファイルを追加することにより、lxd-bridgeに静的IPアドレスを割り当てさせることができます。
/ etc/default/lxd-bridgeを開くと、追加する場所が見つかります。
LXD_CONFILE = ""
そこにファイル名を挿入します。 lxd_dnsmasq.confのようなもの。好きな名前を付けることができます。
次に、ファイルを作成し、コンテナごとにこのようなエントリを追加します。
dhcp-Host = containername、ipaddress
これを設定するための詳細な手順へのリンクは次のとおりです。 lxd static ip addresss