Aller au contenu principal

Stockage de containers - Harbor

1. Informations​

1.1. harbor1.home.lab​

Caractéristiques
RAM2 Go
CPU2 coeurs
Disque60 Go
IP admin192.168.50.13

2. Documentations​

3. Installation de docker-ce​

$ sudo yum remove docker docker-common docker-selinux docker-engine
$ sudo yum -y install yum-utils device-mapper-persistent-data lvm2 container-selinux
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin
$ sudo systemctl enable --now docker
$ sudo usermod -aG docker $USER
$ sudo systemctl status docker

4. Configuration de Firewalld​

sudo firewall-cmd --permanent --port=443/tcp
sudo firewall-cmd --reload

5. Installation de harbor​

$ wget https://github.com/goharbor/harbor/releases/download/v2.13.0/harbor-offline-installer-v2.13.0.tgz
$ tar xvzf installer-v2.13.0.tgz
$ sudo mv harbor /opt/harbor
$ cd /opt/harbor

6. Génération de certificat​

6.1. Générer un certificat​

$ sudo ipa-getcert request \
-f /etc/pki/tls/certs/harbor1.home.lab.pem \
-k /etc/pki/tls/private/harbor1.home.lab.key \
-K host/harbor1.home.lab \
-N "CN=harbor1.home.lab" \
-D harbor1.home.lab \
-D harbor1

6.2. Changer les permissions du certificat et clé privée​

$ sudo chmod a+r /etc/pki/tls/certs/harbor1.home.lab.pem

6.3. Copier le certificat de l'Autorité de Certifiaction​

sudo cp /etc/pki/ca-trust/source/anchors/ca-homelab.pem /opt/harbor/common/shared/trust-certificates

6.4. Copier le certificat du serveur LDAP​

$ chmod a+r ipa1.home.lab
$ sudo mv ipa1.home.lab /opt/harbor/common/shared/trust-certificates

7. Configuration de Harbor​

  • Créer le fichier harbor.yml
$ cd /opt/harbor
$ cp harbor.yml.tmpl harbor.yml
  • Modifier le fichier harbor.yml
hostname: harbor1.home.lab

http:
port: 80

https:
port: 443
certificate: /etc/pki/tls/certs/harbor1.home.lab.pem
private_key: /etc/pki/tls/private/harbor1.home.lab.key

harbor_admin_password: $PASSWORD_ADMIN

database:
password: $PASSWORD_DB

ca_bundle: /etc/pki/ca-trust/source/anchors/ca-homelab.pem

  • Préparer l'installation
$ sudo ./prepare --with-trivy
  • Lancer l'installation
$ sudo ./install.sh

8. Authentification LDAP​

8.1. Ajouter le serveur LDAP​

  • Aller dans le menu Administration > Configuration et choisir l'onglet Authentication

9. Administration de Harbor​

9.1. Arrêter Harbor​

$ cd /opt/harbor
$ sudo docker compose down -v

9.2. Démarrer Harbor​

$ cd /opt/harbor
$ sudo docker compose up -d

9.3. Reconfigurer Harbor​

$ cd /opt/harbor
$ sudo docker compose down -v
$ sudo ./prepare --with-notary --with-clair --with-chartmuseum
$ sudo docker compose up -d

9.4. Mettre à jour le certificat du serveur LDAP​

  • Récupérer le certificat du serveur LDAP

  • Copier le certificat du serveur LDAP

$ chmod a+r ipa1.home.lab
$ sudo mv ipa1.home.lab /opt/harbor/common/shared/trust-certificates
  • Redémarrer Harbor
$ cd /opt/harbor
$ sudo docker compose down -v
$ sudo docker compose up -d

10. Création d'un registre privé​

  • #todo à compléter

11. Utilisation du registre privé harbor​

$ docker pull dockurr/windows
$ docker tag dockurr/windows harbor1.home.lab/dockurr/windows:latest
$ docker login
Username: tz
Password: $PASSWORD
$ docker push harbor1.home.lab/dockurr/windows:latest

11.1. Téléverser une image​

$ docker login harbor1.home.lab
Username: admin
Password: $PASSWORD_ADMIN

docker pull nginx:alpine
docker tag nginx:alpine harbor1.home.lab/private/mynginx:alpine
docker push harbor1.home.lab/private/mynginx:alpine

docker images

docker rmi -f <image_name_or_id>

11.2. Télécharger une image​

docker login harbor1.home.lab

docker pull harbor1.home.lab/private/mynginx:alpine
docker run -it --rm -d -p 80:80 --name web harbor1.home.lab/private/mynginx:alpine

12. Création de règle de réplication​

12.1. Créer un nouveau registre​

12.2. Créer une nouvelle règle de réplication​

è https://harbor1.home.lab/harbor/replications

  • Pour une réplication manuelle

  • Sinon pour une réplication planifiée (tous les jours à minuit)

13. Durcissement​

  • #todo à compléter

14. Configuration du chiffrement TLS entre les composants​

15. Démarrage des containers au boot​

$ docker update --restart unless-stopped $(docker ps -q)
  • Créer le fichier /etc/systemd/system/harbor.service
/etc/systemd/system/harbor.service
# /etc/systemd/system/harbor.service
[Unit]
Description=Start Harbor via Docker Compose
Requires=docker.service
After=network-online.target docker.service

[Service]
WorkingDirectory=/opt/harbor
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
Restart=always
TimeoutStartSec=0
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
  • Activer le service au démarrage
$ sudo systemctl daemon-reexec
$ sudo systemctl enable harbor