2016-01-08 7 views
0

Я использую кукольный модуль 3-й части, который я не хочу менять (Tomcat). Он создает каталог с режимом = 644, который я хочу изменить на 664 (рекурсивно).Chmod directory from other module by puppet

Когда я пытаюсь это сделать, марионетка недовольна, поскольку этот ресурс уже определен в другом модуле.

file { '/var/lib/tomcat' : 
    ensure => directory, 
    mode => 0664, 
    recurse => true, 
} 

Любые идеи, как я могу обойти это?

ответ

0

в Баш вы можете использовать

cd /var/lib chmod -R 664 Tomcat

1

Вы должны использовать 'EXEC' тип ресурса.

exec {"chmod -R 664 /var/lib/tomcat": 
    path => "/bin", 
    command => "chmod -R 664 .", 
    cwd => "/var/lib/tomcat" 
} 

Это единственный обходной путь я нашел, чтобы избежать дублирования имя ресурса

+0

Это проблематично, потому что два разных ресурса управляют одним и тем же объектом. Каждая транзакция агента будет выполнять триггер между конфликтующими состояниями, загромождая ваши отчеты. –

+0

Вы правы, но я не знаю других способов ... Лучше, конечно, переопределить модуль tomcat, но он не хочет;) – wilsonW

2

Вы можете использовать коллектор синтаксис переопределить некоторые атрибуты для ресурса, который уже объявлен.

File<| title == '/var/lib/tomcat' |> { 
    mode => '0664' 
} 

Используйте это экономно. Несовместимые переопределения по-прежнему будут сталкиваться, и ваши манифесты станут трудно отлаживать.

Самый безопасный подход - сделать атрибут параметром модуля (путем отправки соответствующего патча вверх по течению).

 Смежные вопросы

  • Нет связанных вопросов^_^