Instalacion/automatizada

De FESOL. Proyectos de Software Libre ULS
Saltar a: navegación, buscar

Tema

Instalación y configuración de un sistema de instalación automatizada y gestión de configuración.

Preámbulo

En los modelos de administración de centro de computo existen una gran variedad de guías para implementar, estas guías se basan principalmente en el aspecto organizacional y físico del centro de computo, dejando fuera la administración de los recursos de software que las estaciones posean así como la instalación automatizada de los sistemas operativos. En ese sentido, en el ámbito de software libre, se tienen varios enfoques para la instalación y la gestión de configuraciones. Entre los enfoques de instalación del sistema operativo tenemos:

  1. Instalación manual: El cual consiste en la instalación manual de cada estación de trabajo, instalado estación por estación; configurando los usuarios, software adicionales y claves maquina por maquina.
  2. Instalación por semilla [1]: Instalación guiada, donde el administrador desarrolla unas reglas de configuración inicial (preconfiguración) así como del software inicial que se desea instalar.
  3. Instalación por imágenes de disco: Se hace creando una imagen basada en una máquina patrón y luego desplegando dicha imagen en los sistemas objetivo.
  4. Instalación automatizada [2]: Instalación sin asistencia de una persona que configure todas las opciones que se desea, donde solo se carga el medio de instalación y no se ingresa ninguna configuración.


Enfoques de administración de configuraciones:

  1. Configuración manual: Configuración de sistemas de forma manual e independiente, teniendo que configurar maquina por maquina.
  2. Configuración automatizada: El administrador describe las configuraciones que quiere aplicar a cada

Problemática

En la Universidad Luterana se cuenta con cuatro centros de computo, estos son:

Computo Ubicación Sistema Operativo No Maquinas
Uno Final de Gradas Debian 23
Dos Al par de la unidad de informática Debian 15
Tres Frente a la unidad académica Centos 10
Cuatro Frente a baños y computo 1 Ubuntu 40
Total 88

La cantidad de computadoras en toda la Universidad Luterana, abonado a una falta de personal dedicado a a función de soporte técnico, produce que los centros de computo se encuentren en un estado no óptimo para desarrollar las clases. Dentro de los problemas identificados se encuentran:

  1. Falta de conocimiento : La causa de este problema se da por no dar ha conocer el estado de los centros de computo a los docentes antes de iniciar el ciclo de estudios.
  2. Falta de Documentación: Por el momento no se cuenta con un documento o sitio que muestre cuales programas están instalados en cada centro de cómputo.
  3. Falta de Manuales de instalación. : No se cuenta con un instructivo de instalación/configuración de los equipos que sirva de apoyo para conocer el estado de los centros de computo y los programas que están instalados.
  4. Falta de controles: Esto se refiere a que no se cuenta con un método para tener un mejor control de los centros de computo y su óptimo funcionamiento.
  5. Falta de soporte técnico inmediato: No se cuenta con personal técnico que brinde soporte en los centros de computo al instante, ya que a veces se necesitan nuevas aplicaciones para uso de los estudiantes y los docentes, al no contar con asistencia, dan instrucciones a los estudiantes para instalar programas que ya están instaladas e incluso instalan otras versiones que durante o después de la instalación dan conflicto entre ellas. Esto procedimiento dificulta el desarrollo de la clase de forma efectiva.

Justificación

Ejecutar una instalación automatizada en los centro de cómputo de la Universidad Luterana Salvadoreña significa reducción de tiempo y uso eficiente de los recursos que cuenta dicha institución, con el objetivo de dar una educación de calidad obteniendo mejores resultados en las sesiones educativas.


Ya que en algún momento los centros de cómputo están en mal estado su instalación y la configuración de los programas educativos. Esto dificulta la enseñanza de los alumnos.Ademas implica que los encargados de soporte técnico tienen que hacer una nueva instalación y debe ser ordenador por ordenador y es un trabajo que requiere mucho tiempo.


Con el proyecto de instalación automatizada se pretende tener en mejores condiciones los equipos informáticos en su configuración e instalaciones de las herramientas que los alumnos requieren para su enseñanza. Y a las personas que se encargan del soporte técnico no se les dificulte al momento de dar mantenimiento a los equipos obteniendo mejores resultados en menor tiempo.


