martes, 9 de junio de 2009

net rpc SHUTDOWN

Puede que al intentar ejecutar net rpc SHUTDOWN ... obtengamos el error:
-bash: net: command not found

Para solucionarlo tendremos que instalar el cliente de samba.
# aptitude install samba-client
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Leyendo las descripciones de las tareas... Hecho
Nota: seleccionando "smbclient" en vez de
el paquete virtual "samba-client"
Se instalarán los siguiente paquetes NUEVOS:
libtalloc1{a} libwbclient0{a} samba-common{a} smbclient
0 paquetes actualizados, 4 nuevos instalados, 0 para eliminar y 0 sin actualizar.
Necesito descargar 10,8MB de ficheros. Después de desempaquetar se usarán 29,3MB.
¿Quiere continuar? [Y/n/?]

Después de instalar samba-client podrás volver a ejecutarlo y no tendrás problemas.
net rpc SHUTDOWN -t 0 -C "Apagado desde el servidor de maquinas vituales" -f -I xxx.xxx.xxx.xxx -U Administrador%password

Encender y Apagar máquinas virtuales en el inicio del sistema

Con este script podrás iniciar y apagar todas las máquinas virtuales de tu granja de servidores virtuales VirtualBox, sin preocuparte de corromper las máquinas virtuales al apagar la máquinas hospedadora.

Utilizo -type vrdp para no lanzarlas sobre ningún entorno gráfico. Las consolas serán accesibles desde la red.

Para apagar las máquinas windows utilizo el comando net rpc SHUTDOWN -t 0 -C "Apagado desde el servidor de maquinas vituales" -f -I xxx.xxx.xxx.xxx -U Administrador%password para el apagado desde la red de una máquina windows. Me ha pasado que en algunas máquinas no he sido capaz de que funcione, pero en otras sí. No soy un experto en windows así que si alquien sabe porqué puede pasar esto que deje un comentario.

Las máquinas Gnu/Linux normalmente se apagarán correctamente con la opción VBoxManage controlvm Suse10serverOracle10g acpipowerbutton.

No os preocupéis, he pensado en todo. Las maquinas tardan un tiempo en apagarse, el script está programado para esperar 60 segundos. Y después guardará el estado de todas las máquinas virtuales, por si alguna no se apagó correctamente (VBoxManage controlvm Win2003serverMSSql savestate).

Definir el fichero /etc/init.d/maquinasvirtuales.bash:
#!/bin/bash
echo "Script de iniciado/apagardo de máquinas virtuales"
case $1 in
start)
echo "Iniciando máquinas vituales, espere a que inicien los sistemas..."
VBoxManage startvm Win2003serverMSSql -type vrdp
VBoxManage startvm Suse10serverOracle10g -type vrdp
VBoxManage startvm Debian5Nagios -type vrdp
;;
stop)
echo "Parando máquinas vituales, espere a que termien de apagar los sistemas..."

# apagar windows desde la red (Win2003serverMsSQL)
net rpc SHUTDOWN -t 0 -C "Apagado desde el servidor de maquinas vituales" -f -I xxx.xxx.xxx.xxx -U Administrador%password

# apagar como si pulsaras una vez el botón de apagar (aparagá correctamente)
VBoxManage controlvm Suse10serverOracle10g acpipowerbutton
VBoxManage controlvm Debian5Nagios acpipowerbutton

# espernado un tiempo prudencial para dar tiempo a las maquinas virtuales a que se apaguen
for i in `seq 1 60`; do
sleep 1
echo -n "."
done

# si no se apagaron las máquinas guardamos su estado, así no corromperemos los sistemas de ficheros

VBoxManage controlvm Win2003serverMSSql savestate
VBoxManage controlvm Debian5Nagios savestate
VBoxManage controlvm Suse10serverOracle10g savestate

echo "sistemas apagados"
;;
restart)
/etc/init.d/maquinasvirtuales.bash stop
/etc/init.d/maquinasvirtuales.bash start
;;
*)
echo "Usa: /etc/init.d/maquinasvirtuales.sh {start|stop|restart}"
;;
esac

viernes, 5 de junio de 2009

Debian lenny -> Apache2 + php5

Esto es algo muy liviano, pero siempre hay alguien nuevo al que hay que ayudar a hacer este tipo de cosas. Aquí explico brevemente los pasos a seguir para instalar Apache2 con PHP5 en Debian5 (lenny).
Esto descargará, desempaquetará e instalará el paquete correspondiente a Apache2.
# aptitude install apache2
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Leyendo las descripciones de las tareas... Hecho
Se instalarán los siguiente paquetes NUEVOS:
apache2 apache2-mpm-worker{a} apache2-utils{a} apache2.2-common{a} libapr1{a} libaprutil1{a} libexpat1{a}
libmysqlclient15off{a} libpq5{a} mysql-common{a} openssl{a} openssl-blacklist{a} ssl-cert{a}
0 paquetes actualizados, 13 nuevos instalados, 0 para eliminar y 0 sin actualizar.
Necesito descargar 11,3MB de ficheros. Después de desempaquetar se usarán 26,2MB.
¿Quiere continuar? [Y/n/?]
Escribiendo información de estado extendido... Hecho
Des:1 http://ftp.rediris.es lenny/main openssl-blacklist 0.4.2 [6338kB]
Des:2 http://security.debian.org lenny/updates/main openssl 0.9.8g-15+lenny1 [1043kB]
Des:3 http://security.debian.org lenny/updates/main mysql-common 5.0.51a-24+lenny1 [60,5kB]
Des:4 http://security.debian.org lenny/updates/main libmysqlclient15off 5.0.51a-24+lenny1 [1905kB]
Des:5 http://security.debian.org lenny/updates/main libaprutil1 1.2.12+dfsg-8+lenny2 [79,8kB]
Des:6 http://ftp.rediris.es lenny/main libapr1 1.2.12-5 [114kB]
Des:7 http://ftp.rediris.es lenny/main libexpat1 2.0.1-4 [136kB]
Des:8 http://ftp.rediris.es lenny/main libpq5 8.3.7-0lenny1 [372kB]
Des:9 http://ftp.rediris.es lenny/main apache2-utils 2.2.9-10+lenny2 [144kB]
Des:10 http://ftp.rediris.es lenny/main apache2.2-common 2.2.9-10+lenny2 [824kB]
Des:11 http://ftp.rediris.es lenny/main apache2-mpm-worker 2.2.9-10+lenny2 [257kB]
Des:12 http://ftp.rediris.es lenny/main apache2 2.2.9-10+lenny2 [44,5kB]
Des:13 http://ftp.rediris.es lenny/main ssl-cert 1.0.23 [13,1kB]
Descargados 11,3MB en 36s (311kB/s).
Preconfigurando paquetes ...
Seleccionando el paquete openssl previamente no seleccionado.
(Leyendo la base de datos ...
20983 ficheros y directorios instalados actualmente.)
Desempaquetando openssl (de .../openssl_0.9.8g-15+lenny1_amd64.deb) ...
Seleccionando el paquete openssl-blacklist previamente no seleccionado.
Desempaquetando openssl-blacklist (de .../openssl-blacklist_0.4.2_all.deb) ...
Seleccionando el paquete libapr1 previamente no seleccionado.
Desempaquetando libapr1 (de .../libapr1_1.2.12-5_amd64.deb) ...
Seleccionando el paquete libexpat1 previamente no seleccionado.
Desempaquetando libexpat1 (de .../libexpat1_2.0.1-4_amd64.deb) ...
Seleccionando el paquete mysql-common previamente no seleccionado.
Desempaquetando mysql-common (de .../mysql-common_5.0.51a-24+lenny1_all.deb) ...
Seleccionando el paquete libmysqlclient15off previamente no seleccionado.
Desempaquetando libmysqlclient15off (de .../libmysqlclient15off_5.0.51a-24+lenny1_amd64.deb) ...
Seleccionando el paquete libpq5 previamente no seleccionado.
Desempaquetando libpq5 (de .../libpq5_8.3.7-0lenny1_amd64.deb) ...
Seleccionando el paquete libaprutil1 previamente no seleccionado.
Desempaquetando libaprutil1 (de .../libaprutil1_1.2.12+dfsg-8+lenny2_amd64.deb) ...
Seleccionando el paquete apache2-utils previamente no seleccionado.
Desempaquetando apache2-utils (de .../apache2-utils_2.2.9-10+lenny2_amd64.deb) ...
Seleccionando el paquete apache2.2-common previamente no seleccionado.
Desempaquetando apache2.2-common (de .../apache2.2-common_2.2.9-10+lenny2_amd64.deb) ...
Seleccionando el paquete apache2-mpm-worker previamente no seleccionado.
Desempaquetando apache2-mpm-worker (de .../apache2-mpm-worker_2.2.9-10+lenny2_amd64.deb) ...
Seleccionando el paquete apache2 previamente no seleccionado.
Desempaquetando apache2 (de .../apache2_2.2.9-10+lenny2_all.deb) ...
Seleccionando el paquete ssl-cert previamente no seleccionado.
Desempaquetando ssl-cert (de .../ssl-cert_1.0.23_all.deb) ...
Procesando disparadores para man-db ...
Configurando openssl (0.9.8g-15+lenny1) ...
Configurando openssl-blacklist (0.4.2) ...
Configurando libapr1 (1.2.12-5) ...
Configurando libexpat1 (2.0.1-4) ...
Configurando mysql-common (5.0.51a-24+lenny1) ...
Configurando libmysqlclient15off (5.0.51a-24+lenny1) ...
Configurando libpq5 (8.3.7-0lenny1) ...
Configurando libaprutil1 (1.2.12+dfsg-8+lenny2) ...
Configurando apache2-utils (2.2.9-10+lenny2) ...
Configurando apache2.2-common (2.2.9-10+lenny2) ...
Enabling site default.
Enabling module alias.
Enabling module autoindex.
Enabling module dir.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module status.
Enabling module auth_basic.
Enabling module deflate.
Enabling module authz_default.
Enabling module authz_user.
Enabling module authz_groupfile.
Enabling module authn_file.
Enabling module authz_host.
Configurando apache2-mpm-worker (2.2.9-10+lenny2) ...
Starting web server: apache2.
Configurando apache2 (2.2.9-10+lenny2) ...
Configurando ssl-cert (1.0.23) ...
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Escribiendo información de estado extendido... Hecho
Leyendo las descripciones de las tareas... Hecho

