Мне нужно создать учетную запись пользователя и много файлов для этого пользователя с помощью Puppet.
Прекрасно работает с самым простым подходом, но на всех file
ресурс я должен указать owner => 'theuser'
, что кажется ужасно избыточным (если я этого не сделаю, они останутся корневыми).
Есть ли способ установить для владельца стандартную область действия? Или что-то вроде sudo, где марионетка запускается под этим пользователем для определенного набора ресурсов?
Итак, если все находится в одном месте, вы можете использовать recurse
вариант для файла
file { "/path/to/files/":
ensure => directory,
recurse => true,
owner => "user",
group => "group",
mode => "700",
source => "puppet:///modules/moduleName/path/in/files/",
}
Тогда просто поместите все свои файлы как
модули / имя модуля / путь / в / файлы /
Puppet поместит все файлы в этом модуле в / path / to / files в системе, принадлежащей этому пользователю / группе.
Чтобы сократить, например, в owner
атрибут вы можете добавить некоторые значения по умолчанию.
File {
owner => 'user',
group => 'somegroup',
mode => '0444'
}
file {
'/some/where/file1': source => 'some-source1';
'/some/where/file2': source => 'some-source2';
'/some/where/file3': source => 'some-source3';
}
Документация по значениям ресурсов по умолчанию: https://puppet.com/docs/puppet/latest/lang_defaults.html