Dans cette documentation nous installerons une solution GITEA avec une liaison LDAP et un certificat SSL.
Cette documentation est réalisée dans le cadre d'un TP guidé, il peut donc y avoir d'autre méthode plus ou moins simple pour y parvenir. Pour mieux s'y retrouver cette documentation disposera de plusieurs screenshots illustrant les consignes.
Je considère que vous avez déjà suivi la documentation “MONTAGE D'UN AD METTRE LIEN” et que vos utilisateurs sont déjà créés.
Nous considérons que vous êtes équipé de cette manière :
Les allocations de matériel (CPU/RAM…) sont à allouer selon vos envies, attention à respecter la configuration minimale. C'est à dire :
Pour GITEA :
Nos IP pour notre infrastructure seront :
Mot de passe par défaut sur toutes les sessions : Not24get
Rappel des deux commandes essentiels :
ip a
(connaitre son adresse IP) nano /etc/network/interfaces
(configuration de l'interface réseau)Conseil : Ajouter les deux machines dans un logiciel tel que mRemoteNG pour faciliter l'administration.
wget -O gitea https://dl.gitea.io/gitea/1.17.3/gitea-1.17.3-linux-amd64 chmod +x gitea
apt install gpg gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2 gpg --verify gitea-1.17.3-linux-amd64.asc gitea-1.17.3-linux-amd64
apt install git
Vérifier avec :
git --version
apt install mariadb-server
mysql_secure_installation
Suivez la procédure d'installation de MariaDB.
Vérifier la bonne exécution avec :
systemctl status mariadb
apt-get install apache2
adduser \ --system \ --shell /bin/bash \ --gecos 'Git Version Control' \ --group \ --disabled-password \ --home /home/git \ gitea
mysql -uroot -p
CREATE USER giteaDBuser IDENTIFIED BY 'Not24get'; CREATE DATABASE giteaDB DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL PRIVILEGES ON giteaDB.* TO giteaDBuser; FLUSH PRIVILEGES;
mysql -u giteaDBuser -p -e "SHOW DATABASES;"
mkdir -p /var/lib/giteadir/{custom,data,log} chown -R gitea:gitea /var/lib/giteadir/ chmod -R 750 /var/lib/giteadir/ mkdir /var/lib/giteadir/custom/conf ln -s /var/lib/giteadir/custom/conf /etc/gitea chown root:gitea /etc/gitea chmod 770 /etc/gitea
chmod 750 /etc/gitea chmod 640 /etc/gitea/app.ini
export GITEA_WORK_DIR=/var/lib/giteadir/
cp gitea /usr/local/bin/gitea
su gitea
GITEA_WORK_DIR=/var/lib/giteadir/ /usr/local/bin/gitea web -c /etc/gitea/app.ini
En cas de perte du mot de passe voici la commande à utiliser :
gitea -c /etc/gitea/app.ini admin user change-password -u gitea -p "motdepasse"
/etc/systemd/system/gitea.service
:[Unit] Description=Gitea (Git with a cup of tea) After=syslog.target After=network.target Wants=mariadb.service After=mariadb.service [Service] RestartSec=2s Type=simple User=gitea Group= WorkingDirectory=/var/lib/giteadir/ ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini Restart=always Environment=USER=gitea HOME=/home/git GITEA_WORK_DIR=/var/lib/giteadir [Install] WantedBy=multi-user.target
systemctl enable gitea systemctl start gitea systemctl status gitea
Type d'authentification LDAP (via BindDN)
CN=srv-gitea,OU=LDAP,OU=Utilisateurs,DC=dom,DC=vade,DC=fr
password
DC=dom,DC=vade,DC=fr
(&(memberof:1.2.840.113556.1.4.1941:=cn=GG-Git-Users,ou=GG,ou=Groupes,dc=dom,dc=vade,dc=fr)(|(userPrincipalName=%[1]s)(sAMAccountName=%[1]s)))
(memberof=cn=GG-Git-Admins,ou=GG,ou=Groupes,dc=dom,dc=vade,dc=fr)
sAMAccountName
givenName
sn
userPrincipalName
Une fois les champs remplis, mettre à jour manuellement la BDD en allant :
Voici les utilisateurs une fois synchronisés :
a2enmod proxy proxy_http service apache2 restart
nano /etc/apache2/sites-available/git.dom.vade.fr.conf
<VirtualHost *:80> ServerName git.dom.vade.fr Redirect permanent / https://git.dom.vade.fr/ </VirtualHost> <VirtualHost *:443> ServerName git.dom.vade.fr ServerAdmin [email protected] ProxyPass / http://127.0.0.1:3000/ ProxyPassReverse / http://127.0.0.1:3000/ ProxyRequests Off </VirtualHost>
a2ensite git.dom.vade.fr.conf systemctl apache2 reload
systemctl status apache2
apt-get install openssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -sha256 -out /etc/apache2/server.crt -keyout /etc/apache2/server.key
Suivre la procédure pour générer le certificat, mettre en FQDN : git.dom.vade.fr
.
virtual-host:443
le certificat :nano /etc/apache2/sites-available/git.dom.vade.fr.conf
SSLEngine on SSLCertificateFile /etc/apache2/server.crt SSLCertificateKeyFile /etc/apache2/server.key
a2enmod ssl
Puis redémarrer le service :
systemctl restart apache2
Rappel, utilitaire de certificat sur windows : certmgr.msc
Le certificat est présent sur le client.