Я использую официальный модуль Apache для установки LAMP в Redhat Linux и использую коллекции программного обеспечения, чтобы иметь возможность использовать более высокую версию PHP, чем стандартная для RHEL 7.
Пакет RHSCL rh-php70-php помещает файл, позволяющий Apache анализировать php: /opt/rh/httpd24/root/etc/httpd/conf.d/rh-php70-php.conf
Однако Puppet очищает этот файл в следующем Puppetrun, так как он не управляется модулем Puppet Apache (purge_configs => true).
Это хорошо, однако как я могу сделать исключение только для вышеупомянутого файла, не редактируя сам модуль Apache?
Я использую этот пример:
https://tickets.puppetlabs.com/browse/MODULES-2916
И попробуйте заставить SCL PHP 5.6 работать с модулем Puppet Apache, как в документации:
https://forge.puppet.com/puppetlabs/apache/1.4.1#class-apachemodphp
TL; DR: я устанавливаю / управляю PHP 5.6 из Redhat SCL через apache :: mod :: php, однако он хранит файлы конфигурации. Нужно ли мне устанавливать шаблон или марионеточный файл, чтобы эти конфигурации отменялись и не сохранялись в файлах?
Вы можете использовать file
ресурс, но без каких-либо данных о содержимом.
Например:
file { '/opt/rh/httpd24/root/etc/httpd/conf.d/rh-php70-php.conf':
ensure => file,
owner => 'httpd',
group => 'httpd',
mode => '0644',
require => Package['rh-php70-php','httpd'],
}
Это гарантирует, что файл существует в указанном месте, но не изменит его содержимое. Когда Puppet запускается, он не удаляет файл.