Instalación Automatizado del SO

Visión General

Vision General FAI


Explicación

  • El FAI configuration space (caja naranja en la izquerda) esta ubicado tipicamente en /var/lib/fai/config (Este es live/filesystem.dir/var/lib/fai/config en FAI Live-CD ISO or USB stick image).
  • Una configuración FAI has dos directorios adicionales en el configuration space de FAI:
    1. hooks/ ... let you specify functions or programs which are run at certain steps of the installation process. (FAI-Guide, 7.11. Hooks)
    2. tests/ ... using these test, you can check for errors of the installation or of the softupdate. (FAI-Guide, 5.8. Automated tests)
  • Steps 1-3 above (FAI Install Server) are performed if you execute a FAI installation from a FAI Server only. You can run an installation from a FAI Live-CD or a bootable USB stick as an alternative, then the Live system boots and FAI starts at step 4 above.


Instalación de debían en red usando el programa FAI

Muchos administradores de grandes servicios IT,necesitan herramientas para instalar (o reinstalar)

rápidamente, y automáticamente nuevos equipos. Como ya sabemos se puede instalar un sistema Debian desde

diferentes medios siempre que lo permita el BIOS del equipo. Puede iniciar desde un CD-ROM, una llave USB,

crear una imagen basada en una máquina patrón y luego desplegando dicha imagen en los sistemas objetivo.

Aunque existe una forma más eficiente para estos casos y es la instalación desde la red.

Aunque para eso se requiere que las máquinas objetivo sean homogéneas, saber la arquitectura del equipo. de

lo contrario necesitará tener y administrar diferentes configuración (arquitectura de sistema a instalar),

para eso debe elegir la versión apropiada, Si soporta sistemas amd64. En otros casos de i386 (32 bits).

Para su instalación se recomienda un mínimo de 512 MB de RAM y 5 GB de disco duro en un equipo de

escritorio para oficina.

Instalación a través de arranque por red.

En nuestra instalación por arranque por red debemos verificar si nuestro BIOS de nuestros clientes permiten

arrancar directamente desde la red, descargando un núcleo y una imagen mínima para usar como sistema de

archivos Este método (que tiene varios nombres como arranque PXE o TFTP). Este método de instalación

funciona en dos pasos. Primero, al arrancar el equipo, el BIOS (o la placa de red) hace una solicitud

BOOTP/DHCP para adquirir una dirección IP automáticamente.Cuando un servidor BOOTP o DHCP envía una

respuesta, incluye un nombre de archivo además de la configuración de red. Luego de configurar la red, el

equipo cliente hace un pedido TFTP (siglas en inglés de «protocolo trivial de transferencia de archivos»)

para el archivo del nombre que recibió. Una vez que adquiere dicho archivo, lo ejecuta como un gestor de

arranque. Esto luego ejecuta el programa de instalación de Debian como si lo hubiese cargado desde el disco

duro, un CD-ROM o una llave USB.

Nuestra instalación por red será mediante FAI (Fully Automatic Installer )

FAI necesita un sistema servidor para almacenar la información de despliegue y permitir que las máquinas

objetivo arranquen desde la red. Este servidor necesita el paquete fai-server (o fai-quickstart, que

también incluye los elementos necesarios para una configuración estándar).

FAI utiliza un enfoque específico para definir los varios perfiles instalables. En lugar de simplemente

duplicar una instalación de referencia, FAI es un instalador completo, totalmente configurable a través de

archivos y scripts almacenados en el servidor; no se crea automáticamente la ubicación predeterminada

/srv/fai/config/, por lo que el administrador debe crearla junto con los archivos relevantes. La mayoría de

las veces, estos archivos serán personalizados de archivos de ejemplos disponibles en la documentación del

paquete fai-doc, en el directorio /usr/share/doc/fai-doc/examples/simple/ en particular. Una vez que

definimos los perfiles, el programa fai-setup genera los elementos necesariospara iniciar una instalación

FAI; esto significa en su mayor parte preparar o actualizar un sistema mínimo (raíz NFS) para utilizar

