나는 사전순으로 후속 파일의 구성을 재정의하는 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
저는 오늘 이 문제로 어려움을 겪고 있으며 지금까지 두 가지 주요 솔루션을 결정했습니다.
- cron을 사용하여 실행
netplan apply
하지만@reboot
방법이 있는 것 같습니다.경고가 너무 많아그것에 붙어 있습니다. - 설치 후 실행할 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
그리고 어느 것이 올바른 목표인지 결정합니다.