• en: Mongodb-3.6.x installation on rock64 (arm64) ()
  • blog-image

    Installer Mongodb-3.6.x sur un rock64 (arm64)

    • dHENRY
    • 19/02/2019
    • (Durée de lecture : 5 mn)

    Le paquet mongodb-3.6.x Debian pour arm64 n’existe pas dans les dépôts officiels, la dernière version connues est 3.2 sur la version stretch de Debian. Je vais donc présenter la procédure permettant de compiler le projet à partir des sources Mongodb, ainsi que la méthode de fabrication des paquets Debian pour cette version.

    La seconde possibilité d’obtenir MongoDb-3.6 sur votre Rock64 est décrite au chapitre “Vous ne souhaitez pas compiler”

    Vous souhaitez compiler :

    Pré-requis

    Python 2.7 (déjà installé dans la distribution debian)

    Récupération des sources

    Les sources mongodb-3.6 sont disponibles ici https://fastdl.mongodb.org/src/mongodb-src-r3.6.10.tar.gz

    Mongodb-server (mongod) - arm64

    Compilation

    Connectez-vous “root” à l’unité rock64

    apt install build-essential libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev libffi-dev
    #Récupérer les sources
    wget https://fastdl.mongodb.org/src/mongodb-src-r3.6.10.tar.gz
    # Extraire les sources  
    tar xfz mongodb-src-r3.6.10.tar.gz
    # Entrez dans le répertoire des sources
    cd mongodb-src-r3.6.10
    pip2 install -r buildscripts/requirements.txt
    python2 buildscripts/scons.py core --ssl --use-s390x-crc32=off
    

    Attention la procédure de compilation prend plusieurs heures !!!

    Création du paquet Debian

    Pour pouvoir installer mongodb-server sur une unité, nous allons créer un paquet Debian, qui sera installables sur n’importe quel rock64 disposant d’une distribution debian-strech. Le projet mongodb est livré avec les fichiers nécessaire au packaging Debian.

    cd /root/mongodb-src-r3.6.10
    mkdir mongodb-org-server-3.6.10-arm64 
    cd mongodb-org-server-3.6.10-arm64 
    mkdir -p etc/init.d lib/systemd/system usr/bin usr/share/doc/mongodb-server-core usr/share/man/man1/ var/run/mongodb DEBIAN 
    cp ../mongod ../mongos usr/bin/. 
    chmod 755 usr/bin/* 
    gzip -c ../debian/mongod.1 > usr/share/man/man1/mongod.1.gz 
    gzip -c ../debian/mongos.1 > usr/share/man/man1/mongos.1.gz 
    cp ../debian/copyright usr/share/doc/mongodb-server-core/. 
    gzip -c ../debian/changelog > usr/share/doc/mongodb-server-core/changelog.Debian.gz 
    cp ../debian/init.d /etc/init.d/mongodb 
    cp ../debian/mongod.conf etc/. 
    cp ../debian/mongod.service lib/systemd/system/. 
    cp ../debian/mongodb-org-server.postinst DEBIAN/postinst
    echo "systemctl stop mongod" > DEBIAN/prerm 
    echo "exit 0" >> DEBIAN/prerm 
    chmod 755 DEBIAN/postinst DEBIAN/prerm 
    

    Nous avons besoin d’un fichier control

    vi DEBIAN/control    
    

    Ajoutez ce contenu :

    Package:  mongodb-org-server   
    Version : 3.6.10  
    Source: https://fastdl.mongodb.org/src/mongodb-src-r3.6.10.tar.gz  
    Section: database  
    Priority: optional  
    Architecture: arm64  
    Maintainer: Ernie Hershey [ernie.hershey@mongodb.com](mailto:ernie.hershey@mongodb.com)  
    Build-Depends: adduser,lsb-base  
    Homepage: http://www.mongodb.org  
    Description: mongodb server 
    

    Enregistez et quitter : ESC :wq

    Pour créer le paquet :

    cd ..
    dpkg-deb --build mongodb-org-server-3.6.10-arm64
    

    Mongodb-client (mongo,…) - arm64

    Compilation

    cd /root/mongodb-src-r3.6.10
    mkdir mongodb-org-client-3.6.10-arm64
    cd mongodb-org- client -3.6.10-arm64
    mkdir -p usr/bin usr/share/doc/mongodb-client usr/share/man/man1/ DEBIAN
    cp ../mongo usr/bin/.
    chmod 755 usr/bin/*
    gzip -c ../debian/mongo.1 > usr/share/man/man1/mongo.1.gz
    cp ../debian/copyright usr/share/doc/mongodb-client/.
    gzip -c ../debian/changelog > usr/share/doc/mongodb-client/changelog.Debian.gz

    Nous avons besoin d’un fichier control

    vi DEBIAN/control
    

    Ajoutez ce contenu :

    Package: mongodb-org-client  
    Version : 3.6.10   
    Source: https://fastdl.mongodb.org/src/mongodb-src-r3.6.10.tar.gz  
    Section: database  
    Priority: optional  
    Architecture: arm64  
    Maintainer: Ernie Hershey [ernie.hershey@mongodb.com](mailto:ernie.hershey@mongodb.com)  
    Build-Depends:   
    Homepage: http://www.mongodb.org  
    Description: mongodb client   
    

    Enregistez et quitter : ESC :wq

    Pour créer le paquet :

    cd ..
    dpkg-deb --build mongodb-org- client -3.6.10-arm64
    

    Vous ne souhaitez pas compiler

    Si vous ne souhaitez pas compiler, vous pouvez toujours télécharger (avec l’outils wget [”apt install wget” si non installé sur votre système]) les paquets que j’ai créé en suivant les procédures décrites ci-avant :
    Client : https://gitlab.albatros-info.fr/dhenry/mongodb-arm64-debian/raw/master/mongodb-org-client-3.6.10-arm64.deb (MD5SUM : 0fb4749de59e82acc88fedcae6093c28 )
    Serveur : https://gitlab.albatros-info.fr/dhenry/mongodb-arm64-debian/raw/master/mongodb-org-server-3.6.10-arm64.deb (MD5SUM : 8c94369a4e12e37538c02354c7be3e76 )

    cd /root  
    wget [url du paquet, choix proposé ci-avant]
    

    Pour contrôler l’intégrité des paquets, utilisez la commande :

    md5sum [nom du paquet téléchargé]
    

    puis comparer la valeur obtenue à la valeur “ MD5SUM ” indiquée du paquet à contrôler.

    Sources m’ayant permis de construire ces paquets :
    https://fastdl.mongodb.org/src/mongodb-src-r3.6.10.tar.gz

    Installation des paquets

    Une fois les paquets créés par vous ou bien téléchargés à partir de ce site, vous utiliserez la commande :

    dpkg -i [Nom du paquet.deb]
    

    Paquets que vous avez créés :

    cd [répertoire ou sont disponible les fichier .deb]
    dpkg -i mongodb-org-server-3.6.10-arm64.deb
    dpkg -i mongodb-org-client-3.6.10-arm64.deb
    

    Paquets téléchargés :

    cd [répertoire de téléchargement des fichier .deb]
    dpkg -i dl-mongodb-org-server-3.6.10-arm64.deb  
    dpkg -i dl-mongodb-org-client-3.6.10-arm64.deb
    

    Démarrage du serveur

    systemctl start mongod
    

    Vérifiez le bon démarrage en consultant le log :

    tail -f /var/log/mongodb/mongod.log
    

    Pour quitter cette commande : CTRL+C

    Et vous obtenez des suggestion de tuning du kernel…. une application temporaire sera :

    echo never > /sys/kernel/mm/transparent_hugepage/defrag
    

    Vous pouvez appliquer cette règle au démarrage du serveur en ajoutant :

    kernel/mm/transparent_hugepage/enabled = never
    

    à la fin du fichier /etc/sysfs.conf

    Arrêt du serveur

    systemctl stop mongod
    

    Mongodb-tools (mongodump, mongorestore) - arm64

    On ne va rien compiler, et se contenter d’installer le paquet existant pour Debian (version 3.2) :

    apt install mongo-tools
    

    (**) attention cette dernière instruction peut ne pas fonctionner, certains utilisateurs rencontrent des soucis depuis la mise à disposition de mongodb Version 4

    Compilation

    Les outils mongodb, tels mongodump, mongorestore,… ont été réécris en langage GO. Les sources sont disponible ici https://github.com/mongodb/mongo-tools
    Le fichier “README.md” de ce repository explique comment compiler ces outils. Mais vous allez devoir adapter les instructions :

    apt install golang golang-go.tools libpcap0.8-dev build-essential  
    cd /opt  
    mkdir -p src/github.com/mongodb/  
    cd src/github.com/mongodb/  
    git clone https://github.com/mongodb/mongo-tools  
    cd mongo-tools  
    export GOROOT=/usr/lib/go-1.11/;export CC=gcc;./build.sh
    

    Créer le paquet Debian

    cd /opt/src/github.com/mongodb/mongo-tools  
    mkdir mongodb-org-tools-arm64  
    cd mongodb-org-tools-arm64/  
    cp ../bin/* usr/bin/.  
    chmod 755 usr/bin/*
    

    Nous avons besoin d’un fichier control

    vi DEBIAN/control  
    

    Ajoutez ce contenu :

    Package: mongodb-org-tools  
    Version: 2019.03.26  
    Source: https://github.com/mongodb/mongo-tools  
    Section: database  
    Priority: optional  
    Architecture: arm64  
    Maintainer: https://github.com/mongodb/mongo-tools  
    Build-Depends:  
    Homepage: https://github.com/mongodb/mongo-tools  
    Description: mongodb tools
    

    Enregistez et quitter : ESC :wq
    Pour créer le paquet :

    cd ..
    dpkg-deb --build mongodb-org-tools-arm64
    

    Si vous ne souhaitez pas compiler, téléchargez le paquet Debian que j’ai créé : https://gitlab.albatros-info.fr/dhenry/mongodb-arm64-debian/raw/master/mongodb-org-tools-arm64.deb

    Installation du paquet Debian

    Paquet que vous avez créé :

    cd [répertoire ou sont disponible les fichier .deb]
    dpkg -i mongodb-org-tools-arm64
    

    Paquet téléchargé :

    cd [répertoire de téléchargement des fichier .deb]
    dpkg -i dl-mongodb-org-tools-arm64
    

    Sécurité

    ATTENTION : par défaut mongodb écoute sur l’adresse locale 127.0.0.1 et ne dispose par conséquent d’aucun paramétrage de sécurité d’accès. Seuls les processus hébergés sur cette machine ont accès aux bases mongodb. Si vous devez changer cette configuration, référez-vous aux nombreux documents relatifs à la sécurité des serveurs mongodb.

    Licence de ce document : Creative Commons (CC BY-NC-ND 4.0)

    CETTE DOCUMENTATION EST LIVRÉE “EN L’ÉTAT”, SANS GARANTIE D’AUCUNE SORTE ET DISTRIBUÉE DANS UN BUT ÉDUCATIF EXCLUSIVEMENT. L’AUTEUR, CONTRIBUTEURS DE CETTE DOCUMENTATION OU ©MYTINYDC.COM NE SAURAIENT EN AUCUN CAS ÊTRE TENUS RESPONSABLES DES DOMMAGES DIRECTS OU INDIRECTS POUVANT RÉSULTER DE L’APPLICATION DES PROCÉDURES MISES EN ŒUVRE DANS CETTE DOCUMENTATION, OU DE LA MAUVAISE INTERPRÉTATION DE CE DOCUMENT.

    Poster un commentaire

    Désolé, la réponse à la question Captcha est incorrecte
    Merci. le message est dans le tuyau :)
    Désolé, il y a un problème dans le tuyau, veuillez réessayer plus tard :(
    Un champs est invalide

    Commentaires (non traduits)

    Pas de commentaires