Ya tenemos instalado Apache2 en nuestro sistema Debian. Si en la barra navegación de nuestro firefox ponemos http://localhost, tendríamos que ver algo parecido a esto:

Después instalaremos los paquetes libapache2-mod-php5 y php5:
#aptitude install libapache2-mod-php5 php5
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Leyendo las descripciones de las tareas... Hecho
Se instalarán los siguiente paquetes NUEVOS:
apache2-mpm-prefork{a} libapache2-mod-php5 php5 php5-common{a}
Se ELIMINARÁN los siguientes paquetes:
apache2-mpm-worker{a}
0 paquetes actualizados, 4 nuevos instalados, 1 para eliminar y 0 sin actualizar.
Necesito descargar 3238kB de ficheros. Después de desempaquetar se usarán 7049kB.
¿Quiere continuar? [Y/n/?]
Escribiendo información de estado extendido... Hecho
Des:1 http://ftp.rediris.es lenny/main apache2-mpm-prefork 2.2.9-10+lenny2 [253kB]
Des:2 http://security.debian.org lenny/updates/main php5-common 5.2.6.dfsg.1-1+lenny3 [368kB]
Des:3 http://security.debian.org lenny/updates/main libapache2-mod-php5 5.2.6.dfsg.1-1+lenny3 [2616kB]
Des:4 http://security.debian.org lenny/updates/main php5 5.2.6.dfsg.1-1+lenny3 [1078B]
Descargados 3238kB en 2s (1347kB/s).
dpkg: apache2-mpm-worker: problemas de dependencias, pero se desinstalará de todas formas
tal y como se solicitó:
apache2 depende de apache2-mpm-worker (>= 2.2.9-10+lenny2) | apache2-mpm-prefork (>= 2.2.9-10+lenny2) | apache2-mpm-event (>= 2.2.9-10+lenny2); sin embargo:
El paquete `apache2-mpm-worker' va a ser desinstalado.
El paquete `apache2-mpm-prefork' no está instalado.
El paquete `apache2-mpm-event' no está instalado.
(Leyendo la base de datos ...
21983 ficheros y directorios instalados actualmente.)
Desinstalando apache2-mpm-worker ...
Stopping web server: apache2 ... waiting .
Seleccionando el paquete apache2-mpm-prefork previamente no seleccionado.
(Leyendo la base de datos ...
21974 ficheros y directorios instalados actualmente.)
Desempaquetando apache2-mpm-prefork (de .../apache2-mpm-prefork_2.2.9-10+lenny2_amd64.deb) ...
Seleccionando el paquete php5-common previamente no seleccionado.
Desempaquetando php5-common (de .../php5-common_5.2.6.dfsg.1-1+lenny3_amd64.deb) ...
Seleccionando el paquete libapache2-mod-php5 previamente no seleccionado.
Desempaquetando libapache2-mod-php5 (de .../libapache2-mod-php5_5.2.6.dfsg.1-1+lenny3_amd64.deb) ...
Seleccionando el paquete php5 previamente no seleccionado.
Desempaquetando php5 (de .../php5_5.2.6.dfsg.1-1+lenny3_all.deb) ...
Configurando apache2-mpm-prefork (2.2.9-10+lenny2) ...
Starting web server: apache2.
Configurando php5-common (5.2.6.dfsg.1-1+lenny3) ...
Configurando libapache2-mod-php5 (5.2.6.dfsg.1-1+lenny3) ...

Creating config file /etc/php5/apache2/php.ini with new version
Reloading web server config: apache2.
Configurando php5 (5.2.6.dfsg.1-1+lenny3) ...
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Escribiendo información de estado extendido... Hecho
Leyendo las descripciones de las tareas... Hecho

Cuando termine reiniciaremos nuestro Apache2 para que cargue el módulo correspondiente a PHP5.
# /etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .

Para verificar que está funcionando todo correctamente, crearemos un fichero /var/www/index.php. Me gusta el editor nano, pero podréis utilizar el que más os guste. Y metéis el código:
< ?php
phpinfo();
?>

Después hacemos que Apache2 ejecute nuestro nuevo index.php, para ello entramos en http://localhost/index.php y tendríamos que ver algo parecido a la siguiente imagen.

Ya tenemos funcionando Apache2 con PHP5 en nuestro sistema Debian lenny.