
Por ejemplo tengo instalado php-fpm:
Name : php-fpm
Arch : x86_64
Version : 5.4.16
Release : 23.el7_0.3
Size : 4.5 M
Repo : installed
From repo : updates
Summary : PHP FastCGI Process Manager
URL : http://www.php.net/
License : PHP and Zend and BSD
El objetivo es mantener PHP en la última versión 5.4. Actualmente tengo esto en el manifiesto: ensure => '5.4.16-23.el7_0.3',
.
Eso no se actualizará si sale una nueva versión o lanzamiento, aunque no quiero que se actualice a 5.5 inesperadamente.
He probado lo siguiente:
ensure => '5.4.16',
ensure => '5.4',
ensure => '5.4.16-*',
ensure => '5.4.*',
Todo lo cual me da algo similar a:
change from 5.4.16-23.el7_0.3 to 5.4 failed: Could not update: Failed to update to version 5.4, got version 5.4.16-23.el7_0.3 instead
Al estar en RHEL/CentOS, probablemente cumpla con el requisito de tener simplemente ensure => latest,
PHP, solo estoy usando PHP como ejemplo. Todavía me gusta saber:
- La forma títere de gestionar lanzamientos menores. (Si hay uno o dos... Leí que al menos puedes mantener tu propio repositorio, pero ¿existe una sintaxis de marionetas pura como la que supuse anteriormente?)
- Obviamente, hay paquetes distintos de PHP, ¿cómo usaría Puppet para administrar paquetes que quizás sean de un repositorio diferente, o quizás para una distribución que no sea RHEL/CentOS, etc.?
- Leí en la referencia de la marioneta que garantizar que "los valores pueden coincidir con /./", ¿es esa expresión regular o qué?http://docs.puppetlabs.com/references/3.7.5/type.html#package-attribute-ensure
Estoy ejecutando Puppet 3.7.5 de código abierto en RHEL/CentOS 7.
Respuesta1
No, Puppet no puede actualizar a la versión menor más reciente, pero solo puede garantizar una versión específica o puede garantizar que el paquete esté presente o sea el más reciente.
Lo que debes hacer es crear tus propios repositorios personalizados, que tendrán solo paquetes de tu relevancia (por ejemplo, serie 5.4 de PHP) y luego en Puppet simplemente configura:
package { 'php-fpm': ensure => latest }
Esto verificará cada ejecución de títeres si hay una actualización.
Además, si no utiliza repositorios adicionales que ofrecen paquetes PHP más nuevos para su sistema, ensure => latest
se comportará exactamente como lo desea, debido a la forma en que CentOS actualiza sus paquetes. Nunca habrá php-5.5 en CentOS 7, pero php permanecerá en la serie 5.4. 5.5 y cualquier actualización más reciente se proporcionará a través de php55, php56, etc., lo que significa que tendrá que cambiar el nombre del paquete en el manifiesto de Puppet para reflejar la versión que desea, por ejemplo:
package { 'php56-fpm': ensure => latest }
Entonces, la respuesta es NO, debe asegurarse de que sus repositorios solo ofrezcan la versión principal que desea y luego pueda usarla ensure => latest
dentro de Puppet.
Para configurar eso en los repositorios, puedes usar cosas como:
- incluir
- excluir
- prioridad