저는 jessie/sid를 실행하는 systemd 208을 사용하고 있으며 다음 와일드카드 autofs 구성을 또는 /etc/fstab
/ .mount
정의 로 변환하려고 합니다 .automount
.
$ cat /etc/auto.master
/home/* -fstype=nfs homeserver:/exp/home/&
(메인 서버는 Solaris를 실행하며 각 하위 디렉터리는 /exp/home/
별도의 공유입니다.)
systemd로 와일드카드 매핑을 시뮬레이션하는 방법이 있습니까?
답변1
나는 그렇게 생각하지 않습니다. .mount/.automount 장치 이름은 이스케이프 처리된 마운트 경로와 동일해야 합니다 systemd-escape --path
. systemd에서 단위를 인스턴스화하는 유일한 방법은 "템플릿 구문" 형식입니다 [email protected]
. 따라서 최소한 동적으로 인스턴스화된 마운트 장치를 갖는 것은 불가능합니다.
그냥 autofs를 사용하세요. systemd가 모든 것을 대체하는 것은 아닙니다.
답변2
systemd를 사용할 수 있습니다생성기 인터페이스. 기본적으로 시작 또는 다시 로드 시 서비스 파일을 동적으로 생성합니다.
우리 클러스터에는 모두 동일한 디렉터리(물리적 디스크)를 내보내는 일련의 머신("dema" 및 일부 숫자라고 함)이 있습니다. 생성기 인터페이스를 사용하여 만들었습니다.. 산그리고.automount각 머신의 파일:
#!/bin/sh
svc_dir=/run/systemd/generator
for i in $(seq 1 99); do
# this must match the mount path, / is converted to -
unit_bn=cluster-dema$i
cat << EOF > "${svc_dir}/${unit_bn}.automount"
[Unit]
Description=dema${i}s localdisks automount point
Documentation=file:///usr/lib/systemd/system-generators/dema-automount-generator
Before=remote-fs.target
[Automount]
Where=/cluster/dema$i
EOF
cat << EOF > "${svc_dir}/${unit_bn}.mount"
[Unit]
Description=dema${i}s localdisks
Documentation=file:///usr/lib/systemd/system-generators/dema-automount-generator
[Mount]
What=dema$i:/localdisks
Where=/cluster/dema$i
Type=nfs
Options=rw,nosuid,nodev,hard,intr,rsize=8192,wsize=8192,noauto,x-systemd.automount
EOF
ln -s "../${unit_bn}.automount" "${svc_dir}/remote-fs.target.requires"
done
스크립트는 다음 위치에 배치되어야 합니다./usr/lib/systemd/시스템 빌더실행 가능합니다. 거기에 넣어둔 후 전화주세요systemd 데몬 다시 로드유닛을 찾아야 해./run/systemd/generators. 다음 재부팅 시 활성화되며 물론 다음을 호출하여 수동으로 시작할 수도 있습니다.systemd는 oneofthenames.automount를 시작합니다..