인스턴스 시작 시 네트워크 인터페이스 이름 바꾸기 ubuntu cloud-init

인스턴스 시작 시 네트워크 인터페이스 이름 바꾸기 ubuntu cloud-init

제가 만들고 있는 Ubuntu 이미지에는 eth0과 eth1이라는 두 개의 네트워크 인터페이스가 있습니다. 이 이미지에서 클라우드 인스턴스를 생성하고 싶습니다. 생성되는 모든 클라우드 인스턴스에 대해 각 인스턴스에는 이러한 두 개의 네트워크 인터페이스가 있습니다. 그러나 요구 사항은 인터페이스 이름을 각각 인터페이스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과 같은 고유한 속성을 일치시키거나 "항상 하나의 Wi-Fi 장치만 있습니다"와 같은 추가 가정을 사용하는 경우 하나의 장치만 일치하도록 일치 규칙을 작성할 수 있습니다. 그런 다음 이 속성을 사용하여 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

관련 정보