Site is under maintenance mode. Please wait few min!
Saltar al contenido

Cómo migrar una base de datos MySQL a un nuevo servidor en Ubuntu 14.04

marzo 4, 2020

 

Introducción

Containerization está convirtiendo rápidamente en el método más aceptado de los envases y la implementación de aplicaciones en entornos de nube. La estandarización que proporciona, junto con su eficiencia de los recursos (en comparación con las máquinas virtuales completos) y flexibilidad, lo convierten en un gran facilitador de la moderna mentalidad DevOps . Muchos despliegue interesante nube nativa, orquestación y estrategias de monitoreo son posibles cuando sus aplicaciones y microservicios están completamente en contenedores. contenedores

acoplables son, con mucho, el tipo más común de contenedores en la actualidad. Aunque los repositorios públicos imagen Docker como estibador Hub están llenos de imágenes de software de código abierto en contenedores que se puede tirar ventana acoplable y uso hoy en día, para el código privado tendrá que ya sea un servicio de pago para construir y almacenar sus imágenes, o ejecutar su propio software para hacerlo.

GitLab Community Edition es una suite de software auto-organizada que ofrece alojamiento Git repositorio, seguimiento de proyectos, servicios de CI / CD, y un registro de imagen del estibador, entre otras características. En este tutorial vamos a utilizar el servicio de integración continua de GitLab para construir imágenes de Docker un ejemplo Node.js aplicación. Estas imágenes serán luego probaron y se cargan en nuestro propio registro privado del estibador.

Requisitos previos

Antes de comenzar, tenemos que configurar un seguro GitLab servidor y un GitLab IC del corredor para ejecutar tareas de integración continua. Las secciones a continuación proporcionarán enlaces y más detalles.

Un GitLab servidor seguro con SSL

Para almacenar el código fuente, ejecutar tareas CI / CD, y anfitrión del registro del estibador, necesitamos una instancia GitLab instalado en un servidor de Ubuntu 16.04. GitLab recomienda actualmente un servidor con al menos 2 núcleos de CPU y 4 GB de RAM . Además, la obtendremos con el servidor de certificados SSL de Cifrar Vamos. Para ello, se necesita un nombre de dominio señalado en el servidor.

Puede completar estos requisitos previos con los siguientes tutoriales:

  • cómo configurar un nombre de host con digitalocean le mostrará cómo gestionar un dominio con el panel de control digitalocean
  • de configuración inicial del servidor con Ubuntu 16.04 recibirá un no -root, el usuario sudo habilitados para configurar y activar de Ubuntu UFW cortafuegos
  • Cómo instalar y configurar GitLab en Ubuntu 16.04 le mostrará cómo instalar GitLab y configurarlo con un certificado TLS libres / SSL de Vamos Cifrar

un GitLab CI Runner

cómo configurar continua Integración tuberías con GitLab CI en Ubuntu 16.04 le dará una visión general de los servicios de la interfaz de GitLab, y le mostrará cómo configurar un corredor de CI para procesar los trabajos. Vamos a construir en la parte superior de la infraestructura de aplicación de demostración y el corredor creado en este tutorial.

Paso 1 – Configuración de una privilegiada GitLab CI Runner

En el prerrequisito GitLab tutorial de integración continua, hemos creado un corredor GitLab usando sudo registro gitlab-corredor y su proceso de configuración interactiva. Este corredor es capaz de ejecutar construye y pruebas de dentro de software de contenedores acoplables aislados.

Sin embargo, con el fin de construir imágenes Docker, nuestro corredor necesita acceso completo a un servicio de estibador en sí. El método recomendado para configurar esto es utilizar la imagen cargador de muelle-en-ventana acoplable oficial de estibador para ejecutar los trabajos. Para ello es necesario conceder al corredor un modo de ejecución privilegiado especial, así que vamos a crear un segundo corredor con activar este modo.

Nota: concesión del corredor modo privilegiada básicamente desactiva todas las ventajas de seguridad de la utilización de contenedores. Por desgracia, los otros métodos que permitan corredores acoplable con capacidad también tienen implicaciones de seguridad similares. Por favor vistazo a la documentación oficial GitLab en acoplable Construir para aprender más sobre las diferentes opciones de canal y lo que es mejor para su situación.

