lunes, 13 de julio de 2015

Instalación de Oracle/JAVA en Centos


1.- Descargar jdk del sitio de oracle:


# cd /opt/
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz"



2.- Descompactar

# tar xzf jdk-8u45-linux-x64.tar.gz

3.- Instalarlo con "alternatives"


# cd /opt/jdk1.8.0_45/
# alternatives --install /usr/bin/java java /opt/jdk1.8.0_45/bin/java 2
# alternatives --config java


There are 3 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           /opt/jdk1.7.0_71/bin/java
 + 2           /opt/jdk1.8.0_25/bin/java
   3           /opt/jdk1.8.0_45/bin/java

Enter to keep the current selection[+], or type selection number: 3



# alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_45/bin/jar 2
# alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_45/bin/javac 2
# alternatives --set jar /opt/jdk1.8.0_45/bin/jar
# alternatives --set javac /opt/jdk1.8.0_45/bin/javac



4.- Exportar las variables de entorno

# export JAVA_HOME=/opt/jdk1.8.0_45
# export JRE_HOME=/opt/jdk1.8.0_45/jre
# export PATH=$PATH:/opt/jdk1.8.0_45/bin:/opt/jdk1.8.0_45/jre/bin

5.- Verificar la versión instalada


# java -version


java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)



Fuente:

TecAdmin.net

viernes, 10 de julio de 2015

Stuck Jobs en TORQUE Resource Manager





1.-  Enviar una señal de stop de los trabajos del demonio "mom" al servidor:

qsig -s 0

2.- Refrescar el estado de los trabajos:

momctl -c 58925 -h compute-5-20

3.- Agregar el parametro de sincronización para evitar trabajos atorados:

qmgr -c "set server mom_job_sync = True"

4.- Verificar configuración de las colas de ejecución:

qmgr -c "p s"

5.-  Eliminar trabajo:

qdel -p


Referencia:

Stuck Jobs

Passwordless en Debian





1.- Generar llave pública :

ssh-keygen -t rsa


2.- Copiar llave pública a nodos a los cuales se requiere ingresar sin passwd:

cat id_rsa.pub  user@nodo:/home/user/.ssh/authorized_keys

TORQUE Resource Manager en Debian Linux




1.- Requerimientos previos a la instalación

- Configuración de interfaces de red de acuerdo a necesidades (Explicado en entradas anteriores)
- Configuración de NAT en servidor front-end (Explicado en entradas anteriores)
- NFS Server en Debian (Explicado en entradas anteriores)
- Configuración de archivo /etc/hosts de acuerdo a necesidades
- Configuración de passwordless entre front-end y nodos (Explicado en entradas anteriores)


2.- Instalar requerimientos de TORQUE en el servidor front-end y en los nodos:

 apt-get install libxml2-dev libssl-dev gcc make g++ libboost-all-dev


En servidor Front-End

3.- Descargar el software TORQUE en el servidor de frontend


4.-Descompactar y compilar TORQUE

root]# tar -xzvf torque-.tar.gz 
[root]# cd torque-/
[root]# ./configure
[root]# make
[root]# make install

5.- Agregar el script necesario para iniciar el demonio "trqauthd" automaticamente:

[root]# cp contrib/init.d/debian.trqauthd /etc/init.d/trqauthd
[root]# update-rc.d trqauthd defaults
[root]# echo /usr/local/lib > /etc/ld.so.conf.d/torque.conf
[root]# ldconfig
[root]# service trqauthd start

6.- Verificar que el nombre del servidor front-end esta incluido en el archivo "server_name"

[root]# echo > /var/spool/torque/server_name


7.- Inicializar la base de datos de la instalacion de TORQUE:

[root]# export PATH=/usr/local/bin/:/usr/local/sbin/:$PATH
[root]# ./torque.setup root

8.- Agregar los nodos de ejecucion al archivo "nodes"

