Posts Tagged ‘ubuntu’

Extindere spatiu LVM pe Ubuntu pentru VM-uri care ruleaza pe Hyper-V

lvmPentru extinderea spatiului unei masini virtuale care ruleaza pe Hyper-V (sau pe orice alta platforma de virtualizare) procedura este ceva mai complexa decat pe Windows unde totul se face foarte interactiv din Disk Management. Astfel, dupa extinderea din Hyper-V, cand masina virtuala reporneste, spatiul suplimentar apare ca si freespace .

Prima comanda care o rulam este:

parted

care ne arata partitiile existente si ce este folosita (Using /dev/sda), iar aici daca rulam „print free” o sa putem vedea free space-ul cu spatiul suplimentar extind in Hyper-V. Acum putem partitiona spatiul free. Accesam

cfdisk

unde creem din „Free Space” o partitie noua (Primary sau Logical) urmand ca apoi face Write la partition table in cfdisk.

E important un reboot la server acum.

Dupa reboot rerificam daca noua partitie exista:

fdisk -l /dev/sda

si o sa o gasim partitia FreeSpace facuta mai devreme in cfdisk, denumita ca si Linux si /dev/sdaX)

Acum urmeaza sa punem partitia /dev/sdaX facuta din freeSpace in LVM:

pvcreate /dev/sdaX

O verificam

pvdisplay

unde o sa vedem ca ultima partitie nou creata este /dev/sdaX

Acum urmeaza sa extindem volumul:

vgextend nume_vg /dev/sdaX

unde nume_vg il gasim la pvdisplay.

Verificam efectuarea cu

lvdisplay

Acum urmeaza extinderea la logical volume

lvextend -l+100%FREE /dev/nume_vg/root

Apoi face resize la filesystem:

resize2fs /dev/mapper/nume_-vg-root

Si in final putem observa spatiul suplimentar ruland:

df -h

Ubuntu 12.04 cu Apache2, php5 si MariaDB (Inlocuire MySQL cu MariaDB)

Mariadb-seal-shaded-browntext-altMariaDB, o alternativa la MySQL care, spun dezvoltatorii, este una chiar mai rapida si mai performanta decat cea a rivalului sau prezentant de altfel si cateva features aici: https://kb.askmonty.org/en/mariadb-versus-mysql-features/

Instalarea in Ubuntu, mai ales pe serverele pe care exista deja MySQL instalat, nu este complicata exceptand faptul ca trebuie adaugate manual repositorurile de pe care se face instalarea intrucat se pare ca acesta nu este inclus in binarele celor de la Ubuntu. Astfel:

Primul pas este instalarea managerului de repositories:

sudo apt-get install python-software-properties

apoi importam cheia GnuPG pentru a putea adauga repositoryul:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

Adaugam acum efectiv repository-ul:
sudo add-apt-repository 'deb http://ftp.osuosl.org/pub/mariadb/repo/10.0/ubuntu precise main'

apt-get update

, iar la final instalam MariaDB:

apt-get install mariadb-server

Acest pas vom observa ca va sterge din sistem MySQL.
The following packages will be REMOVED:
  mysql-client-5.5 mysql-client-core-5.5 mysql-server mysql-server-5.5 mysql-server-core-5.5

Acum urmeaza instalarea pachetului phpmyadmin, bine-nteles presupunand ca avem deja instalat apache2 (in caz contrar apt-get install apache2).

apt-get install phpmyadmin

care din pacate nu este suficient pentru ca acesta sa si functioneze, deoarece deodata cu MySQL se pare ca s-au mai dezinstalat si alte dependinte. 
Le reinstalam folosind:

apt-get install php5-mysql libapache2-mod-php5

Acestea fiind zise, urmeaza testarea din browser:

http://ip_hostname/phpmyadmin

 

Instalare Gerrit Code Review cu Apache, MySQL in Ubuntu 12.04 si integrarea cu Active Directory Windows Server 2008 R2

Gerrit.svgInstalarea Gerrit Code Review presupune urmarea catorva pasi si se efectueaza destul de rapid.

In primul rand creem baza de date, userul si ii alocam privilegii, in MySQL.

