선택적 탑재 대상에서 netplan 스크립트 로드

선택적 탑재 대상에서 netplan 스크립트 로드

나는 사전순으로 후속 파일의 구성을 재정의하는 netplan의 기능을 활용하려고 시도하고 있지만 해당 파일이 다른 마운트 지점에서 오면 모든 것이 실패합니다.

/etc/netplan/01-primary.yaml일부 인터페이스가 포함된 가상 머신을 생성하고 및 /etc/netplan/02-local.yaml(기본적으로 "dhcp 사용")과 같은 파일을 사용하여 합리적인 기본값을 구성했습니다. 그 부분은 훌륭하게 작동합니다. 그러나 내가 달성하고 싶은 것은임의로 선택할 수 있는드라이브 마운트.

이를 위해 /etc/fstab다음 내용이 포함된 마운트 지점을 추가했습니다.

/dev/vdb /mnt/config ext4 defaults,nofail,x-systemd.device-timeout=10,x-systemd.before=systemd-networkd.service 0 0

그런 다음 /etc/netplan해당 지점을 가리키는 심볼릭 링크를 새 구성 파일에 추가합니다 ln -s /mnt/config/netplan/11-primary.yaml /etc/netplan/11-primary.yaml.

첫 번째 문제는 드라이브가 존재하지 않고 마운트되지 않은 경우 시작 시 전체 netplan 빌드가 실패하고 인터페이스가 없다는 것입니다.오류 보고서netplan에 대한 누락된 심볼릭 링크에 대해). 나는 단순히 /mnt/config. 실행 netplan generate하고 netplan apply시작하면 모든 인터페이스가 올바르게 구성됩니다.

나는 다양한 x-systemd.before목표를 시도했지만 그 중 아무것도 작동하지 않았습니다. 제대로 작동하게 하는 방법이 있나요? 마운트를 구성하지 않고도 가상 머신을 시작할 수 있도록 마운트 구성은 선택 사항이어야 합니다.

답변1

저는 오늘 이 문제로 어려움을 겪고 있으며 지금까지 두 가지 주요 솔루션을 결정했습니다.

  1. cron을 사용하여 실행 netplan apply하지만 @reboot방법이 있는 것 같습니다.경고가 너무 많아그것에 붙어 있습니다.
  2. 설치 후 실행할 systemd 장치를 만듭니다 netplan apply.

저는 시스템 단위 파일인 옵션 2를 선택했습니다.

[Unit]
Description=Execute netplan apply after mount
After=multi-user.target mnt.mount

[Service]
Type=oneshot
ExecStart=/bin/sh -c "netplan apply"

[Install]
WantedBy=multi-user.target

아래에 저장 /etc/systemd/system/network-after-mount.service하고 계속하세요 systemctl enable network-after-mount. 테스트를 위해 다시 시작하세요.

/mnt/우리의 경우 추가 netplan 구성 파일이 포함된 내부 USB 스틱이 아래에 설치되어 있습니다 . 드라이브가 다른 경로에 마운트되면 결과 시스템 설치 장치의 이름이 다르게 지정됩니다. 설치 단위를 나열할 수 있습니다.

systemctl list-units --type=mount

그리고 어느 것이 올바른 목표인지 결정합니다.

관련 정보