vi /var/spool/torque/server_priv/nodes

9.- Agregar el script necesario para iniciar el demonio "pbs_server" y el demonio "pbs_mom" automaticamente:

[root]# cp contrib/init.d/debian.pbs_server /etc/init.d/pbs_server
[root]# update-rc.d pbs_server defaults
[root]# service pbs_server restart

[root]# cp contrib/init.d/debian.pbs_mom /etc/init.d/pbs_mom
[root]# update-rc.d pbs_mom defaults
[root]# service pbs_mom restart

10.- Generar paquetes para la instalación de los nodos:

make packages
Building ./torque-package-clients-linux-i686.sh ...
Building ./torque-package-mom-linux-i686.sh ...
Building ./torque-package-server-linux-i686.sh ...
Building ./torque-package-gui-linux-i686.sh ...
Building ./torque-package-devel-linux-i686.sh ...
Done.

11.- Instalación en los nodos:

> for i in node01 node02 node03 node04 ; do scp torque-package-mom-linux-i686.sh ${i}:/tmp/. ; done
> for i in node01 node02 node03 node04 ; do scp torque-package-clients-linux-i686.sh ${i}:/tmp/. ; done
> for i in node01 node02 node03 node04 ; do ssh ${i} /tmp/torque-package-mom-linux-i686.sh --install ; done
> for i in node01 node02 node03 node04 ; do ssh ${i} /tmp/torque-package-clients-linux-i686.sh --install ; done

12.- Iniciar Scheduler:

root# pbs_sched

13.- Configurar colas de ejecución de acuerdo a necesidades con el comando "qmgr -c  ", Ejemplo:

create queue batch
set queue batch queue_type = Execution
set queue batch max_running = 24
set queue batch resources_max.nodect = 2
set queue batch resources_default.nodect = 2
set queue batch resources_default.nodes = 2:ppn=12
set queue batch enabled = True
set queue batch started = True

14.- Crear usuarios con passwordless entre front-end y nodos de procesamiento


Referencias:

Instalacion
Error Torque Setup
Stuck Jobs
Remove queue attributes
PBS Torque Job Submission

miércoles, 8 de julio de 2015

Desactivar network-manager en Debian


1.- Detener el demonio

/etc/init.d/network-manager stop

2.- Removerlo

update-rc.d network-manager remove

3.- Configurar las interfaces editando el archivo /etc/network/interfaces

allow-hotplug eth0
auto eth0
iface eth0 inet static
  address 10.0.0.1
  netmask 255.255.255.0
  broadcast 10.0.0.255
  network 10.0.0.0
  gateway 10.0.0.254
  dns-nameservers 8.8.8.8 4.2.2.2



Python + Paramiko


1.- Instalar paramiko


sudo pip install paramiko


2.- Código Ejemplo:


import paramiko
import time
import getpass

if __name__ == '__main__':


    # Variables con la informacion del equipo al cual se requiere acceder
    IP = raw_input('IP: ')
    username = raw_input('username: ')
    password = getpass.getpass()
    
    # Creación de instancia SSH
    remote_conn_pre = paramiko.SSHClient()

    # Agregar automaticamente los nuevos hosts a validarse al equipo que se requiere acceder
    remote_conn_pre.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    # Iniciar la conexión SSH
    remote_conn_pre.connect(ip, username=username, password=password)
    print "Conexión SSH establecida to %s" % IP

    # Uso de invoke_shell para establecer una sesión interactiva
    remote_conn = remote_conn_pre.invoke_shell()
    print "Sesión interactiva de SSH establecida"

    # Prompt del equipo
    output = remote_conn.recv(1000)
    print output

    # Enviar comandos al equipo
    remote_conn.send("\n")
    remote_conn.send("show configuration\n")
   
    # Esperar a que termine la ejecución del comando
    time.sleep(2)
     
    #Mostrar la salida del comando
    output = remote_conn.recv(5000)
    print output