mysql -u root -p
CREATE USER ‘gerrit2’@’localhost’ IDENTIFIED BY ‘secret’;
CREATE DATABASE reviewdb;
ALTER DATABASE reviewdb charset=latin1;
GRANT ALL ON reviewdb.* TO ‘gerrit2’@’localhost’;
FLUSH PRIVILEGES;

Apoi creem un user. Eu l-am numit gerrit2.

adduser gerrit2

care odata ce a fost creat implicit are home folder in /home/gerrit2. Facem switch pe el pentru a face instalarea gerrit:

sudo -u gerrit2 -i

Descarcam ultima versiune de Gerrit2 de aici: http://code.google.com/p/gerrit/downloads/list si apoi trecem la instalare, dar inainte de aceasta trebuie sa mai instalam un pachet si anume default-jre.

sudo apt-get install default-jre

si acum instalarea propriu-zisa:

java -jar gerrit.war init -d /home/gerrit2

Unde va urma un wizzard de unde va trebui sa faceti setarile. Tot de aici se face si integrarea cu Active Directory si anume; la metoda de autentificare se trece ‘ldap’, iar la urmatorul pas sistemul ne intreaba de serverul ldap unde punem: ldap://active_directory_server. Am creat si un user in Active Directory cu care sa se faca si conectarea intrucat Wizzard-ul imi cerea un login la serverul de AD.

Dupa finalizarea instalarii, ar trebui sa porneasca, dar de cele mai multe ori nu o face, asa ca cel mai sigur este sa il pornim manual rulandca user gerrit2:

/home/gerrit2/bin/gerrit.sh start

Acum dupa ce am pornit gerrit o sa putem accesa pe portul specificat din browser (care de obicei este mentionat la pornire), dar nu o sa ne putem loga din cauza uneri erori referitoare la Cookie. Asa ca editam:

vim /home/gerrit2/etc/gerrit.config

unde adaugam:

canonicalWebUrl = http://gerrit.pitechnologies.ro:8080

chiar sub basePath si bine-nteles restartam gerrit cu comanda:

/home/gerrit2/bin/gerrit.sh restart

In mare cam acestea sunt setarile pentru ca gerrit sa ruleze.

Instalare+Migrare RedMine (Ruby) cu Nginx, MySQL si Passenger ca stand-alone application server prin reverse proxy (Nginx) in Ubuntu 12.04 LTS

redmine

In Nginx, migrarea sau instalarea unui RedMine nu este atat de simpla precum in Apache cu mod_passenger. De ce nu e asa de simpla ? Nu pentru ca nu ar exista un modul passenger pentru Nginx, ci pentru ca ar presupune (re)compilarea din sursa a pachetului Nginx, ceea ce pentru mine a fost un inconvenient dat fiind faptul ca pe acel server Nginx ruleaza si mai mult decat atat serveste aplicatii php-fpm, iar la un update as putea avea probleme din cauza ca pachetele caure au fost instalate cu apt-get au fost updatate, iar nginx compilat din sursa a ramas la aceeasi versiune. Asadar, am cautat o alta metoda, poate nu cea mai simpla, dar sper ca mai buna pe termen lung. Asdar voi face instalarea RedMine, folosind un Nginx deja instalat si care ruleaza pe server, impreuna cu Passenger, nu ca modul ci ca standalone server, iar intre Nginx si Passenger voi face reverse proxy 80 to 8080. Mai precis Passenger va rula cu portul 8080, iar din VirtualHost-ul de Nginx voi face reverse spre el.

Instalarea pachetelor si a dependintelor:

apt-get install build-essential openssl libcurl4-openssl-dev libreadline6 libreadline6-dev curl mysql-server libmysqlclient-dev git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config imagemagick libmagick-dev

Creem un grup si un user ‘redmine’ cu care vom rula apoi passenger-ul ca si standalone si il vom putea daemoniza.

groupadd redmine

useradd -s /bin/bash -d /var/sites/redmine -m -g redmine redmine

cd /var/sites/redmine

Acum urmeaza instalarea ruby si rubygems. Eu voi merge pe versiunea ruby1.9.3.

apt-get install ruby1.9.3 rubygems

Urmeaza instalarea passenger folosind package managerul pentru Ruby.

gem install passenger –version=”4.0.3″