Debido a que hay implicaciones de seguridad para el uso de un corredor privilegiado, vamos a crear un corredor proyecto específico que sólo aceptará trabajos Docker en nuestro proyecto hello_hapi (administradores GitLab siempre se puede añadir manualmente este corredor a otros proyectos en un momento posterior) . Desde su página de proyecto hello_hapi, haga clic Ajustes en la parte inferior del menú de la izquierda, haga clic en CI / CD en el submenú:

Ahora haga clic en el Expandir botón junto a los corredores configuración sección:

Habrá alguna información acerca de la creación de un corredor específico , incluyendo una ficha de registro. Tomar nota de esta ficha. Cuando la usamos para registrar un nuevo corredor, el corredor será bloqueado sólo a este proyecto.

Mientras estamos en esta página, haga clic en el botón Desactivar compartido corredores . Queremos asegurarnos de que nuestros trabajos Docker siempre se ejecutan en nuestro corredor privilegiado. Si un corredor compartido no privilegiado estaba disponible, GitLab puede optar por el uso que uno, lo que daría lugar a errores de generación.

Acceder al servidor que tiene el corredor CI actual en él. Si usted no tiene una máquina de configurar con corredores ya, volver atrás y completar la instalación de la sección GitLab IC del Servicio Corredor del requisito tutorial antes de continuar.

Ahora, ejecute el siguiente comando para configurar el corredor proyecto específico privilegiada:

sudo gitlab-runner register -n
--url https://gitlab.example.com/
--registration-token your-token
--executor docker
--description "docker-builder"
--docker-image "docker:latest"
--docker-privileged

  • sudo gitlab favorito registro -n
  • –url https://gitlab.example.com/
  • – inscripción en token su token
  • –executor ventana acoplable
  • –description «ventana acoplable-constructor»
  • –docker-imagen «ventana acoplable: últimas»
  • –docker-privilegiada

OutputRegistering runner... succeeded runner=61SR6BwV
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

Sea Asegúrese de sustituir su propia información. Nos pusimos todas nuestras opciones de corredor en la línea de comandos en lugar de utilizar los mensajes interactivos, debido a que las indicaciones no nos permiten especificar el modo –docker-privilegiada.

Su corredor ya está configurado, registrado, y en funcionamiento. Para verificar, de nuevo interruptor en su navegador. Haga clic en el icono de llave inglesa en la barra de menú principal GitLab, a continuación, haga clic en corredores en el menú de la izquierda. Se enumeran sus corredores:

Ahora que tenemos un corredor capaz de construir imágenes Docker, juego nos dejó un registro privado acoplable para que empuje a las imágenes.

Paso 2 – Configuración de hasta GitLab acoplable Registro

Configuración de su propio registro del estibador le permite empujar y tirar las imágenes desde su propio servidor privado, aumentar la seguridad y reducir las dependencias del flujo de trabajo tiene sobre los servicios externos.

GitLab creará un registro privado acoplable con unos pocos cambios de configuración. En primer lugar vamos a configurar la dirección URL en el registro residirá. A continuación, vamos a (opcionalmente) configurar el registro para utilizar un servicio de almacenamiento de objetos compatible con S3 para almacenar sus datos.

SSH en el servidor GitLab, a continuación, abra el archivo de configuración GitLab:

sudo nano /etc/gitlab/gitlab.rb

  • sudo nano /etc/gitlab/gitlab.rb

de desplazamiento hacia abajo a la sección el contenedor Registro configuración. Vamos a comentar la línea registry_external_url y configurarlo a nuestro nombre de host GitLab con un número de puerto 5555:

registry_external_url 'https://gitlab.example.com:5555'

A continuación, agregue las dos líneas siguientes a contar el registro dónde encontrar nuestros certificados Cifrar Repasemos:

registry_nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem"
registry_nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem"

Guardar y cerrar el archivo, a continuación, volver a configurar gitLab:

sudo gitlab-ctl reconfigure

  • sudo reconfigure gitlab-CTL

Output. . .
gitlab Reconfigured!

actualización del servidor de seguridad para permitir el tráfico al puerto de registro:

sudo ufw allow 5555

  • sudo UFW permiten 5555

Ahora cambie a otra máquina con acoplable instalado, e iniciar sesión en el registro privado del estibador. Si usted no tiene estibador en el equipo de desarrollo local, que puede elegirse el servidor está configurado para ejecutar sus trabajos GitLab IC, ya que se ha instalado ya acoplable:

docker login gitlab.example.com:5555

  • ventana acoplable entrada gitlab.example.com:5555

Se le pedirá su nombre de usuario y contraseña. Use sus credenciales GitLab identificarse.

OutputLogin Succeeded

éxito! El registro se ha configurado y funciona. Actualmente se almacenará en archivos de sistema de archivos local del servidor GitLab. Si desea utilizar un servicio de almacenamiento de objetos en su lugar, continuar con esta sección. Si no, pase directamente al Paso 3.

Para configurar una backend de almacenamiento de objetos para el registro, lo que necesitamos saber la siguiente información sobre nuestro servicio de almacenamiento de objetos: Acceso

  • clave
  • clave secreta
  • Región (US- este-1), por ejemplo, si se utiliza Amazon S3, o región de punto final si se utiliza un servicio compatible con S3 (https:/
    yc.digitaloceanspaces.com)
  • Cubo Nombre

Si está utilizando espacios digitalocean, puede averiguar cómo configurar un nuevo espacio y obtener la información anterior mediante la lectura de cómo crear un espacio digitalocean y clave de API.

Cuando se tiene la información de almacenamiento de objetos, abrir el fichero de configuración GitLab:

sudo nano /etc/gitlab/gitlab.rb

  • sudo nano /etc/gitlab/gitlab.rb