durante la instalación. Una alternativa es generar un CD de arranque dedicado con fai-cd.

Un proceso de instalación típico FAI consiste de los siguientes:
  • Obtener un núcleo de la red e iniciarlo;
  • Montar el sistema de archivos raíz desde NFS;
  • Ejecutar /usr/sbin/fai que controla el resto del proceso (los pasos siguientes, por lo tanto, son
iniciados por este script);
  • Copiar el espacio de configuración desde el servidor a /fai/;
  • Ejecutar fai-class. Se ejecutan en orden los scripts /fai/class/[0-9][0-9]* y devuelve los nombres de
«clases» que aplican a la máquina siendo instalada; esta información servirá como base para los pasos
siguientes. Esto permite cierta flexibilidad en la definición de los servicios a instalar y configurar.
  • Obtener una cantidad de variables de configuración, que dependen de las clases relevantes;
  • Particionar los discos y dar formato a las particiones basándose en la información provista
por /fai/disk_config/clase;
  • Montar dichas particiones;
  • Instalar el sistema base;
  • Presembrar la base de datos Debconf con fai-debconf;
  • Obtener la lista de paquetes disponibles para APT;
  • Instalar los paquetes enumerados en /fai/package_config/clase;
  • Ejecutar los scripts postconfiguración, /fai/scripts/clase/[0-9][0-9]*;
  • Grabar los registros de instalación, desmontar las particiones y reiniciar

Instalación de FAI

USAR apt-get párr Instalar el los following Paquetes.

paquete de cliente de instalación fai-cliente / completamente automática

fai-doc / Documentación para FAI

fai-nfsroot / paquete completamente automática nfsroot Instalación

fai-inicio rápido / paquete de inicio rápido Instalación completamente automática

fai-server / paquete completamente automática del servidor de instalación

fai-kernels / granos especiales para FAI (Instalación completamente automática)

Configuracion de los Archivos del FAI:

Actualizar: / etc / fai / fai.conf

/ Etc / fai / fai.conf - configuración de FAI (Instalación completamente automática)

El acceso al servidor Debian a través de NFS montado directorio Si se define FAI_DEBMIRROR, instalar

clientes lo montan a $ mntpoint FAI_DEBMIRROR = yournfs debianmirror :/ ruta / al / debianmirror

LOGUSER: una cuenta en el servidor de instalación que ahorra todos los archivos de registro Y que pueden

cambiar el núcleo que se inicia a través de la red. Configurar. Rhosts para esta cuenta y PAM, de manera

que root puede iniciar sesión De toda instalar clientes sin contraseña. Esta cuenta debe tener Permisos

de escritura para / srv / tftp / fai. Por ejemplo, puede usar escritura permisos para:

linuxadm grupo. chgrp linuxadm / srv / tftp / fai; chmod

G+ w / srv / tftp / fai. Si no está definida la variable, esta función se desactiva. Definir ella, para que

pueda, por ejemplo. LOGUSER = fai

LOGUSER = fai

Set tipo de protocolo para el almacenamiento de registros. Valores: ssh, rsh, ftp

FAI_LOGPROTO = ssh

El espacio de configuración del servidor de instalación

FAI_CONFIGDIR = / srv / fai / config

Cómo acceder al espacio de configuración fai

Predeterminado si es undefined aquí: nfs :/ / `hostname` / $FAI_CONFIGDIR

apoyados URL-tipos: nfs, archivo, cvs cvs, + ssh, svn + archivos, svn + http, …

FAI_CONFIG_SRC = nfs :/ / YourServerName $ FAI_CONFIGDIR

Las siguientes variables son de sólo lectura para la mayoría de los usuarios

Punto de montaje donde se montará el espejo Mntpoint = / media / espejo

Actualizar: make-fai-nfsroot.conf

Estas variables sólo son utilizados por make-fai-nfsroot aquí se puede utilizar también las variables

definidas en fai.conf

Directorio del servidor de instalación donde el nfsroot para FAI es Creación, tamaño aprox: 250 MB, también

se define en bootptab o dhcp.conf

NFSROOT = / srv / fai / nfsroot

Añadir una línea para mirrorhost y Installserver cuando el DNS no está disponible en los clientes. Esta

