Назад | Перейти на главную страницу

Как позволить модулю Puppet Apache управлять пакетом RHEL7 SCL PHP7

Я использую официальный модуль 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 запускается, он не удаляет файл.