Una vez más, baje hasta la sección del registro contenedor. Busque el registro [ ‘almacenamiento bloque, se elimine el comentario, y actualizar a la siguiente, de nuevo asegurándose de sustituir su propia información en su caso:

registry['storage'] = {
's3' => {
'accesskey' => 'your-key',
'secretkey' => 'your-secret',
'bucket' => 'your-bucket-name',
'region' => 'nyc3',
'regionendpoint' => 'https:/
yc3.digitaloceanspaces.com'
}
}

Si está utilizando Amazon S3, sólo es necesario región y no regionendpoint . Si está utilizando un servicio compatible con S3 como espacios, tendrá regionendpoint. En esta región el caso en realidad no configurar nada y el valor introducido no importa, pero que todavía tiene que estar presente y no está en blanco.

Guardar y cerrar el archivo.

Nota: En la actualidad existe un error en el registro se cerró después de treinta segundos si su cubo de almacenamiento de objetos está vacía. Para evitar esto, poner un archivo en el cubo antes de ejecutar el siguiente paso. Se puede quitar más tarde, después de que el registro ha añadido sus propios objetos.

Si está utilizando espacios digitalocean, puede arrastrar y soltar para cargar un archivo usando la interfaz de panel de control.

Reconfigurar GitLab una vez más:

sudo gitlab-ctl reconfigure

  • sudo reconfigure gitlab-CTL

En su otra máquina del estibador, inicie sesión en el registro de nuevo para asegurarse de que todo está bien:

docker login gitlab.example.com:5555

  • ventana acoplable entrada gitlab.example.com : 5555

debe obtener un mensaje Inicio de sesión correcto.

Ahora que tenemos nuestro registro acoplable configurar, actualizar la configuración de Let CI de nuestra aplicación para crear y probar nuestra aplicación, y empuje imágenes acoplables a nuestro registro privado.

Paso 3 – Actualización de gitlab-ci.yaml y construir una imagen del estibador

Nota: Si no se ha completado el artículo prerrequisito en GitLab CI tendrás que copiar el repositorio de ejemplo para su servidor GitLab. Siga la copia del Ejemplo repositorio desde la sección de GitHub para hacerlo.

para conseguir nuestra aplicación en la construcción del estibador, necesitamos actualizar el archivo .gitlab-ci.yml. Puede editar este archivo justo en GitLab haciendo clic sobre ella desde la página principal del proyecto, a continuación, hacer clic en el botón Editar . Alternativamente, se podría clonar el repositorio en el equipo local, editar el archivo, a continuación, git push nuevo a GitLab. Que se vería así:

git clone git@gitlab.example.com:sammy/hello_hapi.git
cd hello_hapi
# edit the file w/ your favorite editor
git commit -am "updating ci configuration"
git push

  • git clone git@gitlab.example.com: Sammy / hello_hapi.git
  • cd hello_hapi
  • # editar el archivo w / su editor favorito
  • git commit -am configuración de actualización ci» «
  • git push

en primer lugar, eliminar todo en el archivo, y luego pegar en la siguiente configuración:

image: docker:latest
services:
- docker:dind

stages:
- build
- test
- release

variables:
TEST_IMAGE: gitlab.example.com:5555/sammy/hello_hapi:$CI_COMMIT_REF_NAME
RELEASE_IMAGE: gitlab.example.com:5555/sammy/hello_hapi:latest

before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN gitlab.example.com:5555

build:
stage: build
script:
- docker build --pull -t $TEST_IMAGE .
- docker push $TEST_IMAGE

test:
stage: test
script:
- docker pull $TEST_IMAGE
- docker run $TEST_IMAGE npm test

release:
stage: release
script:
- docker pull $TEST_IMAGE
- docker tag $TEST_IMAGE $RELEASE_IMAGE
- docker push $RELEASE_IMAGE
only:
- master

Asegúrese de actualizar las direcciones URL y nombres de usuario resaltados con su propia información, a continuación, excepto con el Commit cambios botón GitLab. Si está actualizando el exterior archivo de GitLab, confirmar los cambios y volver a GitLab git push.

Este archivo de configuración nueva cuenta GitLab para utilizar la imagen última ventana acoplable (imagen: cargador de muelle: últimas) y vincularlo con el servicio de cargador de muelle-en-estibador (estibador: Dind). Luego define las etapas de construcción, pruebas y liberación. La etapa de construcción construye la imagen acoplable mediante el Dockerfile previsto en el repositorio, y luego lo sube a nuestro registro de imagen del estibador. Si esto tiene éxito, la etapa de prueba se descarga la imagen que acabamos de construir y ejecutar el comando de prueba NPM en su interior. Si la etapa de prueba es satisfactoria, la etapa de liberación se tire de la imagen, etiqueta como hello_hapi: últimas y empujar de nuevo al registro.

Dependiendo de su flujo de trabajo, también se podría añadir etapas de prueba adicionales, o incluso desplegar etapas que empujan a la aplicación a un entorno de ensayo o producción.

Actualización del archivo de configuración debería haber desencadenado una nueva construcción. Volver al proyecto hello_hapi en GitLab y hacer clic en el indicador de estado IC para el envío de datos:

En la página resultante, a continuación, puede hacer clic en cualquiera de las etapas para ver su progreso:

Eventualmente , todas las etapas deben indicar tuvieron éxito al mostrar los iconos de marca de verificación verde. Podemos encontrar las imágenes Docker que solo se construyeron haciendo clic en el elemento Registro en el menú de la izquierda:

Si hace clic en el pequeño “documento” icono al lado del nombre de la imagen, se copiará la ventana acoplable apropiada tirar … comando en el portapapeles. A continuación, puede tirar y hacer funcionar su imagen:

docker pull gitlab.example.com:5555/sammy/hello_hapi:latest
docker run -it --rm -p 3000:3000 gitlab.example.com:5555/sammy/hello_hapi:latest

  • cargador de muelle de tracción gitlab.example.com:5555/sammy/hello_hapi:latest
  • ventana acoplable plazo -es –rm -p 3000: 3000 gitlab.example.com:5555/ Sammy / hello_hapi: últimas

Output> hello@1.0.0 start /usr/src/app
> node app.js

Server running at: http://56fd5df5ddd3:3000

la imagen se ha tirado hacia abajo desde el registro y se inició en un recipiente. Cambie a su navegador y conectarse a la aplicación en el puerto 3000 a prueba. En este caso nos estamos quedando el contenedor en nuestra máquina local, por lo que podemos acceder a él a través de localhost en la siguiente URL:

http://localhost:3000/helloest
OutputHello, test!

éxito! Puede detener el contenedor con CTRL-C. A partir de ahora, cada vez que empuje nuevo código a la rama principal de nuestro repositorio, vamos a construir de forma automática y probar un nuevo hello_hapi: última imagen.

Conclusión

En este tutorial hemos creado un nuevo corredor GitLab para construir imágenes creadas estibador, un registro privado acoplable para almacenar en ellos, y se actualiza una aplicación Node.js para ser construido y en el interior de los contenedores Docker probado.

Para aprender más acerca de los diversos componentes utilizados en esta configuración, se puede leer la documentación oficial de GitLab CE, GitLab Registro de contenedores, y estibador.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *