Diferencia entre revisiones de «Servidor 16/17»
(→Eliminación elementos innecesarios) |
(→Aspectos de gestión) |
||
(No se muestran 42 ediciones intermedias de 2 usuarios) | |||
Línea 1: | Línea 1: | ||
+ | = Enlaces relacionados = | ||
+ | * https://github.com/AgoraUS-G1-1617/continuous-integration-agoraus_g1 | ||
+ | |||
+ | = Aspectos de gestión = | ||
+ | * Existe un solo rol (docker manager) y por lo tanto nombre de usuario y contraseña para cambiar la configuración de la máquina. | ||
+ | * Lo ideal es que para poder tener desplegado el proyecto, el grupo haga una prueba en local del entorno que quiere desplegar y haga un pull request sobre el repositorio de integración continua que será probado por el docker manager a través de Jenkins y, si no hay problema, aceptado. | ||
+ | * Eventualmente, cuando haya que desplegar una nueva versión estable de un subproyecto, el docker manager, a través de jenkins, manualmente, comprobará que la beta está bien desplegada y acto seguido desplegará la estable. | ||
+ | |||
+ | = Cosas a preguntar = | ||
+ | * ¿Accceso a cualquier sitio dentro de egc.us.es mediante clave? No supondría mucho trabajo usar la misma clave para todos | ||
+ | * Limitación de subdominios, Propuestas de mejora | ||
+ | ** Mediante http://www.duckdns.org -> http://egc.duckdns.org | ||
+ | ** Pedir cambio en el dns de la facultad (que resuelva los dominios *.egc.us.es como egc.us.es) | ||
= Aplicando seguridad a la máquina = | = Aplicando seguridad a la máquina = | ||
Línea 47: | Línea 60: | ||
* Listar imágenes locales: docker images | * Listar imágenes locales: docker images | ||
+ | = Despliegue continuo = | ||
+ | La idea a seguir sería la plasmada en este artículo pero necesita modificaciones: https://blog.philipphauer.de/tutorial-continuous-delivery-with-docker-jenkins/ | ||
+ | Toda la info en el '''REPO''': https://github.com/ManuelLR/continuous-delivery-integration | ||
= Otras herramientas = | = Otras herramientas = | ||
+ | == Ampliar partición == | ||
+ | Las particiones usadas son de tipo lvm por lo que se pueden agrandar en caliente. Actualmente en la máquina se están usando 25G de 65G disponibles por lo que se puede ampliar. Para ello es necesario ejecutar el siguiente comando: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | sudo lvextend -L +10G -r /dev/centos_pruebasprocura/root | ||
+ | </syntaxhighlight> | ||
+ | |||
== Varias sesiones con una misma conexión == | == Varias sesiones con una misma conexión == | ||
Para ello usaremos el programa screen. | Para ello usaremos el programa screen. | ||
Línea 72: | Línea 94: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | == Autocompletado en bash para comandos docker [no funciona] == | ||
+ | curl -L https://raw.githubusercontent.com/docker/docker/$(docker version --short)/contrib/completion/bash/docker > /etc/bash_completion.d/docker | ||
+ | https://docs.docker.com/compose/completion/ | ||
+ | = Configuraciones proyectos = | ||
+ | == Deliberations == | ||
+ | * docker para make: https://hub.docker.com/r/mzagar/jenkins-slave-jdk-maven-git/ | ||
= Tiempo empleado = | = Tiempo empleado = | ||
Línea 84: | Línea 112: | ||
! Motivo | ! Motivo | ||
|- | |- | ||
− | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 28/10/2016 || 16:10 || 18:15 || | + | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 28/10/2016 || 16:10 || 18:15 || 02:05 || Eliminación y securización máquina |
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 28/10/2016 || 21:35 || 22:00 || 02:30 || Eliminación y securización máquina | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 29/10/2016 || 15:15 || 16:00 || 03:15 || Creación scripts Let's Enccryot y proxy inverso | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 29/10/2016 || 16:30 || 17:35 || 04:10 || Prueba de contenedores y detección de errores | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 30/10/2016 || 19:45 || 20:45 || 05:10 || Prueba compilación proyectos y prueba despliegue contenedores | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 31/10/2016 || 07:30 || 08:20 || 06:00 || Búsqueda información lanzar pruebas en docker distinto a jenkins master | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 31/10/2016 || 14:35 || 16:00 || 07:25 || Creación script "Acceptance-test-stage" | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 31/10/2016 || 16:56 || 19:21 || 09:50 || Problema plugin docker-jenkins con la conexión docker.sock (NO SOLUCIONADO) | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 31/10/2016 || 21:00 || 21:35 || 10:25 || Decisión cambio de plugin de docker a "Docker Slaves Plugin" (Dockins) | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 02/11/2016 || 10:42 || 11:33 || 11:16 || Intentando configurar plugin "Docker Slaves Plugin" (Dockins) | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 02/11/2016 || 15:48 || 17:24 || 12:52 || Vuelta a plugin docker-jenkins y buscando alternativas al problema | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 02/11/2016 || 17:55 || 18:33 || 13:30 || Vuelta a plugin docker-jenkins y buscando alternativas al problema | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 02/11/2016 || 19:30 || 21:05 || 15:05 || Vuelta a plugin docker-jenkins y buscando alternativas al problema | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 02/11/2016 || 21:45 || 22:13 || 15:33 || Vuelta a plugin docker-jenkins y buscando alternativas al problema | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 03/11/2016 || 11:16 || 12:42 || 16:59 || Buscando y configurando docker jenkins_slave | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 03/11/2016 || 13:04 || 13:58 || 17:53 || Buscando y configurando docker jenkins_slave | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 08/11/2016 || 13:04 || 13:41 || 18:30 || Buscando y configurando docker jenkins_slave | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 08/11/2016 || 14:44 || 15:26 || 19:12 || Configurando maven y conectando al slave | ||
|- | |- | ||
− | | [[Usuario:Manloprui1|Manuel López Ruiz]] || | + | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 08/11/2016 || 16:50 || 17:39 || 20:01 || Creación scripts beta.sh para G1-Deliberations |
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 09/11/2016 || 15:09 || 17:04 || 21:56 || Creación scripts beta.sh para G1-Deliberations | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 09/11/2016 || 19:26 || 21:31 || 24:01 || Buscando solución https tomcat | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 10/11/2016 || 07:43 || 10:06 || 26:24 || Buscando solución https tomcat | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 10/11/2016 || 13:33 || 14:58 || 27:49 || Buscando solución https tomcat | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 10/11/2016 || 16:55 || 18:15 || 29:09 || Buscando solución https tomcat | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 12/11/2016 || 17:43 || 18:43 || 30:09 || Configurando tomcat y mysql sin https | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 12/11/2016 || 22:50 || 24:21 || 31:40 || Corrigiendo errores provocados en contenedores por https tomcat | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 13/11/2016 || 08:44 || 10:40 || 33:36 || Realizar documentación del proyecto realizado | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 13/11/2016 || 11:00 || 11:43 || 34:19 || Apuntar horas trabajadas desde toggl | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 16/11/2016 || 10:00 || 10:20 || 34:39 || Ampliar particiones servidor | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 19/11/2016 || 18:24 || 19:46 || 36:01 || Realización presentación para explicar el funcionamiento | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 21/11/2016 || 17:44 || 19:21 || 37:38 || Realización presentación para explicar el funcionamiento | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 21/11/2016 || 22:00 || 23:31 || 39:09 || Realización presentación para explicar el funcionamiento | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 22/11/2016 || 00:00 || 01:16 || 40:25 || Realización presentación para explicar el funcionamiento | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 22/11/2016 || 12:40 || 14:40 || 42:25 || Reunión con integradores | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 22/11/2016 || 16:00 || 20:21 || 46:46 || Integración Cabina de votaciones | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 23/11/2016 || 16:20 || 20:05 || 50:31 || Integración Autenticación_B y ADMCensos | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 28/11/2016 || 09:00 || 15:00 || 55:31 || Integración ADMCensos, CadminVotaciones y Autenticación_B | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 28/11/2016 || 19:30 || 21:00 || 57:01 || Integración Autenticación_B (solucionado problema conexión con db) | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 07/12/2016 || 17:50 || 18:13 || 57:24 || Integración Recuento | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 09/12/2016 || 11:00 || 12:00 || 58:24 || Integración Autenticación_B | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || 14/12/2016 || 15:00 || 16:07 || 59:31 || Integración Autenticación_A | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || ?¿ || ?¿ || ?¿ || ?¿ || Solución Issue conexión entre las aplicaciones desplegadas | ||
+ | |- | ||
+ | | [[Usuario:Manloprui1|Manuel López Ruiz]] || ?¿ || ?¿ || ?¿ || ?¿ || Solución Issue hora servidor | ||
|- | |- | ||
|} | |} | ||
+ | |||
+ | = Referencias = | ||
+ | * http://christoph-burmeister.eu?p=2989 | ||
+ | * https://www.wouterdanes.net/2014/04/11/continuous-integration-using-docker-maven-and-jenkins.html | ||
+ | * blog.philipphauer.de/tutorial-continuous-delivery-with-docker-jenkins/ |
Revisión actual del 13:24 24 mar 2017
Contenido
Enlaces relacionados
Aspectos de gestión
- Existe un solo rol (docker manager) y por lo tanto nombre de usuario y contraseña para cambiar la configuración de la máquina.
- Lo ideal es que para poder tener desplegado el proyecto, el grupo haga una prueba en local del entorno que quiere desplegar y haga un pull request sobre el repositorio de integración continua que será probado por el docker manager a través de Jenkins y, si no hay problema, aceptado.
- Eventualmente, cuando haya que desplegar una nueva versión estable de un subproyecto, el docker manager, a través de jenkins, manualmente, comprobará que la beta está bien desplegada y acto seguido desplegará la estable.
Cosas a preguntar
- ¿Accceso a cualquier sitio dentro de egc.us.es mediante clave? No supondría mucho trabajo usar la misma clave para todos
- Limitación de subdominios, Propuestas de mejora
- Mediante http://www.duckdns.org -> http://egc.duckdns.org
- Pedir cambio en el dns de la facultad (que resuelva los dominios *.egc.us.es como egc.us.es)
Aplicando seguridad a la máquina
Creación de usuarios y dando permisos sudo
Con el fin de securizar el sistema se creará un usuario distinto de root con permisos de sudo:
useradd -m -g users -G sudo,docker -s /bin/bash egcuser
y asignamos una clave:
passwd egcuser
Securizando SSH
Para ello lo más importante es cerrar el acceso para el usuario root con el fin de evitar que, con ataques de fuerza bruta, se consiga acceder puesto que ya se sabe el usuario con antelación.
Modificaremos el archivo /etc/ssh/sshd_config cambiando el siguiente valor:
PermitRootLogin no
Eliminación elementos innecesarios
Al encontrar elementos innecesarios se eliminaron (esta orden no se ejecuta directamente si no se va eliminado paquete a paquete):
yum groups remove gnome-desktop Xfce
yum remove xfce4-* xorg-x11* xfwm4* libreoffice* alsa-* pulseaudio-* gtk* adwaita-* desktop-file-utils* gnome-* cups-* anaconda-*
Ayudado por sudo yum list installed | less
NetworkManager ModemManager anaconda avahi bacula bluez bzip2 colord cracklib dejavu glib*
Con todo esto conseguí reducir el espacio ocupado a 4'5 G quedando libres 11 G. Inicialmente el espacio libre no llegaba a 2 G
Eliminar antiguos dockers
Se encontrarón imágenes antiguas que ocupaban espacio innecesario y se decidieron eliminar según lo indicado en esta fuente: http://blog.yohanliyanage.com/2015/05/docker-clean-up-after-yourself/
Uso básico docker
- Listart dockers: docker ps -a
- Listar imágenes locales: docker images
Despliegue continuo
La idea a seguir sería la plasmada en este artículo pero necesita modificaciones: https://blog.philipphauer.de/tutorial-continuous-delivery-with-docker-jenkins/
Toda la info en el REPO: https://github.com/ManuelLR/continuous-delivery-integration
Otras herramientas
Ampliar partición
Las particiones usadas son de tipo lvm por lo que se pueden agrandar en caliente. Actualmente en la máquina se están usando 25G de 65G disponibles por lo que se puede ampliar. Para ello es necesario ejecutar el siguiente comando:
sudo lvextend -L +10G -r /dev/centos_pruebasprocura/root
Varias sesiones con una misma conexión
Para ello usaremos el programa screen.
Uso básico:
- Conexión: screen -S tuSesion
- Reconexión: screen -R tuSesion
- Desconexión: [ctrl + A] + D
- Crear sesión virtual: [ctrl + A] + C
Editor de texto
El usado habitualmente es vim
Monitor del equipo
El usado habitualmente es htop
Espacio usado por las subcarpetas de la carpeta actual
sudo bash -c "du -shc --time *" | sort -h -r
Autocompletado en bash para comandos docker [no funciona]
curl -L https://raw.githubusercontent.com/docker/docker/$(docker version --short)/contrib/completion/bash/docker > /etc/bash_completion.d/docker
https://docs.docker.com/compose/completion/
Configuraciones proyectos
Deliberations
- docker para make: https://hub.docker.com/r/mzagar/jenkins-slave-jdk-maven-git/
Tiempo empleado
Alumno | Dia | Inicio | Fin | Acumulado | Motivo |
---|---|---|---|---|---|
Manuel López Ruiz | 28/10/2016 | 16:10 | 18:15 | 02:05 | Eliminación y securización máquina |
Manuel López Ruiz | 28/10/2016 | 21:35 | 22:00 | 02:30 | Eliminación y securización máquina |
Manuel López Ruiz | 29/10/2016 | 15:15 | 16:00 | 03:15 | Creación scripts Let's Enccryot y proxy inverso |
Manuel López Ruiz | 29/10/2016 | 16:30 | 17:35 | 04:10 | Prueba de contenedores y detección de errores |
Manuel López Ruiz | 30/10/2016 | 19:45 | 20:45 | 05:10 | Prueba compilación proyectos y prueba despliegue contenedores |
Manuel López Ruiz | 31/10/2016 | 07:30 | 08:20 | 06:00 | Búsqueda información lanzar pruebas en docker distinto a jenkins master |
Manuel López Ruiz | 31/10/2016 | 14:35 | 16:00 | 07:25 | Creación script "Acceptance-test-stage" |
Manuel López Ruiz | 31/10/2016 | 16:56 | 19:21 | 09:50 | Problema plugin docker-jenkins con la conexión docker.sock (NO SOLUCIONADO) |
Manuel López Ruiz | 31/10/2016 | 21:00 | 21:35 | 10:25 | Decisión cambio de plugin de docker a "Docker Slaves Plugin" (Dockins) |
Manuel López Ruiz | 02/11/2016 | 10:42 | 11:33 | 11:16 | Intentando configurar plugin "Docker Slaves Plugin" (Dockins) |
Manuel López Ruiz | 02/11/2016 | 15:48 | 17:24 | 12:52 | Vuelta a plugin docker-jenkins y buscando alternativas al problema |
Manuel López Ruiz | 02/11/2016 | 17:55 | 18:33 | 13:30 | Vuelta a plugin docker-jenkins y buscando alternativas al problema |
Manuel López Ruiz | 02/11/2016 | 19:30 | 21:05 | 15:05 | Vuelta a plugin docker-jenkins y buscando alternativas al problema |
Manuel López Ruiz | 02/11/2016 | 21:45 | 22:13 | 15:33 | Vuelta a plugin docker-jenkins y buscando alternativas al problema |
Manuel López Ruiz | 03/11/2016 | 11:16 | 12:42 | 16:59 | Buscando y configurando docker jenkins_slave |
Manuel López Ruiz | 03/11/2016 | 13:04 | 13:58 | 17:53 | Buscando y configurando docker jenkins_slave |
Manuel López Ruiz | 08/11/2016 | 13:04 | 13:41 | 18:30 | Buscando y configurando docker jenkins_slave |
Manuel López Ruiz | 08/11/2016 | 14:44 | 15:26 | 19:12 | Configurando maven y conectando al slave |
Manuel López Ruiz | 08/11/2016 | 16:50 | 17:39 | 20:01 | Creación scripts beta.sh para G1-Deliberations |
Manuel López Ruiz | 09/11/2016 | 15:09 | 17:04 | 21:56 | Creación scripts beta.sh para G1-Deliberations |
Manuel López Ruiz | 09/11/2016 | 19:26 | 21:31 | 24:01 | Buscando solución https tomcat |
Manuel López Ruiz | 10/11/2016 | 07:43 | 10:06 | 26:24 | Buscando solución https tomcat |
Manuel López Ruiz | 10/11/2016 | 13:33 | 14:58 | 27:49 | Buscando solución https tomcat |
Manuel López Ruiz | 10/11/2016 | 16:55 | 18:15 | 29:09 | Buscando solución https tomcat |
Manuel López Ruiz | 12/11/2016 | 17:43 | 18:43 | 30:09 | Configurando tomcat y mysql sin https |
Manuel López Ruiz | 12/11/2016 | 22:50 | 24:21 | 31:40 | Corrigiendo errores provocados en contenedores por https tomcat |
Manuel López Ruiz | 13/11/2016 | 08:44 | 10:40 | 33:36 | Realizar documentación del proyecto realizado |
Manuel López Ruiz | 13/11/2016 | 11:00 | 11:43 | 34:19 | Apuntar horas trabajadas desde toggl |
Manuel López Ruiz | 16/11/2016 | 10:00 | 10:20 | 34:39 | Ampliar particiones servidor |
Manuel López Ruiz | 19/11/2016 | 18:24 | 19:46 | 36:01 | Realización presentación para explicar el funcionamiento |
Manuel López Ruiz | 21/11/2016 | 17:44 | 19:21 | 37:38 | Realización presentación para explicar el funcionamiento |
Manuel López Ruiz | 21/11/2016 | 22:00 | 23:31 | 39:09 | Realización presentación para explicar el funcionamiento |
Manuel López Ruiz | 22/11/2016 | 00:00 | 01:16 | 40:25 | Realización presentación para explicar el funcionamiento |
Manuel López Ruiz | 22/11/2016 | 12:40 | 14:40 | 42:25 | Reunión con integradores |
Manuel López Ruiz | 22/11/2016 | 16:00 | 20:21 | 46:46 | Integración Cabina de votaciones |
Manuel López Ruiz | 23/11/2016 | 16:20 | 20:05 | 50:31 | Integración Autenticación_B y ADMCensos |
Manuel López Ruiz | 28/11/2016 | 09:00 | 15:00 | 55:31 | Integración ADMCensos, CadminVotaciones y Autenticación_B |
Manuel López Ruiz | 28/11/2016 | 19:30 | 21:00 | 57:01 | Integración Autenticación_B (solucionado problema conexión con db) |
Manuel López Ruiz | 07/12/2016 | 17:50 | 18:13 | 57:24 | Integración Recuento |
Manuel López Ruiz | 09/12/2016 | 11:00 | 12:00 | 58:24 | Integración Autenticación_B |
Manuel López Ruiz | 14/12/2016 | 15:00 | 16:07 | 59:31 | Integración Autenticación_A |
Manuel López Ruiz | ?¿ | ?¿ | ?¿ | ?¿ | Solución Issue conexión entre las aplicaciones desplegadas |
Manuel López Ruiz | ?¿ | ?¿ | ?¿ | ?¿ | Solución Issue hora servidor |
Referencias
- http://christoph-burmeister.eu?p=2989
- https://www.wouterdanes.net/2014/04/11/continuous-integration-using-docker-maven-and-jenkins.html
- blog.philipphauer.de/tutorial-continuous-delivery-with-docker-jenkins/