instalacion
title: Instalación
Docker-compose​
Para instalar Harbor utilizando Docker Compose, sigue los pasos oficiales recomendados:
-
Accede a la página de releases de Harbor.
-
Descarga el instalador online u offline para la versión que desees instalar.
-
(Opcional) Descarga el archivo *.asc correspondiente para verificar la autenticidad del paquete.
El archivo *.asc es una clave OpenPGP. Para verificar que el paquete descargado es genuino, realiza los siguientes pasos:
-
Obtén la clave pública asociada al archivo *.asc:
gpg --keyserver hkps://keyserver.ubuntu.com --receive-keys 644FF454C0B4115C
DeberÃas ver el mensaje:
public key "Harbor-sign (The key for signing Harbor build) <jiangd@vmware.com>" imported
-
Verifica que el paquete es genuino ejecutando uno de los siguientes comandos según el tipo de instalador:
Online installer:
gpg -v --keyserver hkps://keyserver.ubuntu.com --verify harbor-online-installer-version.tgz.asc
Offline installer:
gpg -v --keyserver hkps://keyserver.ubuntu.com --verify harbor-offline-installer-version.tgz.asc
El comando
gpg
confirmará que la firma del paquete coincide con la clave *.asc. DeberÃas ver una confirmación de que la firma es correcta.gpg: armor header: Version: GnuPG v1
gpg: assuming signed indata 'harbor-offline-installer-v1.10.0-rc2.tgz'
gpg: Signature made Fri, Dec 6, 2019 5:04:17 AM WEST
gpg: using RSA key 644FF454C0B4115C
gpg: using pgp trust model
gpg: Good signature from "Harbor-sign (The key for signing Harbor build) <jiangd@vmware.com> [unknown]
-
-
Extrae el paquete del instalador usando
tar
:Online installer:
tar xzvf harbor-online-installer-version.tgz
Offline installer:
tar xzvf harbor-offline-installer-version.tgz
-
Accede al directorio extraÃdo:
cd harbor
-
Configura el archivo
harbor.yml
según tus necesidades. Asegúrate de establecer correctamente la secciónhostname
y, si es necesario, configura las secciones de autenticación y base de datos. -
Instala Harbor ejecutando el script
install.sh
:sudo ./install.sh
Este script realizará todas las configuraciones necesarias y levantará los contenedores de Harbor.
Si queremos usar Traefik, tenemos que desactivar el TLS de Harbor y que haga de terminador Traefik
Paramos los contenedores de Harbor:
docker-compose down
Modificar el archivo docker-compose.yml
de Harbor para que use la red creada y los labels necesarios para Traefik:
labels:
- "traefik.enable=true"
- "traefik.http.routers.harbor.rule=Host(`harbor.opensecdevops.com`)"
- "traefik.http.routers.harbor.entrypoints=websecure"
- "traefik.http.routers.harbor.tls=true"
- "traefik.http.routers.harbor.tls.certresolver=le"
- Levanta los contenedores de Harbor nuevamente:
docker-compose up -d --build
-
Inicia sesión con las credenciales predeterminadas:
- Usuario:
admin
- Contraseña:
Harbor12345
Se recomienda cambiar la contraseña del administrador después del primer inicio de sesión.
- Usuario:
Kubernetes​
https://github.com/goharbor/harbor-helm.git
Clonar el repositorio:
git clone https://github.com/goharbor/harbor-helm.git
Acceder al directorio recién clonado:
cd harbor-helm
A continuación, copiar o modificar el archivo values.yaml
según las necesidades del entorno. En el archivo values.yaml
se deben establecer los siguientes parámetros:
expose:
type: ingress
tls:
enabled: true
secret:
secretName: "SECRET_CERT"
certSource: secret
ingress:
hosts:
core: "harbor.opensecdevops.com"
className: "appsec-nginx"
annotations:
k8s.io/appsec-nginx: appsec-nginx
nginx.ingress.kubernetes.io/proxy-body-size: "0"
trivy:
enabled: true
notary:
enabled: false
externalURL: "https://harbor.opensecdevops.com"
harborAdminPassword: admin
persistence:
persistentVolumeClaim:
registry:
size: 20Gi
Una vez configurado el archivo, proceder con la instalación utilizando Helm:
helm repo add harbor https://helm.goharbor.io
helm upgrade --install -n harbor harbor -f values.yaml harbor/harbor --create-namespace
Detalles del comando anterior:
-- install
permite instalar Harbor si no está instalado, o actualizarlo si ya existe.--create-namespace
crea el namespaceharbor
en Kubernetes si no existe.-f values.yaml
indica el archivo de configuración personalizado que se utilizará para la instalación.-n harbor
especifica el namespace donde se instalará Harbor.
El chart de Helm puede requerir editar el recurso Ingress de Harbor y añadir ingressClassName: appsec-nginx
debajo de spec
para que el Ingress funcione correctamente.