Servidor 16/17

De Wiki de EGC
Revisión del 21:28 31 oct 2016 de Manloprui1 (discusión | contribuciones) (Tiempo empleado)
Saltar a: navegación, buscar

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
  • ¿Firmar el certificado de Let's Encrypt Benavides?
  • Limitación de subdominios, Propuestas de mejora
  • ¿Problemas con el puerto 443?

Próximos pasos

  1. Como desplegar proyectos tomcat en un docker que se genere automáticamente
  2. Como lanzar pruebas de un proyecto maven en un docker que se genere automáticamente


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/

Idea inicial

  1. Desplegar proxy-inverso
  2. Desplegar Let's Encrypt
  3. ¿Desplegar registry?
  4. Desplegar jenkins master
  5. Configurar proyecto en jenkins (varios y tal)

-- Tras cada modificación --

  1. Desplegar dockers necesarios para pasar los tests
  2. Ejecutar scripts preparación dockers
  3. Pasar los tests
  4. Si los pasa, desplegar dockers de despliegue (docker beta)
  5. Ejecutar scripts preparación dockers
  6. Desplegar en dockers beta un war (que sea una copia del war así evitamos problemas mientras se lanzan test del anterior)

-- Para despliegue estable --

  1. Se despliegan los dockers estables
  2. Ejecutar scripts preparación dockers
  3. Desplegar en dockers estable un wat (que sea una copia del war del docker beta)

Posibilidades

  • Es posible desplegar y eliminar contenedores desde dentro del contenedor jenkins.

Configuración jenkins master

Plugins

  • Docker

Docker (no funcional actualmente)

  • A modificar en la máquina anfitriona con el fin de abrir el puerto y permitir que se conecte el plugins "docker" instalado en jenkins
    • Añadir al archivo vim /etc/sysconfig/docker; OPTIONS=--selinux-enabled -H unix:///var/run/docker.sock -H tcp://0.0.0.0:4243
  • Administrar Jenkins > Configurar el sistema > Añadir una nueva nube (abajo) > Docker
    • Docker Name: docker_on_localhost
    • Docker URL: unix:///var/run/docker.sock

Otras herramientas

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



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)

Referencias