Introducere
MongoDB este o bază de date pentru documente, gratuită și deschisă, catalogată NoSQL, folosită în mod obișnuit pentru noile aplicații. Acest tutorial vă va ajuta să configurați MongoDB pe server-ul dvs. pentru un mediu de aplicații de producție.
Pentru că pachetele oficiale MongoDB pentru Ubuntu 16.04 nu au fost încă publicate de către MongoDB, acest tutorial va folosi pachetele Ubuntu 14.04. Acest lucru presupune un pas adițional pentru a configura MongoDB ca un serviciu systemd care va porni automat la boot; pachetele mai vechi nu fac acest lucru automat.
Notă: Actualizarea pachetelor la versiunea 16.04 va necesita înlăturarea celui mai nou fișier creat (la pasul 3) pentru a evita conflictul cu cele care vor fi înlocuite de către pachete. În afara de asta, nu ar trebui să fie probleme cu actualizarea noilor pachete mai târziu. Dacă sunteți nesigur, vă recomandăm să așteptați lansarea pachetelor oficiale.
Pasul 1 – Adăugarea Arhivei MongoDB
MongoDB este inclus în arhiva pachetelor Ubuntu, dar arhiva oficială a MongoDB oferă cele mai noi versiuni și este cea mai recomandată cale de a instala software-ul. În acest pas vom adăuga această arhivă pe server-ul nostru.
Ubuntu asigură autenticitatea pachetelor de software verificând dacă sunt semnate cu chei GPG, așa că pentru prima dată va trebui să importăm cheia din arhiva oficială a MongoDB.
sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv EA312927
După ce ați importat cu succes cheia, veți vedea următorul mesaj:
Output:
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
În continuare, va trebui să adăugăm detaliile arhivei MongoDB pentru ca apt să știe de unde să descarce pachetele.
Lansați următoarea comandă pentru a crea o listă cu fișierele 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
După adăugarea detaliilor arhivei, va trebui să actualizăm lista de pachete.
sudo apt-get update
Pasul 2 – Instalarea și Verificarea MongoDB
Acum veți putea instala pachetele MongoDB în sine.
sudo apt-get install -y –allow-unauthenticated mongodb-org
Notă: Pachetele MongoDB pe care le folosim nu îndeplinesc standardele de putere a semnăturii pe care Ubuntu 16.04 le așteaptă și va trebui să le instalăm doar cu auxiliarul –allow-unauthenticated.
Această comandă va instala câteva pachete care conțin ultimele versiuni stabile ale MongoDB, împreună cu instrumente de management pentru server-ul MongoDB.
Pentru a putea lansa în mod corespunzător MongoDB ca serviciu pe Ubuntu 16.04, va trebui să creăm un fișier suplimentar care să descrie serviciul. Un unit file comunică systemd cum să folosească resursa. Cel mai comun tip de unit este service, care determină modul în care putem porni sau opri serviciul, atunci când ar trebui să fie pornit automat la boot, și dacă acesta este dependent de alte software-uri pentru a rula.
O să creăm un fișier unitate care să se ocupe de serviciul MongoDB. Creați un fișier de configurație numit mongodb.service în directorul /etc/systemd/system folosind nano sau editorul dvs. preferat.
sudo nano /etc/systemd/system/mongodb.service
Lipiți următorul conținut, apoi salvați și închideți fișierul.
/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 fișier are o structură simplă:
Secțiunea Unit conține prezentarea generală (ex: o descriere care poate fi citită pentru serviciul MongoDB) precum și dependențele care trebuie îndeplinite înainte de începerea serviciului. În cazul nostru MongoDB depinde deja de rețea, ca aici network.target.
Secțiunea Service este despre cum va începe serviciul. Instrucțiunea User specifică că server-ul va rula sub utilizatorul mongodb și instrucțiunea ExecStart definește comanda de început pentru server-ul MongoDB.
Ultima secțiune, Install, spune systemd când serviciul va începe automat multi-user.target este o secvență standard de pornire a sistemului, ceea ce înseamnă că server-ul va porni automat în timpul boot.
În continuare porniți nou creatul serviciu cu systemctl.
sudo systemctl start mongodb
Din moment ce nu există ieșire pentru această comandă, puteți folosi systemctl pentru a verifica dacă 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 să activați pornirea automată a MongoDB când pornește sistemul.
sudo systemctl enable mongodb
Serverul MongoDB este acum configurat și rulează, putând gestiona serviciul MongoDB folosind comanda systemctl (Ex: sudo systemctl mongodb stop, sudo systemctl mongodb start).
Pasul 3 – Ajustarea Firewall (Opțional)
Presupunând că ați urmat instrucțiunile de stare inițială a unui server pentru a activa firewall-ul pe server-ul dvs., server-ul MongoDB nu va avea acces la internet.
Dacă intenționați să folosiți server-ul MongoDB local, doar cu aplicații care rulează pe același server, este o setare recomandată și sigură. Cu toate acestea, în cazul în care doriți să vă conectați la server-ul dvs. MongoDB de pe internet, va trebui să permiteți conexiunile de intrare în ufw.
Pentru a permite accesul de pretutindeni la MongoDB prin portul implicit 27017, puteți folosi sudo ufw allow 27017. Cu toate acestea, activând accesul la internet al server-ului MongoDB la o instalare implicită oferă acces nelimitat la întreaga bază de date a server-ului.
În majoritatea cazurilor, MongoDB trebuie să fie accesat din locații de încredere, cum ar fi un alt server care găzduiește o aplicație. Pentru a finaliza această sarcină, puteți permite accesul la portul implicit MongoDB specificând adresa IP a unui alt server care va permite în mod implicit să se conecteze.
sudo ufw allow from your_other_server_ip/32 to any port 27017
Puteți verifica modificările din setările firewall folosind ufw.
sudo ufw status
Ar trebui să vedeți traficul permis către portul 27017 în ieșire. Dacă ați decis să permiteți doar unei anumite adrese IP să se conecteze la serverul MongoDB, adresa IP a locației permise va fi afișată în locul cuvântului Anywhere în ieșire.
Output:
Status: active
To Action From
– –– –-
27017 ALLOW Anywhere
OpenSSH ALLOW Anywhere
27017 (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)