apoi instalarea Phusion Passenger ca Standalone server:

passenger start

Descarcam Redmine versiunea 2.3 folosind SVN:

svn co http://svn.redmine.org/redmine/branches/2.3-stable /var/sites/redmine

Dupa copierea fisierelor face chown astfel ca ele sa ruleze cu userul si grupul redmine:

chown -R redmine:redmine /var/sites/redmine

Acum creem VirtualHost-ul in Nginx prin care face reverse proxy folosind portul 8080 catre Passenger si bine-nteles declaram root-ul siteului.

vim /etc/nginx/sites-available/redmine

in care adaugam:

upstream redmine {
server 127.0.0.1:8080;
}

server {
listen   80; ## listen for ipv4; this line is default and implied
#       listen   [::]:80 default ipv6only=on; ## listen for ipv6
server_name redmine.example.com;
access_log  /var/log/nginx/redmine.access.log;
error_log  /var/log/nginx/redmine.error.log;

root /var/sites/redmine/public;
index index.html index.htm;

# Make site accessible from http://localhost/

location / {
proxy_pass  http://redmine;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_buffering off;
proxy_set_header        Host            $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

si acum bine-nteles il punem pe enable:

ln -s /etc/nginx/sites-available/redmine /etc/nginx/sites-enabled/

Acum creem un user si o baza de date MySQL. In cazul meu, le-am creat si am migrat datele de pe o instanta RedMine deja existenta pe un alt server unde rula cu Apache si mod_passenger, deci aici am facut doar dump la SQL:

mysql -u root -p

mysql> CREATE DATABASE redmine;

mysql> GRANT ALL ON redmine.* TO ‘redmine’@localhost IDENTIFIED BY ‘parola’;

Acum urmeaza sa fac dump la baza de date folosind fisierul .sql descarcat de pe vechiul server si userul si baza de date create adineauri:

mysql -u redmine -pparola redmine < redmine.sql

Acum urmeaza sa declaram conexiunea la baza de date din fisierul de config, si anume database.yml

vim /var/sites/redmine/config/database.yml

Unde adaugam/trebuie sa avem continutul:

# MySQL (default setup).  Versions 4.1 and 5.0 are recommended.
#
# Get the fast C bindings:
#   gem install mysql
#   (on OS X: gem install mysql — –include=/usr/local/lib)
# And be sure to use new-style password hashing:
#   http://dev.mysql.com/doc/refman/5.0/en/old-client.html

production:
adapter: mysql
database: redmine
host: localhost
username: redmine
password: parola
encoding: utf8

Acum ca am fixat si conexiunea la baza de date, mai trebuie sa reglam cateva probleme legate de versiunile de ruby folosite, si asta prin instalarea bundlerului:

apt-get install libmagickwand-dev
gem install bundler

bundle install

Acum va trebui generat un secret_token folosind rake:

rake generate_secret_token

Si pentru ca am trecut la o versiune mai noua de RedMine va trebui sa facem un db migrate intrucat structura s-a modificat putin:

RAILS_ENV=production rake db:migrate

Dupa ce am facut db:migrate urmeaza sa restartam nginx si sa pornim passenger folosind portul 8080 in modul production. Pentru moment eu nu demonizez procesul ca vreau sa vad daca apar unele erori. De asemenea, tot cum spuneam mai sus, Passenger trebuie rulat cu userul redmine, creat adineauri, dar inainte repornim Nginx. Asadar:

/etc/init.d/nginx/restart
sudo -u redmine -i

passenger start -p 8080 -e production      #se poate demoniza procesul adaugand -d la comanda

Cum spuneam la inceput, am pornit passenger pe portul 8080, iar din Nginx facem reverse proxy spre el, 80 to 8080.

Pe parcursul instalarii am intampinat o problema si anume, aparitia erorii „Internal server error” in momentul in care incercam sa accesez un proiect. Am remediat-o instaland gem-ul mysql2 (gem install mysql2) si apoi am modificat in database.yml din mysql in mysql2. Dupa aceasta actiune am rulat comenziule de clear la cache si la sessions: rake tmp:cache:clear si rake tmp:sessions:clear

Compilare MySQL 5.6.11 in ubuntu

mysql-logoIn momentul de fata nu exista un pacghet binar pentru instalarea unei versiuni MySQL 5.6.X, asa ca am creat acest tutorial pentru cei ce vor sa compileze MySQL pentru a vedea noile functionalitati. Cateva functionalitati noi incepand cu versiunea 5.6.4: InnoDB Full text search, Better scaling of read-only workloads, InnoDB 5.6.4 supports databases with 4k and 8k page sizes.

Tutorialul functioneaza doar daca nu mai exista nici un alt MySQL pe sistemul respectiv, fie ca acesta a fost dezinstalat.

In prima faza trebuie sa facem disable la AppArmor.

/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

Acum urmeaza procedura de instalare MySQL 5.6.11. Inainte de toate trebuie sa creem un grup si un user mysql:

groupadd mysql

useradd -r -g mysql mysql

Instalarea libaio1 care foloseste la compilarea MySQL:

apt-get install libaio1

Acum descarcam pachetul sursa MySQL 5.6.11. Eu l-am descarcat direct de pe paina lor: http://dev.mysql.com/downloads/mysql/ si am ales pachetul:

mysql-5.6.11-linux-glibc2.5-x86_64.tar.gz

Dupa download urmeaza dezarhivarea si modificarea unor permisiuni:

cd /usr/local

tar zxvf mysql-5.6.11-linux-glibc2.5-x86_64.tar.gz

mv mysql-5.6.11-linux-glibc2.5-x86_64 mysql

cd mysql

chown -R mysql .

chgrp -R mysql .

Rulam scripul: scripts/mysql_install_db –user=mysql pentru crearea bazelor de date apoi mai facem unele modificari ale permisiunilor:

chown -R root .
chown -R mysql data

Creem scriptul de startup:

cp support-files/mysql.server /etc/init.d/mysql.server

Acum putem porni MySQL folosind comanda:

/etc/init.d/mysql.server start

Il activam sa porneasca la boot folosind:

update-rc.d mysql.server defaults.

Facem symlink spre comenzime mysql:

ln -s /usr/local/mysql/bin/* /usr/local/bin/

La final setam parola de root la MySQL impreuna cu alte setari:

mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we’ll need the current
password for the root user.  If you’ve just installed MySQL, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): <– ENTER
OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] <– ENTER
New password: <– parola de root mysql
Re-enter new password: <– parola de root mysql
Password updated successfully!
Reloading privilege tables..
… Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] <– ENTER
… Success!

Normally, root should only be allowed to connect from ‘localhost’.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] <– ENTER
… Success!

By default, MySQL comes with a database named ‘test’ that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] <– ENTER
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] <– ENTER
… Success!

All done!  If you’ve completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

Cleaning up…

Instalare Nginx cu php5-FPM in Ubuntu 12.04 LTS

Instalarea Nginx:

apt-get install nginx

Instalarea php5-FPM:

apt-get install php5-common php5-cli php5-fpm

Pornirea Nginx:

/etc/init.d/nginx start

Enable php-FPM:

vim /etc/nginx/sites-available/default

unde trebuie sa decomentam liniile referitoare la „location ~ \.php$ {” astfel incat sa arate asa:

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}

La final restartam nginx si php-fpm ruland:

/etc/init.d/nginx restart
/etc/init.d/php5-fpm restart

Testarea se face cu un info.php sau ruland whoami din php.

In ubuntu 12.10 sau o distributie mai noua trebuie inlocuita linia: fastcgi_pass 127.0.0.1:9000; cu fastcgi_pass unix:/var/run/php5-fpm.sock;

Ubuntu – cum unim mai multe PDF-uri intr-unul singur ?

In Uubntu procedura de unire a PDF-urilor este foarte simpla, datorita datorita utilitarului pdftk.
In prima faza trebuie instalat:

sudo apt-get install pdftk

Si se foloseste in felul urmator:

pdftk 1.pdf 2.pdf 3.pdf cat output merged.pdf

De asemenea cu el se mai pot selecta pagini din mai multe PDF-uri si sa fie intr-un singur PDF:

pdftk A=one.pdf B=two.pdf cat A1-7 B1-5 A8 output combined.pdf

srv StandDuPp
Articole recente