LinuxParty

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

Probablemente ya sepa que Puppets le permite configurar un servidor desde cero. Puppets le ofrece una gestión centralizada eficiente para servicios complejos tales como MySQL .

Recientemente hemos hablado de la administración multiservidor con Puppets. Ahora vamos a centrarnos en la administración de MySQL, a través de Puppets sobre el módulo MySQL, un módulo completo, riguroso y probado que sigue las mejores prácticas tanto para MySQL como Puppet.

Para instalar el módulo de MySQL, ejecute el comando shell: " en el servidor maestro de puppets para descargar archivos del módulo en el directorio . Después de que el módulo está listo para ser utilizado.

Una vez instalado el módulo de puppets puede utilizar su clase parametrizada . Las clases parametrizadas le permiten pasar parámetros al utilizarlos, como dentro de un nodo para la configuración de un servicio, y por lo tanto, le proporciona la flexibilidad para configuraciones complejas.

Incluya el código de la clase con parámetros dentro de los manifiestos para un nodo gestionado con Puppets. Por ejemplo, para instalar el servidor MySQL en un nodo denominado cent4.localdomain, edite el archivo e incluir una definición de nodo de esta manera:

node 'cent4.localdomain' {
	class { '::mysql::server':
		root_password => 'secretpass',
		override_options => { 'mysqld' => { 'max_connections' => '600', 'query_cache_size' => '64M' }
		}
	}
}

Esta declaración le dice a Puppets que debe instalar el servidor MySQL en el nodo cent4.localdomain y establece la contraseña de administrador  "secretpass." Puppets guarda automáticamente la contraseña para el archivo  por conveniencia, y hace dos cambios en el archivo de configuración de MySQL (/etc/my.cnf): Fija el número de conexiones máximas a 600, y el tamaño de la caché de consultas a 64MB.

Los dos puntos dobles en frente de la clase garantiza que Puppets resuelve la clase desde el espacio de nombres global y no local.

Con las directivas como ésta puede administrar el servidor MySQL en plataformas soportadas por Puppets como CentOS y Debian. Puppets instalará la versión de MySQL que se envía con la distribución correspondiente y disponible a través de su sistema de gestión de paquetes por defecto.

Se instalará el cliente de MySQL en el nodo del servidor, ya que es un requisito para el servidor MySQL. Si desea instalar un cliente MySQL en un nodo diferente, puede incluir la clase en la configuración puppet del nodo:


Esta directiva sólo es adecuada para los escenarios más sencillos que no requieren de parámetros que deben pasarse a la clase, como en este ejemplo.

Usted también puede necesitar enlaces MySQL para permitir que las aplicaciones se conecten al servidor MySQL. Se puede especificar la clase con los parámetros de los lenguajes necesarios dentro de la configuración de nodo:

class { '::mysql::bindings':
	php_enable => 1,
	perl_enable => 1
}

En CentOS esta configuración instalará los paquetes php-pdo, php mysql, perl-DBI, y perl-DBD-MySQL. En otras plataformas los nombres de los paquetes pueden variar, pero Puppets sabe cómo determinar de forma automática.

Administración de Usuarios y bases de datos MySQL

Otra forma de utilizar el módulo de MySQL es a través de un tipo de recurso definido, que es un bloque de código con los parámetros que pueden ser evaluados en múltiples ocasiones. Por ejemplo, supongamos que tiene varias bases de datos y usuarios y que tiene que declarar todas. Usted puede utilizar la clase y pasar argumentos de bases de datos, usuario, contraseña, host y privilegios como este:

mysql::db { 'testdb':
	user     => 'testuser',
	password => 'secretp',
	host     => 'localhost',
	grant    => ['SELECT', 'UPDATE', 'DELETE'],
} 

Coloque este código dentro de la definición de nodo de puppets para el servidor MySQL. Puppets traduce el código en dos declaraciones de MySQL:

Alternativamente, para una gestión más fina de las bases de datos y usuarios, utilice el mysql_database y mysql_user. Los en Puppets se utilizan para las implementaciones más estrictamente definidos y estandarizados, como la presencia de una base de datos con un determinado conjunto de caracteres y colación. Ponga las declaraciones de providers dentro de la definición de nodo del servidor MySQL:

mysql_database { 'testdb2':
	ensure  => 'present',
	charset => 'utf8',
	collate => 'utf8_swedish_ci',
}

mysql_user { 'testuser'@'localhost':
	ensure => 'present',
}

Estas directivas crean la base de datos testdb2 y el usuario testuser. Si desea quitar el usuario o base de datos, ya que no lo necesita en el servidor, basta bastará sustituir "" con el "" para ensure el valor del parámetro.

La Gestión de bases de datos MySQL y los usuarios con puppets es no sólo conveniente, sino que también garantiza la configuración persistente, porque cada vez que se ejecuta de Puppets, que por defecto es cada 30 minutos, se valida el estado de MySQL actual.

Gestión de copia de seguridad

El módulo de MySQL Puppets también le permite gestionar las copias de seguridad de MySQL utilizando la clase . He aquí un ejemplo de código con los parámetros que se pueden colocar dentro de su definición de nodo del servidor MySQL:

class { '::mysql::server::backup':
	backupdir => '/backups',
		backupuser => 'backupuser',
		backuppassword => 'secret',
		backupcompress => 1,
		backuprotate => 5,
		backupdatabases => ['testdb1','testdb2'],
		file_per_database => 1,
		time => ['2', '10'],
}

Este código define el directorio /backups para almacenar las copias de seguridad de las bases de datos testdb1 testdb2. La secuencia de comandos de copia de seguridad de los guardará los datos con los privilegios del usuario backupuser MySQL y emplea la compresión para ahorrar espacio en disco. Cada archivo de base de datos se almacena en su propio archivo. Las copias de seguridad se rotan cada cinco días.

Cuando Puppets ejecuta con éxito este código en el nodo del servidor MySQL, crea una nueva tarea de cron programada para ejecutarse diariamente a las 2:10 am en virtud de los trabajos de cron del usuario root que apunta a una recién creada shell script

El script  es un buen ejemplo de cómo el módulo MySQL de Puppets ayuda a que te pegues a los mejores estándares y prácticas. Se vuelca bases de datos con los argumentos , lo que garantiza la integridad de los datos de la copia de seguridad. Nunca editar el script manualmente, debido a los cambios personalizados se sobrescribirán con la próxima ejecución de la puppet.

Como puede ver, Puppets ofrece formas eficaces de administrar servicios complejos tales como MySQL. No sólo le ahorra tiempo y esfuerzo, pero también se asegura el cumplimiento de las mejores prácticas.

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política