línea (s) se añadirá a $ nfsroot / etc / hosts.

NFSROOT_ETC_HOSTS = "yourinstallserver 192.168.1.250"

FAI_DEBOOTSTRAP = "http://mirror.exp.dc.uba.ar/debian etch»

La contraseña de root encriptada (con md5 o cripta) en todas instalar clientes durante Proceso de

instalación; utilizado al acceder a través de ssh; defecto PW: fai

FAI_ROOTPW = '$ 1 $ kBnWcO.E $ djxB128U7dMkrltJHPf6d1' Este paquete kernel se usa para arrancar los

clientes a instalar.

KERNELPACKAGE = / usr/lib/fai/kernel/linux-image-2.6.18-fai- kernels_1_amd64.deb

Ubicación de un archivo identity.pub; Este usuario puede conectarse a la instalación clientes como root sin

contraseña; sólo es útil con FAI_FLAGS = "sshd"

SSH_IDENTITY = / root / .ssh / id_rsa.pub

Siguientes líneas debe ser de sólo lectura para los "usuarios"

FAI_DEBOOTSTRAP_OPTS = "- exclude = dhcp-client, info - arco amd64 - extranjero"

Para amd64 usar:

KERNELPACKAGE = / usr/lib/fai/kernel/linux-image-2.6.18-fai-kernels_1_amd64.deb

FAI_DEBOOTSTRAP_OPTS = "- exclude = dhcp-client, info - arco amd64" Para i386 usar:

KERNELPACKAGE = / usr/lib/fai/kernel/linux-image-2.6.18-fai-kernels_1_i386.deb

FAI_DEBOOTSTRAP_OPTS = "- exclude = dhcp-client, info"

En FAI_DEBOOTSTRAP_OPTS, la opción "- extranjero" permite Instalar Log in using Una arquitectura Distinta.

Agregar en / etc / fai / apt los Archivos de configuración del sources.list y pt.conf correspondientes.

Antes de Poder ejecutar FAI debemos Configurar:DHCP

Actualizar: / etc/dhcpd3/dhcpd.conf

Dhcpd.conf para un fai servidor de instalación reemplazar faiserver con el nombre de su servidor de

instalación de esta manera negar clientes desconocidos:

Opción dhcp-max-message-size 2048; utilizar-host-decl-nombres; Siempre respuesta-rfc1048 sucesivamente;

allow bootp;

permitir el arranque;

subred 192.168.1.0 netmask 255.255.255.0 {

  opción routers nodo00;
  option domain-name "elefante";
  option domain-name-servers 157.92.27.253, 157.92.1.1;
  opción de tiempo de los servidores nodo00;
  opción ntp-servers nodo00;
  nombre-servidor nodo00;
  nodo00 next-server;
  filename "pxelinux.0";

}

Generar más líneas con:

Perl-e 'para (1 .. 25) {printf "host atómicas% 02s {hardware ethernet XXX: $ _; fixed-address atómicas%

02s;} \ n", $ _, $ _;}'

Reemplazar 1:2:3:4:5: XX con las direcciones de hardware de sus clientes

Host fai-servidor {hardware ethernet 00:15:17:02:29:66; fixed-address atom02;}

acogerá nodo00 {hardware ethernet 00:15:17:0 C: 45: ed; fixed-address atom01;}

acogerá nodo01 {hardware ethernet 00:15:17:02:28: FE; fixed-address atom03;}

acogerá nodo03 {hardware ethernet 00:15:17:02:29:5 E; fixed-address atom04;}

acogerá nodo04 {hardware ethernet 00:15:17:00:00:00; fixed-address atom05;}

}

TFTP

Actualizar: / etc / default / tftpd-hpa

Valores predeterminados para tftpd-hpa RUN_DAEMON = "yes" OPTIONS = "-l-s / srv / tftp / fai /"

INETD

Actualizar: / etc / inetd.conf En la ultima linea agregar,

ftp dgram udp wait root / usr / sbin / in.tftpd in.tftpd-s / srv / tftp / fai /

NFS

Actualizar: / etc / exports para ponerte en contacto con las siguientes lineas

