私はpuppetを使用しており、それを実行しているユーザーに関連するファイルを生成するスクリプトを作成しようとしています。ファイル/ソフトリンクが存在しない場合は、それを作成して他のアプリケーションがそれを編集してアーカイブに移動できるとします。
file { '/some/path/myuser.file':
ensure => 'link', -- ensure => 'file', if I want to create file
target => '/orignal/path/file',
}
注:myuserは、スクリプトを実行している実際のユーザーが編集する必要があります。
次のようにスクリプトを変更すると、問題なくうまく機能します。
file { '/some/path/aabuhasna.file':
ensure => 'link', -- ensure => 'file', if I want to create file
target => '/orignal/path/file',
}
答え1
id
puppetには、「ファクトを実行しているユーザーのユーザーID(UID)を返す」というコアファクトがあります。https://docs.puppet.com/facter/latest/core_facts.html#id
したがって、単に以下を使用することが可能でなければなりません。
file { "/some/path/${id}":
ensure => 'link',
target => '/original/path/file',
}