GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer la réplication CouchDB sur Ubuntu 16.04

Dans l'article d'aujourd'hui, nous allons configurer la réplication CouchDB sur Ubuntu 16.04. CouchDB est une base de données NoSQL très similaire à cassandra. Plutôt que Java de Cassandra, CouchDB s'écrit Erlang et c'est un projet Apache Software Foundation depuis 2008. Cette base de données est orientée document, un peu comme MongoDB. Pour ce didacticiel, vous avez besoin de deux nœuds exécutant Ubuntu 16.04 Server. J'utiliserai des instances KVM sur mon ordinateur portable, vous pouvez utiliser des machines virtuelles ou physiques. Alors commençons.

Installation et CouchDB sur le nœud Ubuntu

Commençons par mettre à jour la liste des sources

sudo apt update

Ensuite, nous installons le package software-properties-common qui nous permet d'ajouter des référentiels PPA. Il est peut-être inclus par défaut, mais si ce n'est pas le cas, vous devez exécuter cette commande

sudo apt install software-properties-common

Ensuite, nous ajoutons un référentiel pour couchdb à partir duquel nous installerons le logiciel de base de données

sudo add-apt-repository ppa:couchdb/stable

Ensuite, nous pouvons installer couchdb avec une simple commande :

sudo apt-get install couchdb

Une fois cette commande exécutée, couchdb est installé et nous exécuterons sur le port 5984, nous pouvons utiliser curl pour obtenir des informations sur la base de données

curl localhost:5984

Comme nous le voyons, il fonctionne déjà.

Comment créer et supprimer une base de données

Couchdb est manipulé via des requêtes http. Lorsque vous voulez que quelque chose soit fait, vous faites une demande sur localhost sur le port par défaut sur lequel CouchDB s'exécute. C'est le port 5984. Pour des raisons de sécurité, vous ne pouvez le faire que sur localhost, sur la machine sur laquelle couchdb est en cours d'exécution.

Ajoutons la base de données :

miki@ubuntu-1:~$ curl -X PUT localhost:5984/new_database
{"ok":true}

Listons maintenant toutes les bases de données du système :

miki@ubuntu-1:~$ curl -X GET http://127.0.0.1:5984/_all_dbs
["_replicator","_users","new_database"]

Les deux premiers sont là par défaut, le new_database est ce que nous avons créé. Supprimons-le alors. La suppression des bases de données se fait avec la commande suivante

miki@ubuntu-1:~$ curl -X DELETE http://127.0.0.1:5984/new_database
{"ok":true}

Exécutez à nouveau la deuxième commande

miki@ubuntu-1:~$ curl -X GET http://127.0.0.1:5984/_all_dbs
["_replicator","_users"]

Nous constatons que la new_database est manquante, car nous l'avons supprimée.

Futon - l'interface graphique de CouchDB

Si vous visitez http://localhost:5984/_utils avec votre navigateur, vous trouverez le Futon. Futon est le frontal de l'interface graphique de CouchDB. Mais comme mentionné, CouchDB, pour des raisons de sécurité, ne permet l'administration qu'à partir de localhost, c'est-à-dire à partir du serveur sur lequel vous avez installé CouchDB. Vous ne pouvez pas taper l'adresse IP du serveur au lieu de localhost. Donc si vous souhaitez administrer votre serveur depuis votre portable, il nous faudrait utiliser une petite astuce. Nous aurions besoin de créer un tunnel ssh vers le serveur, de créer un mini VPN et de faire croire à votre serveur que la demande provient de localhost. Pour ce faire, sur votre ordinateur local, tapez la commande suivante :

miki@ThinkPad-X220T:~$ ssh -L5984:127.0.0.1:5984 [email protected]

Cela créera le tunnel dont nous avons besoin, et ensuite vous pourrez lancer votre navigateur et accéder à http://localhost:5984/_utils/index.html

Il vous donnera l'interface utilisateur similaire à celle-ci

Comme nous allons répliquer une base de données dans le chapitre suivant, nous devons configurer notre base de données de destination pour qu'elle accepte les répliques d'emplacements autres que localhost. Cela peut être défini dans le paramètre bind_address dans la page de configuration de Futon. Il doit être défini sur 0.0.0.0 pour écouter sur toutes les adresses IP plutôt que sur localhost uniquement. Quelque chose comme ça :

Vous pouvez le faire sur vos deux nœuds (vous devrez créer un nouveau tunnel ssh pour un autre nœud), mais généralement, seule la cible où la réplique est créée doit écouter sur toutes les adresses IP. La source peut continuer à écouter uniquement localhost.

Répliquer une base de données localement

La réplication d'une base de données est, comme tout le reste dans CoucdDB, également effectuée par requête HTTP. Vous devez spécifier la source et la base de données de destination. La destination peut être une base de données locale ou distante. Puisque nous avons déjà configuré ubuntu-1 pour écouter toutes les adresses IP, créons une base de données que nous répliquerons sur l'hôte ubuntu-2.

miki@ubuntu-2:~$ curl -X PUT localhost:5984/db-replica
{"ok":true}

Voyons maintenant comment nous pouvons répliquer cette base de données localement. Sur le même serveur

curl -H 'Content-Type: application/json' -X POST http://localhost:5984/_replicate -d ' {"source": "http://localhost:5984/db-replica", "target": "http://localhost:5984/foo", "create_target": true, "continuous": true} '
{"ok":true,"_local_id":"f8fa7b615b4e951d7ab7254ed58d049d+continuous+create_target"}

Cette commande doit créer une base de données foo sur l'hôte local et, comme source, prendre la base de données db-replica que nous avons déjà créée précédemment. Nous avons également activé l'option continue, ce qui signifie que la base de données sera périodiquement synchronisée lorsque vous apporterez des modifications à la base de données source, qui dans ce cas est db-replica. Après avoir exécuté cette commande, vérifions toutes les bases de données disponibles

miki@ubuntu-2:~$ curl -X GET localhost:5984/_all_dbs

["_replicator","_users","db-replica","foo"]

La base de données foo a été créée.

Réplication à distance

Essayons maintenant de le faire à distance, notre source est à nouveau db-replica sur le serveur ubuntu-2, et notre cible sera distante sur notre serveur ubuntu-1. Il créera une nouvelle base de données si elle n'est pas présente (paramètre create_target) et synchronisera le réplica en continu pour tous les changements au fur et à mesure qu'ils se produisent.

miki@ubuntu-2:~$ curl -H 'Content-Type: application/json' -X POST http://localhost:5984/_replicate -d ' {"source": "http://localhost:5984/db-replica", "target": "http://192.168.122.223:5984/remotefoo", "create_target": true, "continuous": true} '
{"ok":true,"_local_id":"cf7f6399835a893ab48282cb269eb1ab+continuous+create_target"}

Vérifions la base de données sur le serveur Ubuntu-1

miki@ubuntu-1:~$ curl -X GET localhost:5984/_all_dbs
["_replicator","_users","dbtest","remotefoo"]

Nous pouvons voir comment fonctionne la réplication à distance. Si vous ne souhaitez qu'une réplication unique, vous devez modifier le paramètre continu sur false ou simplement l'omettre. Si vous voulez voir les journaux de couchDB , vous pouvez le trouver dans le répertoire /var/log/couchdb/couch.log. Vous auriez besoin des privilèges sudo ou root pour y accéder, et si vous voulez regarder les journaux de manière interactive, cette commande le fera

sudo tail -f /var/log/couchdb/couch.log

Conclusion

Nous avons passé en revue les commandes de base et l'utilisation de CouchDB. La création d'une nouvelle base de données, la suppression, la réplication localement ou sur le réseau sont toutes effectuées par des requêtes HTTP et peuvent être codées dans votre application. La vérification des journaux est effectuée par la commande normale tail -f, et lorsque l'interface graphique est nécessaire, nous avons Futon, qui est suffisamment intuitif pour vous aider à effectuer toutes les tâches que vous ne vous sentez pas assez à l'aise pour effectuer en ligne de commande. C'est tout pour cet article, merci d'avoir lu et bonne journée.


Ubuntu
  1. Comment configurer HAProxy dans Ubuntu 16.04

  2. Comment configurer le pare-feu UFW sur Ubuntu 18.04

  3. Comment configurer Elasticsearch sur Ubuntu 18.04 et 16.04 LTS

  4. Comment installer CouchDB sur Ubuntu 20.04

  5. Comment configurer la réplication maître-esclave MariaDB sur Ubuntu 18.04

Comment configurer le serveur Git sur Ubuntu 20.04

Comment configurer le serveur Rsyslog sur Ubuntu

Comment configurer le serveur DHCP sur Ubuntu

Comment configurer la liaison réseau dans Ubuntu 20.04

Comment installer Apache CouchDB dans Ubuntu 20.04

Comment configurer le pare-feu UFW sur Ubuntu 20.04