私が作成しているUbuntuイメージには、eth0とeth1という2つのネットワークインターフェイスがあります。この画像からクラウドインスタンスを作成したいと思います。作成されるすべてのクラウドインスタンスに対して、各インスタンスにはこれら2つのネットワークインターフェイスがあります。ただし、要件は、インターフェイス名をそれぞれインターフェイス0とインターフェイス1に変更する必要があることです。 cloud-initを使用してインスタンスの起動時期を設定するには?
答え1
cloud-initのドキュメントは、このセクションの次の例を示しています。ネットワーク構成バージョン2:
# all cards on second PCI bus
match:
name: enp2*
# fixed MAC address
match:
macaddress: 11:22:33:AA:BB:FF
# first card of driver ``ixgbe``
match:
driver: ixgbe
name: en*s0
一致が単一のデバイスに限定されている限り、それを使用して目的のset-name:
インターフェイス名を定義できます。
set-name: <(scalar)>
パスやMACなどの一意の属性を一致させる場合、または「常に1つのWi-Fiデバイスしかありません」などの追加の仮定を使用している場合は、1つのデバイスのみに一致するように一致ルールを作成できます。その後、このプロパティを使用して、udevのifnamesのデフォルト名よりも具体的で理想的で、より良い名前をデバイスに提供できます。一致ルールを満たすすべての接続デバイスは名前が変更されず、元のカーネル名が保持されます(そしてdmesgにエラーが表示されます)。
たとえば、
$ cat /etc/cloud/cloud.cfg.d/custom-networking.cfg
network:
version: 2
ethernets:
interface0:
match:
mac_address: "52:54:00:12:34:00"
set-name: interface0
addresses:
- 192.168.1.10/255.255.255.0
gateway4: 192.168.1.254