Ich verwende Puppet und muss symbolische Links zwischen zwei Ordnern erstellen. Ich habe ungefähr 10 Ordner mit derselben Struktur und möchte meinen Link-Befehl immer in ausführen xx/yy/zz
.
Etwas wie das:
ln -s aa/bb/folder_to_link folders_1_to_x/yy/link_name
Ich habe versucht,dieseAnweisungen, aber ohne Erfolg.
Gibt es einen einfach zu schreibenden Befehl, mit dem dies möglich ist?
Antwort1
Die richtige Lösung für so etwas in Puppet besteht darin, einen definierten Typ zu erstellen:
define folder_link (
$link_map = $name,
) {
$link_map_split = split($link_map, ':')
$origin = $link_map_split[0]
$link_name = $link_map_split[1]
$link_path = "/folders_1_to_x/yy/$link_name"
file { $link_path:
ensure => link,
target => $origin,
}
}
class foo {
folder_link { ["/aa/bb/folder_to_link:foo", "/cc/dd/folder_to_link:bar"]: }
}
Dadurch wird ein symbolischer Link erstellt, /folders_1_to_x/yy/foo
der auf zeigt /aa/bb/folder_to_link
, und /folders_1_to_x/yy/bar
dann auf /cc/dd/folder_to_link
.
Ich denke, die Funktionsweise ist ziemlich unkompliziert, kann es aber bei Bedarf näher erläutern.