Estou usando o Puppet e preciso criar links simbólicos entre duas pastas. Tenho cerca de 10 pastas com a mesma estrutura e sempre quero executar meu comando link em formato xx/yy/zz
.
Algo assim:
ln -s aa/bb/folder_to_link folders_1_to_x/yy/link_name
Eu tentei seguiressesdireções, mas não teve sucesso.
Existe um comando fácil de escrever que pode fazer isso?
Responder1
A solução adequada para algo assim no puppet é criar um tipo definido:
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"]: }
}
Isso criará um link simbólico /folders_1_to_x/yy/foo
para apontar /aa/bb/folder_to_link
e /folders_1_to_x/yy/bar
apontar para /cc/dd/folder_to_link
.
Acho que é bastante simples como isso funciona, mas posso esclarecer se necessário.