Archivo

Archive for the ‘HPC’ Category

Introducción a Ansible III – Patrones en Ansible

mayo 8, 2015 Deja un comentario

Los patrones en Ansible se utilizan para decidir que nodos queremos gestionar. Esto implica a que nodos queremos aplicar las configuraciones.
Un patrón tiene la siguiente estructura

ansible <pattern_goes_here> -m <module_name> -a <arguments>

Por ejemplo, si queremos reiniciar el servicio http en el grupo definido previamente de webservers, ejecutaríamos el siguiente comando

ansible webservers -m service -a "name=httpd state=restarted"

Como patrón, o nodos a los que lanzar los comandos, podemos utilizar también los siguientes patrones

all	#Todos los nodos
*	#Todos los nodos

nodo1.dominio.com	#Solo un nodo
192.168.0.20		#Solo un nodo

webservers:dbservers	#Que esté en cualquiera de los dos grupos (OR)

webservers:!ntpservers	#Que esté en webservers pero que no aparezcan en ntpservers

webservers:&ntpservers	#Que esté en webservers y que aparezcan en ntpservers
Categorías:Administración, HPC Etiquetas: , ,

Introducción a Ansible II – Primera conexión desde el master a los servidores

mayo 3, 2015 Deja un comentario

Para realizar las conexiones a los servidores, Ansible utiliza por defecto claves ssh para realizar la conexión a los nodos, por eso primero tenemos que generar una clave en el servidor y exportarla a los nodos.

Creación de claves en el nodo master

root@master:~/ansible# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e9:7f:f0:ea:25:6d:b0:8a:26:39:8d:09:bd:f6:9d:70 root@master
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|                 |
|         .       |
|   .    S .      |
|  . .  .  .+     |
|   . *. E oo+    |
|    O o= + +o    |
|   . =o +.+o     |
+-----------------+

Exportación de claves a los clientes.

root@master:~# ssh-copy-id 192.168.1.11
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.1.11's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.1.11'"
and check to make sure that only the key(s) you wanted were added.

Una vez que tenemos las claves exportadas, podemos comprobar la conexión entre el master y los clientes, para eso vamos a utilizar un simple ping de momento.

# ansible all -m ping
192.168.1.11 | success >> {
    "changed": false,
    "ping": "pong"
}

Si por el contrario no queremos exportar los certificados, podemos forzar a que Ansible nos pregunte la contraseña para realizar la conexión a los clientes, aunque para esto tendremos que instalar previamente la aplicación “sshpass”.

# apt-get install sshpass -y
# ansible all --ask-pass -m ping
SSH password:
192.168.1.11 | success >> {
    "changed": false,
    "ping": "pong"
}

También podemos forzar la conexión a los equipos remotos con un usuario diferente al que estamos utilizando.

# ansible all -m ping -u user --ask-pass

Por último, si nos autentificamos con un usuario específico es posible que queramos acceder a tareas administrativas, pasa eso podemos utilizar el flag “–sudo”

# ansible all -m ping -u user --ask-pass --sudo
Categorías:Administración, HPC Etiquetas: ,

Introducción a Ansible I – Configuración del Inventario

mayo 2, 2015 Deja un comentario

El inventario (inventory) es uan descripción de los nodos acesibles por Ansible. El inventario se define en un fichero de confirmación en formato INI, la ubicación predeterminada del fichero es /etc/ansible/hosts

El fichero puede tener definiciones de grupos [grupo], o simplemente definiciones de servidores.
Un grupo puede tener uno o más servidores.

[webservers]
web1.dominio.com
web2.dominio.com
192.168.1.2

[dbservers]
db1.dominio.com
db2.dominio.com

También se puede definir un rango de servidores

db[3:10].dominio.com
Categorías:Administración, HPC Etiquetas: ,

Instalación de Ansible en Debian/Ubuntu

abril 30, 2015 2 comentarios