/ Srv / fai / config * (async, ro, no_subtree_check)

/ Srv / fai / nfsroot * (async, ro, no_subtree_check, no_root_squash)

Reiniciar Todos Los Servicios:

/etc/init.d/dhcp3-server

/ etc / init.d / tftpd-hpa

/ etc/ Init.d / openbsd-inetd etc

/ Etc / init.d / inicio mountnfs.sh

/ Etc / init.d / nfs-kernel-server

/ etc / init.d / nfs-user-server

Generar el / root

Con Todo esto configurado y actualizado Podemos armar el "/ root" Montar párrafo mediante ntfs. Lanzamos:

fai-setup

Si ocurre algún error Se Puede armar el nfsroot Log in using: make-fai-nfsroot-r-v Configuración levantar a

través de PXE en La Carpeta srv / tftp / fai / pxelinux.cfg / crear archivo Que contenga: generada por

fai-chboot para el host atom0X con IP 192.168.1.XXX

generando fai por defecto

generar una etiqueta fai

kernel vmlinuz-install

anexar ip = FAI_ACTION dhcp = install root = / dev / nfs nfsroot =  192.168.1.200 :/ srv / fai / nfsroot 

FAI_FLAGS = verbose, sshd, createvt

El nombre del mismo es la direccion de IP en hexadecimal Toda en mayusculas (Example "C0A801C9")


Configuración adicional

Permitir Que las maquinas en instalación Hagan inicio de sesión del remoto al servidor de Instalación en

fai.conf

LOGUSER = fai

LOGMETOD = ssh

Generar un nuevo nfsroot ONU

hacer chroot / srv / fai / nfsroot /

Generar Las claves publica y Privada con:ssh-keygen-t rsa

salir del chroot

salida raíz autorizamos al usuario del nfsroot párr logiarse con el usuario fai en el servidor de

instalación, párr esto copiamos la clave publica en la configuracion locales del usuario fai de como las

claves Autorizadas del ssh.

cp / srv / fai / nfsroot / root / .ssh / id_rsa.pub /

home/fai/.ssh/authorized_keys2

Reconfiguración de las exportaciones párr soportadoas pro SSH cuando se esta Instalando. esta configuración

es redundante, deber usarse en segunda opción en el Caso Que se produzca error des de permisos en el NFS a

la hora de logearse a través de SSH.

/ Home 192.168.1.0/255.255.255.0 (rw)

/ Srv / fai / config 192.168.1.250/255.255.255.0 (async, ro, no_subtree_check, anonuid = 0, anongid = 0)

/ Srv / fai / nfsroot 192.168.1.250/255.255.255.0 (async, ro, no_subtree_check, no_root_squash, anonuid =

0, anongid = 0)

Configuración Automatizado de Equipos

Para la configuración automática de equipos, dentro de GNU/Linux tenemos una gran variedad de software [3] pero para nuestro caso solo consideraremos dos :

  1. Chef
  2. Puppet
  3. CFEngine

Las selección de software para la administración corresponde a la demanda que tienen en la lista de Debian Jobs. Para el proyecto de administración automatizada de software en la Universidad Luterana, se ha decido implementar puppet.

Las configuraciones que se aplicaran en los centros de computo son:


Puppet

Antes de poder implementar este sistema, es necesario asignar nombres a cada una de las computadoras dentro de la red. El dominio local para cada centro se sugiere debe corresponder a: <numero de la maquina>.<computo o unidad en la que se encuentra>.uls . Por ejemplo pc1.computo1.uls ó miriam.academica.uls .


Las configuraciones de puppet se describen a continuación:

Los manuales de usuario son:

Referencias

[1] Preseed: https://wiki.debian.org/DebianInstaller/Preseed

[2] FAI: Instalación completa automatizada http://fai-project.org/

[3] http://en.wikipedia.org/wiki/Comparison_of_open-source_configuration_management_software

[4] http://debian-handbook.info/browse/es-ES/stable/sect.automated-installation.html

[5] https://wiki.debian.org/DebianEdu/HowTo/FaiInstallDebianEdu

[6] http://wiki.fai-project.org/wiki/FAI_Installation_Overview

[7] http://fai-project.org/fai-guide.html