21 April 2010
by Razvan Dobre
0 comments
NetAdmin is the latest project that I’m working on. It will be a piece of software that will help system administrators to keep an up to date set of network topologies.
More details here: http://doraz.ro/proiecte/netadmin/.
Uncategorized
25 March 2010
by Razvan Dobre
2 comments
AMI – Amazon Machine Image
EMI – Eucalyptus Machine Image
AMI reprezinta masina virtuala ce se ruleaza pe un sistem cloud de tip Amazon. Fiecare astfel de AMI are un ID propriu, ID care specifica numele masini. O masina AMI consta dintr-un kernel, un fisier de ramdisk si imagineaza virtuala a hard-disk-ului. Acestea sunt pastrate in format criptat si decriptate in momentul rularii acestora. Si Eucalyptus fiind compatibil cu Amazon EC2 foloseste acelasi format de masina virtuala.
Eucalyptus stie sa lucreze cu doua tipuri de sisteme de virtualizare: KVM si XEN. In cadrul acestui tutorial este prezentata doar crearea unei masini virtuale pentru KVM, pentru XEN fiind un proces similar.
Pentru fabricarea acestor masini virtuale exista 2 seturi de utilitare: ec2-ami-tools si euca2ools. Primul set se foloseste atunci cand se doreste crearea unei masini pentru rularea sa pe Amazon (are hardcodate url-urile pentru Amzon EC2), iar cel de al doilea in pentru situatia in care se foloseste un cloud privat: Ubuntu Enterprize Cloud.
Crearea unei masini custom consta din urmatorii pasi:
- crearea unei masini KVM sau XEN
- impachetarea masinii KVM sau XEN in formatul specific Amazon folosind euca2ools
In cele ce urmeaza voi detalia acesti pasi:
- Crearea unei masini KVM:
- kvm-img create kvm.img 4GB
- kvm -m 512 -drive file=kvm.img,if=scsi,index=0 -cdrom you_favourite_distribution.iso -boot d
- instalare sistem de operare de pe iso-ul specificat ca parametru
- kvm -m 512 -drive file=kvm.img,if=scsi,index=0,boot=on
- configurare networking
- eth0 trebuie sa iti ia ip prin dhcp iar setarile trebuie sa fie persistente
- setare hostname
- instalare pachete necesare (prezentare serverului de SSH este obligatorie pentru remote access)
- adaugare user ubuntu
- pentru XEN trebuie instalat un kernel compatibil (depinde pe ce hardware se ruleaza exista sansa de fi nevoie de un kernel cu suport de paravirtualizare built-in)
- Impachetarea masinii in formatul specific Amazon
- pentru ca operatiile de mai jos sa functioneaza corect trebuiesc incarcate variabilele de mediu din arhiva cu credentiale:
- source .euca/eucarc
- extragerea kernel-ului si a initrd-ului ce se doresc a fi folosite in exterioul masinii
-
-rw-r–r– 1 root root 6192186 2010-03-25 15:04 initrd.img-2.6.26-1-486
-rw-r–r– 1 root root 4294967296 2010-03-24 14:02 kvm.img
-rw-r–r– 1 root root 1468016 2010-03-25 15:04 vmlinuz-2.6.26-1-486
- kernel
- euca-bundle-image -i vmlinuz –kernel true -d kernel -p kernel
- euca-upload-bundle -b custom-ami -m kernel/kernel.manifest.xml
- euca-register-bundle custom-ami/kernel.manifest.xml
- EKI=eki-…..
- ramdisk
- euca-bundle-image -i initrd.img –ramdisk true -d ramdisk -p ramdisk
- euca-upload-bundle -b custom-ami -m ramdisk/ramdisk.manifest.xml
- euca-register-bundle custom-ami/ramdisk.manifest.xml
- ERI=eri-…..
- image
- euca-bundle-image -i kvm.img –kernel $EKI –ramdisk $ERI -d image -p hdd
- euca-upload-bundle -b custom-ami -m image/hdd.manifest.xml
- euca-register custom-ami/hdd.manifest.xml
- AMI=emi-…..
- testare
- euca-describe-images
- euca-run-instance $AMI -k mykey -t c1.small
Uncategorized
21 March 2010
by Razvan Dobre
0 comments
Tesla este o “cocoasa” in masivul Ciucas situata la 1613m altitudine. Este un loc izolat de civilizatie, un loc plin de liniste si panorame superbe.
Ca tot am dat pe acasa si doream sa merg intr-o excursie pe munte, ceva diferit de Postavarul ori Piatra Mare, i-am stresat pe ai mei sa mergem pe Tesla petru ca nu mai fusesem de ani buni si pentru ca este un loc izolat de civilitatie. Asadar am facut bagajul si am plecat in drumetie.
Traseul incepe de la cabana Babarunca (fosta cabana pentru ca acum nu mai este nimeni acolo) pe banda rosie si dureaza aproximativ o ora pe drum de vara. Iarna este mai dificil pentru ca este zapada si traseul nu este umblat, desi va trebui sa faceti voi carare.
Fiind inca la sfarsitul ierinii tot traserul l-am parcus pe zapada, in prima parte am batut noi poteca urmand ca mai apoi sa gasim urme, urme care dupa amprenta bocancului se putea deduce ca au mai urcat oameni dar ca am coborat pe alta parte. In afara de urmele noastre in rest este era o zapada imaculata care asociata cu un soare puternic crea o atmosfera de paradis.
In poiana Teslei era atat de liniste in cat iti puteai auzea bataile inimii si din cand in cand se mai auzea cate un croncanit corb. A fost o vizibilitate excelenta: varful Ciucas se arata impunator intr-o parte a poienii iar in alta se putea zari Costila de pe Bucegi. Pozele pe care le-am facut vorbesc de la sine.
Excursii
14 March 2010
by Razvan Dobre
3 comments
…This is the question?!
Da, ar fi o idee sa mai ies si din tara sa vad cum arata lucrurile si prin alta parte. Nu am intentia de a ramane acolo, cel putin nu in momentul de fata, dar as vrea totusi sa vad cum e si sa aduc ceva bun si util in tara. Prefer totusi sa lucrez pentru ai nostrii decat pentru straini.
Ieri am dat o tura pe la RIUF pentru a ma interesa de eventualele burse pentru master in strainatate. Dintre multitudinea de universitati mai mult sau mai putin celebre pe mine ma interesa cea de la Amstrerda: University of Amsterdam. Sunt printre putinele tari care ofera master in domeniul Network Engineer. Este vorba de un master de 1 an de zile in care voi avea cursuri cu personalitati din domeniu, cum ar fi A.S. Tunnenbaum. Chiar daca o parte din cursuri le-am facut la facultate, ar fi meritat pentru experienta si pentru aprofundarea limbii engleze.
Din pacate toate suna bine si frumos pana cand ajungi sa iti faci dosarul de admitere. Pe langa recomandari, foaie matricola, etc, testul de limba este “proba” obligatorie, iar cei care vor sa plece vor trebui sa se gandeasca din timp la acest aspect pentru ca e coada la centrele de testare iar unele se dau de 2-3 ori pe an doar.
O alta problema nu tocmai placuta este aspectul financiar. Taxa de scolarizare este de 1650Euro (comparabila cu cea de la Politehnica) si include doar studiile. In brosura pe care am primit-o este estimat un cost de 900Euro pe luna, separat de taxa de scolarizare, ce include cazarea in caminele facultatii (~400Euro/luna), mancarea si mici cheltuieli pe ici pe colo. Exista tot felul de metode de creditare in sensul asta, dar pana la urma tot ajungi sa dai banii inapoi iar pe fondul instabilitatii financiare globale nu cred ca este o idee foarte buna de a pleca acum.
Anul acesta am ratat startul, ideea de a pleca venindu-mi in preajma craciunului citind un blog al unui prieten care e masterand acolo. Probabil ca voi incerca la anul, cel putin acum stiu ce am de facut.
Uncategorized
13 March 2010
by Razvan Dobre
3 comments
Webalizer este utilitar pentru afisarea statisticilor de accesare a paginilor unui site parsand logurile de access (access log) ale serverului web. Suporta mai multe formate de loguri, formate ce sunt precizate pe site-ul oficial. Printre informatiile afisate se regasesc topul celor mai viziate pagini, numar de accesari pe zi, statistici privind originea adresei IP de unde a fost accesat siteul. Un output sumar al webalizer arata cam asa:

Pentru a putea rula Webalizer pe Slackware 13 trebuie sa descarcati sursele de pe site-ul oficial si sa le compilati. In mod implicit sunt indeplinite toate dependintele. Pentru activarea statistilor privind tara de origine a adresei IP de unde a fost accesat siteul trebuie adaugat API-ul pentru GeoIP. Lasand la o parte partea de literatura instalarea webalizer cu suport pentru GeoIP decurge in modul urmator:
1. instalare GeoIP
./configure --prefix=/usr --sysconfdir=/etc/geoip/
make && make install
2. instalare Webalizer cu suport GeoIP
./configure --sysconfdir=/etc/webalizer/ --prefix=/usr --enable-bz2 --enable-geoip
make && make install
3. configurare webalizer
- activare suport geoip:
GeoIP yes
GeoIPDatabase /usr/share/GeoIP/GeoIP.dat
- se pot seta diverse filtre pentru excluderea indexarii anumitor fisiere cum ar fi gif-uri sau alte elemente inutile
HideURL *.gif
HideURL *.GIF
HideURL *.jpg
HideURL *.JPG
4. rulare webalizer
- rularea webalizer presupune o parcugere periodica a logurilor serverului web. Pentru a realiza cel mai simplu acest lucru se creaza un script in /etc/cron.hourly (scripturi ce sunt rulate din ora in ora). Un exemplu de folosire a webalizer intr-un script este urmatorul:
webalizer /var/log/httpd/example.com-access_log -o /var/www/default/example.com
Parametrul -o specifica directorul unde vor fi stocate datele de analiza ale webalizer. In functie de numarul de siteuri si dimensiunea logurilor se poate adauga scriptul in alta categorie de rulare (daily sau weekly).
Uncategorized
11 March 2010
by Razvan Dobre
0 comments
Aparent nimic deosebit: sunt foarte multe lifturi daca nu majoritatea ce au oglinda in interior. E utila, iti mai aranjezi parut, mai constati ca trebuie sa mai tai barba etc.
Liftul de la mine de la bloc e putin mai deosebit. Cate odata cand iti este lumea mai draga se mai blocheaza. Cand iei liftul de la parter si nu trantesti bine usa nu vrea sa plece dar nici nu se mai deschid usile sa poti cobora. Este un lift clasic cu usa normala la intrare dar cu usi glisante pe interior ce se inchid automat, dar doar intr-o functionare normala.
Astazi in schimb a avut o comportare anormala, in sensul ca s-au inchis si liftul efectiv nu mai vroia sa urce. De, am spus sa inchid usa cu grija sa nu se tranteasca sa faca galagie pe scara. Vazandu-ma prins in capcana am inceput sa apas butonul pentru sonerie in cazul in care este cineva pe scara sa traga de usa exterioara pentru a se deschide usile din interior, dar in zadar: au coborat cateva persoane dar nu au binevoit sa ma ajute. Deci si prin urmare am inceput sa vad ce pot demonta din lift astfel incat prin capatura usilor interioare sa imping usa de la intrare ca sa pot evada. Da, deja cred ca v-ati prins, am demontat oglinda din lift ce a fost prinsa cu niste suruburi mai mici decat diametrul gaurilor, am impins usa exterioara si am scapat. Am pus oglinda la loc si mi-am vazut de treaba insa am urcat scarile pe jos. Mersul pe jos e mai sanatos.
Fun
7 March 2010
by Razvan Dobre
0 comments
A.k.a. Solaris Zones pe Linux.
Da intr-adevar este o implementare pe Linux a containerelor de pe Solaris. Ce inseamna asta?
In primult rand OpenVZ este o solutie de virtualizare la nivelul sistemului de operare. Practic este vorba despre p metoda de izolare de procese similar cu chroot. Acest lucru presupune un consum de resurse minim din partea layerului de virtualizare deoarece nu trebuie sa emuleze o masina completa. Masinile virtuale se numesc containere si aceasta ruleaza direct peste hardware ceea ce inseamna un spor de performanta net superior oricarei solutii de virtualizare existente.
Fiind o solutie de virtualizare la nivelul sistemului de operare, mai exact Linux, inseamna ca nu poate rula in conainere decat Linux, orice distributie de Linux dar sa fie Linux.
OpenVZ poate fi utilizat cu succes in solutii de VPS (Virtual Private Servers), in platforme de testare si de ce nu pentru economisirea de resurse hardware: densitatea de containere este mult mai mare comparativ cu alte solutii de virtualizare. Toate acestea datorita modului usor de administrare a platformei prin utilitarul vzctl.
Printre facilitatile oferite de OpenVZ se numara salvarea starii curente (suspend/resume), migrarea pe alte masini, live sau offline si un control fin al resurselor consumate in format soft_limit:hard_limit. Se pot crea topologii diverse folosind sistemul de bridge-ing din linux (brctl).
Linkuri utile:
Uncategorized
7 March 2010
by Razvan Dobre
0 comments
Momentan serverul meu este o masina mai putin capabila de a rula sisteme de virtualizare Open Source moderne cum ar fi kvm sau xen (am incercat sa rulez xen dar masina virtuala booteaza partial). Mai exact serverul este tinut de un AMD Athlon 1600+ la 1.4GHz si 1.5GB RAM.
Si pentru ca vroiam neaparat sa rulez o solutie de virtualizare alta decat una la nivelul sistemului de operare (OpenVZ) am ales VMWare Server 2 pentru ca are interfata web de administrare (prea mult CLI strica). Totul bun si frumos pana cand a venit momentul instalarii.
Prima problema de care m-am lovit a fost VMWare: modulele de kernel pe care aceasta trebuie sa le compileze pentru a functiona dadeau eroare de compilare (Slackware 13 are un kernel 2.6.29, cred ca prea nou pentru VMWare Server 2). Si cum vroiam neaparat sa rulez VMWare Server am luat google-ul la puricat iar dupa scurt timp am gasit si patch-urile necesare. Le puteti lua de aici: vmware-server-modules-2629tar. Aceastea trebuiesc puse in vmware-server-distrib/lib/modules/source inlocuind modulele existente. Reinstall.
A doua problema de care am dat este cea de autentificare in panoul de control al VMWare. Iar google a fost salvarea. Slackware este printre putinele distributii de linux care inca nu foloseste PAM. PAM (Plugable Authentication Module) este o librarie ce permite antentificarea utilizatorilor folosind surse multiple de stocare a credentialelor. PAM ofera un api standard pentru aflarea parolei pentru un user dat indiferent de backendul de stocare folosit pentru stocarea ei. Solutia este aici si consta in compilarea surselor pentru PAM. Pentru aceasta trebuie descarcat tot exista pe acel site intr-un director si rulat ./linux-pam.SlackBuild dupa ce este in prealabil facut executabil (exista sanse de eroare la “requiredbuilder -v -y -s $CWD $PKG” ce se rezolva cu un comment). Dupa compilare se instaleaza pachetul rezultat cu pkgtool.
Dupa ce am rezolvat acesti 2 pasi am reusit sa rulez VMWare Server 2 cu succes.
Uncategorized
1 March 2010
by Razvan Dobre
1 comment
Nu a trecut mult timp de la publicare articolului despre SNI asta fara sa fi testat inainte Slackware 13. Intradevar Slackware 13 suporta SNI (Servier Name Indicator) out-of-the-box: doar ce am pus certificatele create in cadrul acelui mic tutorial si voila … functioneaza. Slackware 13 vine cu OpenSSL versiunea 0.9.8k si Apache2 2.2.13.
Uncategorized
26 February 2010
by Razvan Dobre
0 comments
Intr-un final a fost inclusa aceasta functionalitate in openSSL si este compilata standard incepand cu versiunea 0.9.8l. Aceasta extensie permite ssl-ului ca in momentul in care se face peering-ul de sesiune HTTPS sa fie transmis si numele de domeniu pentru care se face cererea HTTP. Astfel fiecare virtualhost poate avea propriul certificat si aceasta va fi trimis corect browserului spre autentificare. Pana in acest moment nu puteau fi tinute 2 site-uri cu openSSL folosind aceeasi adresa ip pentru conectare ci doar un modul de testare ce foloseste gnuTLS.
Pentru testare am folosit openssl-0.9.8l si ultima versiune de apache-2.2.14 avand modulul ssl built-in (–enable-ssl), astfel:
- compilare openssl:
- ./config –prefix=/opt/openssl.l
- compilare apache2:
- ./configure –prefix=/opt/httpd –enable-ssl –with-ssl=/opt/openssl.l
- configurare apache2:
- configurare 2 virtualhost-uri ssl in /opt/httpd/conf/extra/httpd-ssl.conf
- vhost1.doraz.local cu certificat avand CN vhost1.doraz.local
- vhost2.doraz.local cu certificat avand CN vhost2.doraz.local
- start apache:
- /opt/httpd/bin/httpd
Am testat ambele host-uri cu un browser si obtin certificatele corecte (fara eroare de certificat pentru nici unul din domenii).
Uncategorized