Ansible es una aplicación para administrar conjuntos de nodos. La ventaja de esta aplicación radica en que es multiplataforma y los nodos administrados no requieren la instalación de ninguna aplicación.

La instalación del servidor de Ansible en Debian/Ubuntu se puede realizar de las siguientes maneras:

Instalación de Ansible desde github

$ sudo apt-get update
$ sudo apt-get install python-pip python-dev git -y
$ sudo pip install PyYAML jinja2 paramiko
$ git clone https://github.com/ansible/ansible.git
$ git submodule update --init --recursive
$ cd ansible
$ sudo make install
$ sudo mkdir /etc/ansible
$ sudo cp ~/ansible/examples/hosts /etc/ansible/

Instalación de Ansible desde repositorios

$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible

Test de velocidad de red con Iperf en linux

abril 30, 2015 Deja un comentario

Para comprobar la velocidad de conexión entre dos servidores Linux, podemos utilizar la herramienta iperf.
En el siguiente enlace hay una documentación muy buena, de la cual recomiendo su lectura.

A continuación unas las pruebas que he echo yo para medir la velocidad de un bonding de dos tarjetas 10G.

Server

./iperf -s -f G

Client

for i in `seq 1 20`; do ./iperf -c 10.100.82.71 -t 60 -i 2 -f G & done

Salida de las pruebas.

# ./iperf -s -f G
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 0.00 GByte (default)
------------------------------------------------------------
[  4] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56307
[  5] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56308
[  6] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56309
[  7] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56310
[  8] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56311
[  9] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56312
[ 10] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56313
[ 11] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56314
[ 12] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56315
[ 13] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56316
[ 14] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56317
[ 15] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56318
[ 16] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56319
[ 17] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56320
[ 18] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56321
[ 19] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56322
[ 20] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56323
[ 21] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56324
[ 22] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56325
[ 23] local 10.100.82.71 port 5001 connected with 10.100.82.72 port 56326
[ 16]  0.0-60.0 sec  10.9 GBytes  0.18 GBytes/sec
[  4]  0.0-60.0 sec  7.94 GBytes  0.13 GBytes/sec
[  5]  0.0-60.0 sec  8.44 GBytes  0.14 GBytes/sec
[  6]  0.0-60.0 sec  3.06 GBytes  0.05 GBytes/sec
[  9]  0.0-60.0 sec  7.70 GBytes  0.13 GBytes/sec
[ 14]  0.0-60.0 sec  2.80 GBytes  0.05 GBytes/sec
[ 17]  0.0-60.0 sec  5.15 GBytes  0.09 GBytes/sec
[ 18]  0.0-60.0 sec  11.4 GBytes  0.19 GBytes/sec
[ 19]  0.0-60.0 sec  7.11 GBytes  0.12 GBytes/sec
[ 21]  0.0-60.0 sec  6.28 GBytes  0.10 GBytes/sec
[ 22]  0.0-60.0 sec  7.66 GBytes  0.13 GBytes/sec
[ 23]  0.0-60.0 sec  12.2 GBytes  0.20 GBytes/sec
[  7]  0.0-60.0 sec  4.93 GBytes  0.08 GBytes/sec
[ 10]  0.0-60.0 sec  2.93 GBytes  0.05 GBytes/sec
[ 11]  0.0-60.0 sec  5.21 GBytes  0.09 GBytes/sec
[ 13]  0.0-60.0 sec  5.66 GBytes  0.09 GBytes/sec
[ 20]  0.0-60.0 sec  3.36 GBytes  0.06 GBytes/sec
[  8]  0.0-60.2 sec  9.97 GBytes  0.17 GBytes/sec
[ 12]  0.0-60.2 sec  8.91 GBytes  0.15 GBytes/sec
[ 15]  0.0-60.2 sec  6.32 GBytes  0.10 GBytes/sec
[SUM]  0.0-60.2 sec    138 GBytes  2.29 GBytes/sec

Categorías:Administración, HPC Etiquetas: ,