23 votos

Guión de instalación de MySQL en Ubuntu

Necesito escribir una secuencia de comandos que va a construir mi servidor a partir de un nuevo servidor de Ubuntu instalar. Entre las cosas como Apache y PHP que necesita para instalar MySQL. El único problema aquí es que cuando instalo MySQL con apt-get, en algún punto de la instalación, se abrirá un cuadro de diálogo que me permite escribir mi contraseña de root. I. e., la interacción humana es necesaria.

¿Cómo puedo omitir esta pantalla durante la instalación y evitar la interacción humana, sin dejar de utilizar apt-get para instalar MySQL?

50voto

Steven Puntos 2524

Usted necesita para configurar la base de datos de debconf. debconf necesita ser instalado primero antes de intentar esto.

La versión de mysql y ubuntu podría cambiar la línea:

echo mysql-server mysql-server/root_password select PASSWORD | debconf-set-selections
echo mysql-server mysql-server/root_password_again select PASSWORD | debconf-set-selections

Por ejemplo, usted hizo necesario este lugar:

echo mysql-server-5.0 mysql-server/root_password password PASSWORD | debconf-set-selections
echo mysql-server-5.0 mysql-server/root_password_again password PASSWORD | debconf-set-selections

22voto

5voto

Jamieson Becker Puntos 386

Mientras FAI y sistemas similares son útiles en un entorno empresarial, (y él debe saber acerca de ellos), que está, lamentablemente, no es una panacea.

Por ejemplo, ¿y si él está trabajando en máquinas remotas, tal vez alojado, alquilar servidores, situadas servidores sin confianza o de red dedicada, o un entorno de nube como EC2? No existen ningún tipo de PXE netboot va a trabajar allí. Puppet y el Chef parecen ser más herramientas de propósito general que le pueda ayudar, sin embargo.

cat << EOF | DEBIAN_FRONTEND=noninteractive DEBCONF_DB_FALLBACK=Pipe /usr/bin/apt-get install somepackage

Name: ...
Template: ...
Value: ...
Owners: ...
Variables:
   ....
   ....
EOF

Usted puede obtener los valores correctos de la debconf DB en un sistema que ya se ha establecido. Esta técnica permite que usted se pega toda la cosa, en una sola secuencia de comandos de shell. Por ejemplo, de /var/cache/debconf/contraseñas.dat (tenga en cuenta la capacidad de trabajar tanto en Debian 5.0 y 5.1 y Ubuntu, entradas extra no me duele nada):

cat << EOF | DEBIAN_FRONTEND=noninteractive DEBCONF_DB_FALLBACK=Pipe /usr/bin/apt-get -qq -y install mysql-server
Name: mysql-server/root_password
Template: mysql-server/root_password
Value: YOURPASSWORD
Owners: mysql-server-5.1
Flags: seen

Name: mysql-server/root_password_again
Template: mysql-server/root_password_again
Value: YOURPASSWORD
Owners: mysql-server-5.1
Flags: seen

Name: mysql-server/root_password
Template: mysql-server/root_password
Value: YOURPASSWORD
Owners: mysql-server-5.0
Flags: seen

Name: mysql-server/root_password_again
Template: mysql-server/root_password_again
Value: YOURPASSWORD
Owners: mysql-server-5.0
Flags: seen

EOF

Otro método, tal vez más fácil: (recoger respuestas a las preguntas de debconf-get-selections o debconf-show de la debconf-utils):

echo "Installing MySQL 5.0.."
sudo apt-get install -qqy debconf-utils
cat << EOF | debconf-set-selections
mysql-server-5.0 mysql-server/root_password password YOURPASSWORD
mysql-server-5.0 mysql-server/root_password_again password YOURPASSWORD
mysql-server-5.0 mysql-server/root_password seen true
mysql-server-5.0 mysql-server/root_password_again seen true
EOF
/usr/bin/apt-get -y install mysql-server-5.0 mysql-server

Después de ejecutar debconf-set-selections, compruebe sus respuestas: cat /var/cache/debconf/contraseñas.dat

Y, si bien la prueba, asegúrese de quitar y purga todas las bases de datos (en especial mysql base de datos, donde se almacena) y corregir la base de datos de configuración en caso de que se corrompe:

apt-get --purge remove mysql-server*; /usr/share/debconf/fix_db.pl 

Un par de consejos con esto: 1) Usted DEBE tener el visto de la bandera y la _again contraseña. 2) Usted no DEBE poner comillas alrededor de la contraseña. Va a ir a una consulta de MySQL no cotizados, así que tienes que cita usted mismo si es necesario. Que también significa que no hay espacios (creo) 3) Si usted tiene problemas, hacer la preconfiguración con la mano y, a continuación, ejecute el MySQL instalar directamente por sí mismo (en un terminal normal/tty) y ver lo que debconf dice usted. Le dirá los errores y advertencias de allí.

3voto

David Pashley Puntos 17011

Si tiene varios servidores que necesita para reconstruir, le recomiendo que mire algo como Marionetas en lugar de escribir una secuencia de comandos de shell. Marioneta de un lenguaje descriptivo, por lo que definir cómo desea que el sistema no mira, cómo llegar allí. El tipo de paquete tiene un responsefile opción que permite definir la debconf respuestas en Steven respuesta.

1voto

Bernd Haug Puntos 836

Puede que también le sugiero automatizar el servidor de proceso de ensayo de el hierro en bruto?

FAI hoy en día tiene perfiles para instalar la mayoría de los principales sistemas basados en Debian, como Ubuntu, desde la red. Por supuesto, esto es sólo una extensión para el títere de respuesta, que es una extensión de la debconf respuesta.

La combinación de la escenificación de la FAI, a continuación, personalizar con títeres en las funciones de servidor (donde títere va a utilizar las herramientas adecuadas para su sistema, como la debconf para Debian (le gusta), en lugar de forma automática), es bastante popular en estos días y que no debería ser demasiado difícil encontrar ejemplos que coinciden con lo que quieres hacer, en vez de cerca.

Una importante ventaja añadida de tener una puesta en escena/configuración del servidor es que es también un lugar lógico para mantener su versión de la configuración controlada, por ejemplo, con git (que tiene la ventaja de nomenclatura repositorio de los estados por la suma de comprobación, así que estás a salvo en contra de la corrupción siempre y cuando usted nota el derecho de las sumas de comprobación abajo), para un verdaderamente limpio y reproducible proceso.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: