Introducere
MongoDB este o baza de date pentru documente, gratuita si deschisa, catalogata NoSQL folosita in mod obisnuit pentru noile aplicatii. Acest tutorial va va ajuta sa configurati MongoDB pe server-ul dvs. pentru un mediu de aplicatii de productie.
Pentru ca pachetele oficiale MongoDB pentru Ubuntu 16.04 nu au fost inca publicate de catre MongoDB, acest tutorial va folosi pachetele Ubuntu 14.04. Acest lucru presupune un pas aditional pentru a configura MongoDB ca un serviciu systemd care va porni automat la boot; pachetele mai vechi nu fac acest lucru automat.
Nota: Actualizarea pachetelor la versiunea 16.04 va necesita inlaturarea celui mai nou fisier creat (la pasul 3) pentru a evita conflictul cu cele care vor fi inlocuite de catre pachete. in afara de asta, nu ar trebui sa fie probleme cu actualizarea noilor pachete mai tarziu. Daca sunteti nesigur, va recomandam sa asteptati lansarea pachetelor oficiale.
Pasul 1 – Adaugarea Arhivei MongoDB
MongoDB este inclus in arhiva pachetelor Ubuntu, dar arhiva oficiala a MongoDB ofera cele mai noi versiuni si este cea mai recomandata cale de a instala software-ul. in acest pas vom adauga aceasta arhiva pe server-ul nostru.
Ubuntu asigura autenticitatea pachetelor de software verificand daca sunt semnate cu chei GPG, asa ca pentru prima data va trebui sa importam cheia din arhiva oficiala a MongoDB.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
Dupa ce ati importat cu succes cheia, veti vedea urmatorul mesaj:
Output:
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
In continuare, va trebui sa adaugam detaliile arhivei MongoDB pentru ca apt sa stie de unde sa descarce pachetele.
Lansati urmatoarea comanda pentru a crea o lista cu fisierele pentru MongoDB.
sudo echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
Dupa adaugarea detaliilor arhivei, va trebui sa actualizam lista de pachete.
sudo apt-get update
Pasul 2 – Instalarea si Verificarea MongoDB
Acum veti putea instala pachetele MongoDB in sine.
sudo apt-get install -y --allow-unauthenticated mongodb-org
Nota: Pachetele MongoDB pe care le folosim nu indeplinesc standardele de putere a semnaturii pe care Ubuntu 16.04 le asteapta si va trebui sa le instalam doar cu auxiliarul --allow-unauthenticated.
Aceasta comanda va instala cateva pachete care contin ultimele versiuni stabile ale MongoDB impreuna cu instrumente de management de pentru server-ul MongoDB.
Pentru a putea lansa in mod corespunzator MongoDB ca serviciu pe Ubuntu 16.04, va trebui sa cream un fisier suplimentar care sa descrie serviciul. Un unit file comunica systemd cum sa foloseasca resursa. Cel mai comun tip de unit este service, care determina modul in care putem a porni sau opri serviciul, atunci cand ar trebui sa fie pornit automat la root, si daca acesta este dependent de alte software-uri pentru a rula.
O sa cream un fisier unitate care sa se ocupe de serviciul MongoDB. Creati un fisier de configuratie numit mongodb.service in directorul /etc/systemd/system folosind nano sau editorul dvs. preferat.
sudo nano /etc/systemd/system/mongodb.service
Lipiti urmatorul continut, apoi salvati si inchideti fisierul.
/etc/systemd/system/mongodb.service
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
Acest fisier are o structura simpla:
Sectiunea Unit contine prezentarea generala (ex: o descriere care poate fi citita pentru serviciul MongoDB) precum si dependentele care trebuiesc indeplinite inainte de inceperea serviciului. in cazul nostru MongoDB depinde deja de retea, ca aici network.target.
Sectiunea Service este despre cum va incepe serviciu. Instructiunea User specifica ca server-ul va rula sub utilizatorul mongodb si instructiunea ExecStart defineste comanda de inceput pentru server-ul MongoDB.
Ultima sectiune, Install, spune systemd cand serviciul va incepe automat multi-user.target este o secventa standard de pornire a sistemului, ceea ce inseamna ca server-ul va porni automat in timpul boot.
In continuare porniti nou creatul serviciu cu systemctl.
sudo systemctl start mongodb
Din moment ce nu exista iesire pentru aceasta comanda, puteti folosi systemctl pentru a verifica daca serviciul a pornit corect.
sudo systemctl status mongodb
Output:
mongodb.service - High-performance, schema-free document-oriented database
Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-04-25 14:57:20 EDT; 1min 30s ago
Main PID: 4093 (mongod)
Tasks: 16 (limit: 512)
Memory: 47.1M
CPU: 1.224s
CGroup: /system.slice/mongodb.service
└─4093 /usr/bin/mongod --quiet --config /etc/mongod.conf
Ultimul pas este sa activati pornirea automata a MongoDB cand porneste sistemul.
sudo systemctl enable mongodb
Serverul MongoDB este acum configurat si ruleaza putand gestiona serviciul MongoDB folosind comanda systemctl.(Ex: sudo systemctl mongodb stop, sudo systemctl mongodb start).
Pasul 3 – Ajustarea Firewall (Optional)
Presupunand ca ati urmat instructiunile de stare initiala a unui server pentru a activa firewall-ul pe server-ul dvs., server-ul MongoDB nu va avea acces la internet.
Daca intentionati sa folositi server-ul MongoDB local, doar cu aplicatii care ruleaza pe acelasi server este o setare recomandata si sigura. Cu toate acestea, in cazul in care doriti sa va conectati la server-ul dvs. MongoDB de pe internet, va trebui sa permiteti conexiunile de intrare in ufw.
Pentru a permite accesul de pretutindeni la MongoDB prin portul implicit 27017, puteti folosi sudo ufw allow 27017. Cu toate acestea, activand accesul la internet a server-ului MongoDB la o instalare implicita ofera acces nelimitat la intreaga baza de date a server-ului.
In majoritatea cazurilor, MongoDB trebuie sa fie accesat din locatii de incredere, cum ar fi un alt server care gazduieste o aplicatie. Pentru a finaliza aceasta sarcina, puteti permite accesul la portul implicit MongoDB specificand adresa IP a unui alt server care va permite in mod implicit sa se conecteze.
sudo ufw allow from your_other_server_ip/32 to any port 27017
Puteti verifica modificarile din setarile firewall folosind ufw.
sudo ufw status
Ar trebui sa vedeti traficul permis catre portul 27017 in iesire. Daca ati decis sa permiteti doar unei anumite adrese IP sa se conecteze la serverul MongoDB, adresa IP a locatiei permise va fi afisata in locul cuvantului Anywhere in iesire.
Output:
Status: active
To Action From
-- ------ ----
27017 ALLOW Anywhere
OpenSSH ALLOW Anywhere
27017 (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
Facebook Twitter