Necesito escribir un script que construya mi servidor desde una nueva instalación del servidor Ubuntu. Entre cosas como Apache y PHP necesita instalar MySQL. El único problema aquí es que cuando instalo MySQL con apt-get, en algún momento la instalación mostrará un cuadro de diálogo que me permite escribir mi contraseña de root. Es decir, se requiere la interacción humana.
¿Cómo puedo pasar por alto esta pantalla durante la instalación y evitar la interacción humana mientras sigo usando apt-get para instalar MySQL?
Respuestas:
Debe preseleccionar la base de datos debconf. Debconf debe instalarse primero antes de intentar esto.
La versión de mysql y ubuntu podría cambiar la línea:
Por ejemplo, hizo que necesitara esto en su lugar:
fuente
mysql -u root -p
Si bien FAI y sistemas similares son útiles en un entorno empresarial, (y él debería saber sobre ellos), desafortunadamente no son una panacea.
Por ejemplo, ¿qué pasa si está trabajando en máquinas remotas, tal vez servidores alojados, alquilados, servidores ubicados sin una red confiable o dedicada, o un entorno en la nube como EC2? Ningún tipo de arranque de red PXE funcionará allí. Sin embargo, Puppet y Chef parecen ser herramientas de propósito más general que podrían ayudarlo.
Puede obtener los valores correctos de la base de datos de debconf en un sistema que ya se ha configurado. Esta técnica le permite pegar todo en un solo script de shell. Por ejemplo, desde /var/cache/debconf/passwords.dat (tenga en cuenta la capacidad de trabajar con 5.0 en Debian y 5.1 y Ubuntu, las entradas adicionales no hacen daño a nada):
Otro método, quizás más fácil: (recopile respuestas de debconf-get-selections o debconf-show del paquete debconf-utils):
Después de ejecutar debconf-set-selections, verifique sus respuestas: cat /var/cache/debconf/passwords.dat
Y, durante las pruebas, asegúrese de eliminar y purgar todas las bases de datos (especialmente la base de datos mysql, donde está almacenada) y corregir su base de datos de configuración en caso de que se corrompan:
Algunos consejos con esto: 1) DEBE tener el indicador visto y la contraseña _again. 2) NO DEBE poner comillas alrededor de la contraseña. Se incluirá en una consulta MySQL sin comillas, por lo que debe citarlo usted mismo si es necesario. Eso también significa que no hay espacios (creo) 3) Si tiene problemas, realice la preselección a mano y luego ejecute la instalación de MySQL directamente usted mismo (en un terminal / tty normal) y vea qué le dice debconf. Le indicará advertencias y errores allí.
fuente
Si tiene varios servidores que necesita reconstruir, le recomiendo que vea algo como Puppet en lugar de escribir un script de shell. Puppet tiene un lenguaje descriptivo, por lo que define cómo desea que se vea el sistema, no cómo llegar allí. El tipo de paquete tiene una opción de archivo de respuesta que le permite definir las respuestas de debconf en la respuesta de Steven.
fuente
¿Puedo sugerirle también que automatice el proceso de preparación del servidor desde el hierro en bruto?
FAI hoy en día tiene perfiles para instalar la mayoría de los principales sistemas basados en Debian, incluido Ubuntu, desde la red. Por supuesto, esto es solo una extensión de la respuesta de la marioneta, que es una extensión de la respuesta de debconf.
La combinación de puesta en escena de FAI, luego personalizar con puppet en roles de servidor (donde puppet usará las herramientas adecuadas para su sistema, como debconf para Debian (-me gusta) bastante automáticamente), es bastante popular en estos días y no debería serlo también. Difícil de encontrar ejemplos que coincidan con lo que quieres hacer bastante de cerca
Un beneficio adicional importante de tener un servidor de preparación / configuración es que también es un lugar lógico para mantener su configuración controlada por la versión, por ejemplo, con git (que tiene el beneficio de nombrar estados de repositorio por suma de verificación, para que esté a salvo de la corrupción). siempre y cuando anote las sumas de verificación correctas), para un proceso verdaderamente limpio y reproducible.
fuente
Ver también:
/programming/1202347/simple-bash-script-to-install-mysql-need-some-help
fuente