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 '[email protected]' \
--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