Download Manual de Instalación FreeIPA+Katello3.1
Document related concepts
no text concepts found
Transcript
GUÍA BÁSICA DE INSTALACIÓN DE KATELLO Y FREEIPA Comisión ocasional de Migración a Software Libre del Consejo Sectorial del Conocimiento y el Talento Humano Ministerio Coordinador de Conocimiento y Talento Humano 2017 Licencia Esta obra está licenciada bajo la Licencia Creative Commons Atribución-Compartir Igual 4.0 Internacional. Para ver una copia de esta licencia, visite https://creativecommons.org/licenses/bysa/4.0/deed.es_ES REVISIÓN DEL DOCUMENTO ACCIÓN PERSONA FECHA Aportación inicial: Ricardo Arguello, Diana Aveiga, 29-Noviembre-2016 Lilian Llangari, Jorge Jaramillo, Marco Morales. Corregido y aumentado: Jorge Jaramillo, 30-Nov-2016 Corregido y aumentado: Paul Ochoa, 15-Ene-2017 Revisión de Estilos: Departamento de Comunicación APROBACIÓN DEL DOCUMENTO NOMBRE FIRMA FECHA Tabla de contenido Índice de contenido 1. Antes de iniciar............................................................................................................................4 2. FreeIPA........................................................................................................................................4 Instalación..............................................................................................................................4 Configuración Inicial.........................................................................................................4 Establecer el nombre del host para freeipa:.......................................................................4 Actualizar S.O. y reiniciar:................................................................................................4 Instalar paquetes de FreeIPA:............................................................................................5 Ejecutar el servidor IPA:....................................................................................................5 3. Instalación de Katello (Foreman)................................................................................................8 Instalación..............................................................................................................................8 Procedimiento...................................................................................................................8 Definir Zona Horaria.........................................................................................................8 Actualizar y Reiniciar........................................................................................................8 Instalar Katello..................................................................................................................9 Crear organicación en Foreman.........................................................................................9 Enganchar katello a FreeIPA.............................................................................................9 4. Configuración del Katello..........................................................................................................10 Ciclos de vida.......................................................................................................................11 Creación de llaves PGP........................................................................................................12 Agregar llaves.......................................................................................................................12 Creación de Productos..........................................................................................................13 Creación de Repositorios......................................................................................................13 Centos7 mirror epn..........................................................................................................14 Centos7 mirror cedia.......................................................................................................14 Desktop7..........................................................................................................................15 Tareas....................................................................................................................................16 Vistas de contenedores (CV)................................................................................................16 Activation keys.....................................................................................................................18 Registrar PC cliente para enganchar al katello de manera manual......................................20 Sistema Operativo................................................................................................................21 Tabla de Particiones..............................................................................................................22 Medio de Instalación............................................................................................................22 Plantillas...............................................................................................................................22 Parámetros............................................................................................................................23 Subred...................................................................................................................................23 Plantillas de Provisión..........................................................................................................24 Host grupo............................................................................................................................26 1. Antes de iniciar Las configuraciones se las realiza con CentOS 7.3.1611, y se deberán instalar ciertos paquetes antes de continuar con la instalación de FreeIPA y Katello # # # # # # yum yum yum yum yum yum -y -y -y -y -y -y update install install install install install epel-release net-tools nmap telnet firewalld 2. FreeIPA Es un proyecto de software libre liderada por Fedora, y patrocinada por RedHat, FreeIPA (Identidad, Políticas y Auditoria Libre – Free Identity Policy Audit) tiene por objetivo proveer un interfaz segura y sencilla para la administración de seguridades, orientados principalmente a entornos de red basados en Gnu/Linux y entornos posix compatible. Lanzada oficialmente en 2008, el proyecto en sí mismo refiere a una herramienta de instalación y un entorno de administración de servicios e identidades, basado en el proyecto 389 Directory Server de RedHat, e integra a múltiples proyectos preexistentes OpenLDAP para el servicio de directorio MIT Kerberos 5 para la autenticación y sesiones Apache HTTP Server y Apache Tomcat para la interfaz de administración y web service Python principalmente para las herramientas de instalación y configuración de sistema NTP para sincronización de horaria Dogtag para la integración de certificados CA y RA BIND para gestionar los DNS Samba para la integración con Microsoft Active Directory mediante Cross Forest Trusts Instalación Para la presente guía se utilizó como sistema operativo inicial CentOS 7.3 x64 Configuración Inicial Establecer el nombre del host para freeipa: # hostnamectl set-hostname id.uio.conocimiento.gob.ec # echo “192.168.20.16 id.uio.conocimiento.gob.ec id” >> /etc/hosts Actualizar S.O. y reiniciar: # yum -y update # reboot Configurar el firewall para abrir puertos necesarios para freeipa: # firewall-cmd --permanent \ --add-port={80/tcp,443/tcp,389/tcp,636/tcp,88/tcp,464/tcp,53/tcp,88/udp,464/udp,53/udp,123/udp} # firewall-cmd --reload Instalar paquetería necesarias para la edición de archivos y descarga de paquetes: # yum -y install vim wget tmux Instalar haveged para acelerar la instalación del PKI de FreeIPA: # yum -y install haveged Arrancamos el demonio y lo habilitamos para que arranque con el sistema # systemctl start haveged.service # systemctl enable haveged.service Se recomienda el uso de pwgen para generar passwords seguros para FreeIPA: # yum -y install pwgen # pwgen -s 16 Nos devolverá una lista, de la cual se puede seleccionar la clave para poner a nuestro sistema. Instalar paquetes de FreeIPA: Se instala la paquetería necesaria para que freeIPA funcione en nuestro server # yum -y install ipa-server ipa-server-dns Ejecutar el servidor IPA: En este punto nos presentará una serie de preguntas las cuales deberemos responder de la siguiente forma, respuestas marcadas con negrita. # ipa-server-install Do you want to configure integrated DNS (BIND)? [no]: yes Server host name [id.uio.conocimiento.gob.ec]: Please confirm the domain name [uio.conocimiento.gob.ec]: Please provide a realm name [UIO.CONOCIMIENTO.GOB.EC]: The password must be at least 8 characters long. Directory Manager password: Password (confirm): The IPA server requires an administrative user, named 'admin'. This user is a regular system account used for IPA server administration. IPA admin password: Password (confirm): Existing BIND configuration detected, overwrite? [no]: yes Do you want to configure DNS forwarders? [yes]: yes Enter an IP address for a DNS forwarder, or press Enter to skip: 192.168.10.10 DNS forwarder 192.168.30.3 added. You may add another. Enter an IP address for a DNS forwarder, or press Enter to skip: Checking DNS forwarders, please wait ... Do you want to configure the reverse zone? [yes]: Please specify the reverse zone name [20.168.192.in-addr.arpa.]: Using reverse zone(s) 20.168.192.in-addr.arpa. The IPA Master Server will be configured with: Hostname: id.uio.conocimiento.gob.ec IP address(es): 192.168.20.16 Domain name: uio.conocimiento.gob.ec Realm name: UIO.CONOCIMIENTO.GOB.EC BIND DNS server will be configured to serve IPA domain with: Forwarders: 192.168.30.3 Reverse zone(s): 20.168.192.in-addr.arpa. Continue to configure the system with these values? [no]: yes 2. You can now obtain a kerberos ticket using the command: 'kinit admin' This ticket will allow you to use the IPA tools (e.g., ipa user-add) and the web user interface. Be sure to back up the CA certificates stored in /root/cacert.p12 These files are required to create replicas. The password for these files is the Directory Manager password Cambiar el shell por defecto a bash: # kinit admin # ipa config-mod --defaultshell=/bin/bash Una vez relizada esta configuración, tendremos a FreeIPA corriendo en la url: https://id.labs.uio.conocimiento.gob.ec/ 3. Instalación de Katello (Foreman) Antes de iniciar, debemos de definir estos datos: Hostname katello.labs.uio.conocimiento.gob.ec IP 192.168.0.252 Netmask 255.255.255.0 Gateway 192.168.0.254 DNS 192.168.0.254 Password root K6Sos78VJJ12a9MZ Katello sólo puede ejecutarse en sistemas operativos x86_64. Katello ofrece un instalador basado en puppets para desplegar instalaciones de producción. Instalación Se instala la versión Katello 3.1, tomando como referencia esta guia: https://theforeman.org/plugins/katello/3.1/installation/index.html, En esta guía se describe los requerimientos iniciales del equipo, puertos requeridos, los repositorios requeridos para la instalación el katello. Procedimiento Definir hostname al servidor, En el host poner la ip y el nombre de mi server # hostnamectl set-hostname katello.labs.uio.conocimiento.gob.ec # echo “192.168.0.252 katello.labs.uio.conocimiento.gob.ec” >> /etc/hosts Definir Zona Horaria # timedatectl set-timezone America/Guayaquil Actualizar y Reiniciar # yum -y update # reboot Habilitar y configurar el firewall abriendo los puertos Puertos requeridos Los siguientes puertos deben estar abiertos a conexiones externas: 80 TCP – HTTP → utilizado para fines de aprovisionamiento 443 TCP – HTTPS → utilizado para el acceso a la web y la comunicación api 5647 TCP - qdrouterd → utilizado para las acciones del cliente y la cápsula 9090 TCP – HTTPS → utilizado para la comunicación con el proxy inteligente 8140 TCP → escucha el agente puppet 8443 TCP – HTTPS → utilizado para el acceso a la web y la comunicación api # yum install -y firewalld # systemctl start firewalld.service # systemctl enable firewalld.service # firewall-cmd –-reload // abrir todos los puertos indicados anteriormente #firewall-cmd –-permanent -–add-port=”80/tcp” // para ver los puertos abiertos # firewall-cmd –-list-all Instalar utilitarios necesarios en server # yum -y install vim wget tmux Instalar repositorios conforme a guía de referencia descrita en: https://theforeman.org/plugins/katello/3.1/installation/index.html # yum -y localinstall http://fedorapeople.org/groups/katello/releases/yum/3.1/katello/el7/x86_64/katello-repos-latest.rpm # yum -y localinstall http://yum.theforeman.org/releases/1.12/el7/x86_64/foreman-release.rpm # yum -y localinstall http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm # yum -y localinstall http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # yum -y install foreman-release-scl Instalar Katello # yum -y install katello Crear organicación en Foreman # foreman-installer --scenario katello \ --foreman-initial-organization "MCCTH" \ --foreman-initial-location "Quito" \ --foreman-admin-password "clave123" Enganchar katello a FreeIPA Se debe enganchar a katello a fFreIPA para tener acceso con LDAP, para ello se debe instalar los siguientes paquetes. # yum -y install ipa-client foreman-proxy ipa-admintools # ipa-client-install --force-join Una vez que se termine la configuración, podemos ver en equipos de FreeIPA a la maquina katello Decimos a foreman que FreeIPA será su servicio de autenticación # foreman-installer \ --foreman-proxy-realm true \ --foreman-proxy-realm-keytab /etc/foreman-proxy/freeipa.keytab \ --foreman-proxy-realm-principal 'realm-capsule@UIO.LABS.CONOCIMIENTO.GOB.EC' \ --foreman-proxy-realm-provider freeipa # foreman-installer \ --foreman-ipa-authentication=true \ --foreman-pam-service=satellite-prod 4. Configuración del Katello Una vez que el server katello haya terminado de enlazarse con FreeIPA, podemos acceder por un navegador con la url https://katello.labs.uio.conocimiento.gob.ec/ Foreman se lo puede configurar para tener control de una o varias organizaciones, con una o varias localidades, lo primero que tenemos que hacer es seleccionar la organización creada MCCTH y la localidad Quito Ciclos de vida Un ciclo de vida se lo utiliza para separar repositorios, los cuales pueden ser de desarrollo, test, producción, así el usuario final, no se le instalará software que no esté debidamente probado. Creación de entornos de ciclo de vida. Contenido → entorno ciclo de vida → Nueva ruta de entorno Debe existir por lo menos un entorno, para que las máquinas que se enlacen a katello, puedan obtener el repositorio, para agregar un ciclo de vida, seleccionaremos la opción “Añada un nuevo entorno” Creación de llaves PGP Una llave es una identificación que nos permitirá acceder de forma segura a un servidor, para obtener información del mismo, para nuestro caso, poder acceder al repositorio. Agregar llaves Contenido → Llaves GPG → Nueva llave GPG Copiamos la llave que nos servirá para acceder a los repositorios de centos7 del mirror epn.edu.ec. Lo mismo hacemos con las siguientes mirros: http://mirror.cedia.org.ec/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7 http://mirror.epn.edu.ec/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7 https://github.com/Katello/katello.org/blob/master/gpg/RPM-GPG-KEY-katello-2015.gpg http://mirror.epn.edu.ec/fedora-epel/RPM-GPG-KEY-EPEL-7 https://dl.deskosproject.org/pub/deskos/RPM-GPG-KEY-DeskOS-7 Creación de Productos Contenido → Producto → Nuevo Producto Creación de Repositorios Dentro de los productos que creamos, se crean repositorios, que son los que contienen la paquetería que puede ser instalada en cada uno de los clientes del katello. Seleccionamos un producto por ejemplo cedia-centos7, y en la pestaña de repositorios damos “Crear repositorio” Debemos seleccionar en tipo “yum” agregar la url en la que estan los rpm del sistema base, download policy se selecciona “On Demand”, para que la paquetería se vaya descargando al servidor katello conforme sea requerido. Si se selecciona la opción “backgroudn o inmediatly” se descargará todo el repositorio al servidor y ocupará espacio en disco duro. Los repositorios a descargar son: Centos7 mirror epn BASE: http://mirror.epn.edu.ec/centos/7/os/x86_64/ UPDATES: http://mirror.epn.edu.ec/centos/7/updates/x86_64/ EXTRAS: http://mirror.epn.edu.ec/centos/7/extras/x86_64/ Epel7 : http://mirror.epn.edu.ec/fedora-epel/7/x86_64/ Centos7 mirror cedia BASE: http://mirror.cedia.org.ec/centos/7/os/x86_64/ UPDATES: http://mirror.cedia.org.ec/centos/7/updates/x86_64/ EXTRAS: http://mirror.cedia.org.ec/centos/7/extras/x86_64/ Epel7 : http://mirror.cedia.org.ec/fedora-epel/7/x86_64/ Desktop7 DesKos7: https://dl.deskosproject.org/pub/deskos/releases/7/x86_64/ Quedando similar a: La primera vez debe de seleccionar los repositorios creados y poner la opción de SINCRONIZAR. Una vez terminada se tendrá el tiempo que tardó en realizar la sincronización y el número de paquetes por repositorios Tareas El monitor de tareas permite hacer el seguimiento de las tareas y verificar el estado de cada una de ellas, en caso de existir errores y de existir tareas detenidas aquí es posible reiniciarlas hasta que terminen. Vistas de contenedores (CV) Contenido → vista de contenido → Crear vista Una vista de contenido permite encapsular los repositorios creados en los diferentes productos, con la finalidad de tener uno o varios de ellos dentro de un ciclo de vida diferente. Creamos una vista: Al guardar, se nos listará los repositorios creados por cada producto. Aquí, deberemos seleccionar los que van a pertenecer a esta vista de contenido, y añadimos repositorios Publicamos una nueva versión para esta vista de contenido En este punto, nuestra vista de contenido se publicará y promoverá al entorno por defecto Library, deberemos promoverlo al entorno creado anteriormente desarrollo o producción según sea el caso en nuestro ciclo de vida. En cada publicación de un content view, se crea una versión. La misma que va atada a cada ciclo de vida. Si yo no tengo publicadas una versión ninguna máquina no va a tener acceso a los paquetes actualizados. Una maquina se ata a un ciclo de vida y a un content view. Publicar una nueva versión del Conten View. Una versión es una foto en ese momento del content view, es decir de los paquetes. Activation keys Contenido → Activation keys → Nueva llave de activación Una llave de activación permite enlazar a una vista de contenido a un determinado número de usuarios mediante el nombre de la llave de activación. Solo los usuarios que conozcan dicha llave, podrán enlazarse a esta vista de contenido. Tenemos que subscribir a nuestra llave a los productos a los cuales podemos acceder desde el usuario. Registrar PC cliente para enganchar al katello de manera manual NOTA: Toda las líneas de comando se deben de realizar en un cliente no en el server del katello. Host → host de contenidos → registrar host de contenido Aquí se registra una nueva maquina. # rpm -Uvh http://katello.labs.uio.conocimiento.gob.ec/pub/katello-ca-consumer-latest.noarch.rpm # subscription-manager register --org="MCCTH" --activationkey="dev_tics" #subscription-manager register --org="MCCTH" --environment="Library" #yum -y install katello-agent Desactivar los repositorios originales del PC cliente a fin de que solo queden activados los repositorios del la vista de contenido elegido. # # # # yum install yum-utils.noarch yum-config-manager --disablerepo base yum-config-manager --disablerepo extras yum-config-manager --disablerepo updates Sistema Operativo Hosts → Sistemas operativos → Nuevo Sistema operativo Dependiendo de los sistemas operativos que vayamos a tener, debemos definir algunos parámetros necesarios para crear plantillas. Sistema Operativo Aquí definiremos nombre del sistema, versión familia de la distribución, sistema de codificación para la contraseña, y la arquitectura que tendrá el sistema operativo. Tabla de Particiones Aqui seleccionaremos el tipo de particionamiento que se require para nuestro sistema operativo, se recomienda si son basados en redhat como CentOS o DeskOS utilizar “Kickstart default”. Medio de Instalación Un medio representa la fuente de uno o más ficheros de instalación del sistema operativo, accesible por la red. Probablemente será un mirror de internet o una copia de uno o más CD o DVD. Plantillas Le asignamos plantillas preseed a cada una de los parámetros. Los cuales gestionaran los procesos de instalación de nuestro sistema operativo. Parámetros Se podrá definir parámetros parámetros personalizados según se requierea que el sistema operativo tenga. Subred Infraestructura →subredes → Nueva Subred NOTA: Esto no es necesatrio si se tiene un servidor DHCP fuera de katello. Cada locación puede tener su subred, por ejemplo quito- guayaquil y se asigna el dominio deseado. Una localidad debe estar atada a una subred. Host Collection o Recopilacion de Hosts, Sirve para decir a todo los escritorios parqueles o instalación de paquetes. Ingreso el nombre de la subred (donde van a estar las maquinas o puedo poner una sola.) Debo escoger el dominio a la cual pertenecen los equipos la creada anteriormente. Configurar Entorno Configurar → Entornos → Nuevo entorno de Puppet Los entornos se asignan directamente a katello. Pueden ser utilizados en varios niveles a través de la interfaz web. Los entornos se usan generalmente para separar clases de diferentes tipos de Host, permitiendo típicamente que los cambios en un módulo sean probados en un entorno (por ejemplo, desarrollo) antes de ser empujados a otro (por ejemplo, producción). Plantillas de Provisión HOST → Plantillas de Provisión → Katello Kickstart Default (CLONAR) Poner nuevo nombre a nueva plantilla Kickstart ==> DESKOS Katello Kickstart Default. No olvidar presionar la tecla ENVIAR. Se recomienda copiar la plantilla del Katello Kickstart Default original , copiar la sección de la instalación de los paquetes y los edito en mi nueva plantilla (receta de instalacion de mi DESKOS Katello Kickstart Default) Host grupo Configurar → Grupo de hosts → Nuevo grupo de host Se pone la clave de root, Se pone todas las configuraciones que se van a aplicar cuando se crea un nuevo host. Grupo de host .Para hacer instalaciones desatendidas y puppet, aquí se unea vista de contenido más un ciclo de vida Colección de host – Grupo de hosts para realizar configuraciones, estos ya están creados., se usa para hacer tareas de grupos