QVD-Ubuntu

De 33system wiki
Saltar a: navegación, buscar

<< Informatica

QVD

Teoría

Se trata de un servicio de almacenamiento de archivos en red.

Práctica

Planificación

Nombre
# averiguamos el nombre
hostname -> ubuntu
# lo cambiamos
sed -i 's/ubuntu/qvdserver/g' /etc/hosts /etc/hostname
/etc/init.d/hostname start
# comprobamos
hostname
hostname -f
Paquetes
# instalamos el repositorio de QVD
apt-get install python-software-properties
apt-add-repository ppa:qvd-qindel/qvd-3.1
apt-get update
# instalamos las utilidades para bridges (de otra manera no funcionará)
apt-get install brigde-utils 

Puntos de montaje
# creamos el directorio /cgroup
mkdir /cgroup
# editamos el fstab para montar cgroup
vim /etc/fstab
===============
cgroup  /cgroup cgroup defaults 0       0
===============
# relanzamos el montaje
mount -a
Redes
# editamos el archivo de configuración de la red y establecemos una
## una ip estatica
vim /etc/network/interfaces 
======================
auto eth0
iface eth0 inet static
  address 192.168.1.100
  netmask 255.255.255.0
  gateway 192.168.1.1

## añadimos un interfaz virtual que realizará la función de bridge
## donde tendremos la red de maquinas virtuales

auto qvdnet
iface qvdnet inet static
  pre-up brctl addbr qvdnet
  pre-up iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.100
  pre-up iptables -t nat -A PREROUTING -d 192.168.1.100 -p tcp --dport 8443 -j DNAT --to-destination 10.10.10.1
  post-down brctl delbr qvdnet
  address 10.10.10.1
  netmask 255.255.255.0
======================
# salvamos los cambios y levantamos el bridge
ifup qvdnet

# configuramos el archivo resolv.conf
vim /etc/resolv.conf
======================
nameserver 8.8.8.8
======================

# habilitamos el enrutado permanente editando el archivo de configuración
vim /etc/sysctl.conf
======================
net.ipv4.ip_forward=1
======================
# recargamos la configuración
sysctl -p
Logs
# creamos el directorio para los logs
mkdir /var/log/qvd
# creamos el log principal
touch /var/log/qvd/qvd.log

# para que el modulo web funcione correctamente necesita permisos
## en los directorios de trabajo
mkdir -p /tmp/qvd/admin/web
chown www-data:www-data /tmp/qvd/admin/web
touch /var/log/qvd/qvd-wat.log
chown www-data:www-data /var/log/qvd/qvd-wat.log

Base de datos

# instalamos el gestor de bases de datos
apt-get install postgresql-9.1
# configuramos postgresql
## primero el archivo pg_hba.conf
vim /etc/postgresql/9.1/main/pg_hba.conf
=========================
host    qvddb           qvd             192.168.1.0/24          md5
host    qvddb           qvd             10.10.10.0/24           md5
=========================
## despues el archivo postgresql.conf
vim /etc/postgresql/9.1/main/postgresql.conf
=========================
listen_addresses = '*'
default_transaction_isolation = 'serializable'
=========================
# reiniciamos el servicio
/etc/init.d/postgresql restart

# utilizamos el usuario postgres
# creamos el usuario
createuser -P qvd
=========================
Enter password for new role: -> passw0rd
Enter it again: -> passw0rd
Shall the new role be a superuser? (y/n) -> n
Shall the new role be allowed to create databases? (y/n) -> n
Shall the new role be allowed to create more new roles? (y/n) -> n
=========================

# creamos la base de datos con dueño qvd
createdb -O qvd qvddb

# instalamos el deployer de la base de datos de QVD
apt-get install perl-qvd-db

# creamos el directorio qvd
mkdir /etc/qvd
# copiamos la plantilla del archivo de configuracion
cp /usr/lib/qvd/config/sample-node.conf /etc/qvd/node.conf
# lo editamos
vim /etc/qvd/node.conf
=========================
nodename=qvdserver

database.host =qvdserver
database.name =qvddb
database.user =qvd
database.password =passw0rd

path.run = /var/run/qvd
path.log = /var/log/qvd
path.tmp = /var/tmp/qvd

log.filename = /var/log/qvd/qvd.log

wat.admin.login=admin
wat.admin.password=admin

log.level=ERROR
=========================
# cargamos los datos en la base de datos
cd /usr/lib/qvd/bin/
./perl qvd-deploy-db.pl

# comprobamos los datos
psql -U qvd -W -h qvdserver qvddb
\d
\q

SSL

# creamos el directorio para los certificados
mkdir /etc/qvd/certs
# nos situamos en él
cd /etc/qvd/certs/
# creamos la clave privada
openssl genrsa 1024 > server-private-key.pem
# creamos el certificado
openssl req -new -x509 -nodes -sha1 -days 60 -key server-private-key.pem > server-certificate.pem
=====================
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Madrid
Locality Name (eg, city) []:Madrid
Organization Name (eg, company) [Internet Widgits Pty Ltd]:qvd
Organizational Unit Name (eg, section) []:sysadmin
Common Name (e.g. server FQDN or YOUR name) []:qvd.theqvd.com
Email Address []:qvd@theqvd.com
=====================

# insertamos el certificado en el directorio de confianza
trusted_ssl_path=/usr/lib/ssl/certs
cert_path=/etc/qvd/certs/server-certificate.pem
cert_name=`openssl x509 -noout -hash -in $cert_path`.0
cp $cert_path $trusted_ssl_path/QVD-L7R-cert.pem
ln -s $trusted_ssl_path/QVD-L7R-cert.pem $trusted_ssl_path/$cert_name



Configuración

# instalamos el paquete del nodo
apt-get install perl-qvd-node 

# instalamos el paquete de administración
apt-get install perl-qvd-admin
# establecemos la configuracion del servidor
qa config set vm.network.ip.start=10.10.10.10
qa config set vm.network.netmask=24
qa config set vm.network.gateway=10.10.10.1
qa config set vm.network.bridge=qvdnet

qa config ssl key=/etc/qvd/certs/server-private-key.pem cert=/etc/qvd/certs/server-certificate.pem

qa config set vm.hypervisor=lxc
qa config set vm.lxc.unionfs.bind.ro=0
qa config set vm.lxc.unionfs.type=unionfs-fuse

# instalamos el paquete de administracion web
apt-get install perl-qvd-admin-web
# reiniciamos el servicio de apache
/etc/init.d/apache2 restart
# accedemos a la web de administración a traves del puerto 3000

Administración

# Establecemos el servidor
qa host add name=qvdserver address=10.10.10.1
# Añadimos un usuario
qa user add login=demo password=demo
# Agregamos un osf
qa osf add name=demo
# Insertamos un di
qa di add path=/root/ubuntu33.tar.gz osf_id=1
# Creamos una maquina
qa vm add name=demo user=demo osf=demo

Fallos

can't create bridge with the same name
brctl delbr qvdnet
ifup qvdnet

lxc

# instalamos el gestor de maquinas virtuales
apt-get install lxc
# generamos la plantilla para la maquina virtual
lxc-create -t ubuntu -n ubuntu33
# arrancamos la maquina virtual
## el usuario y la contraseña por defecto es ubuntu/ubuntu
lxc-start -n ubuntu33
# instalamos el repositorio de QVD
apt-get install python-software-properties
apt-add-repository ppa:qvd-qindel/qvd-3.1
apt-get update
# instalamos los paquetes basicos para trabajar
apt-get install perl-qvd-vma lxde libreoffice
# hacemos el tar.gz del sistema de archivos
cd /var/lib/lxc/ubuntu33/rootfs
tar -pczf /root/ubuntu33.tar.gz *

Documentación