Cargando...
 

Historial: El sistema n4d

Previsualización de la versión: 2

Versiones
  -LliureX 16

-LliureX 15

 

1. Qué es N4D?

 

N4D viene de Network for dummies. Es un sistema desarrollado por LliureX para facilitar la comunicación entre equipos. El N4D nos permite ejecutar de manera remota aplicaciones basada PAM, i nos permite aumentar sus funcionalidades con plugins.

 

2. ¿Por qué N4D?

 

En el modelo de aula de LliureX nos encontramos multite servicios (DHCP, servidor Web, LDAP, compartición de recursos, etc...). Dnetro de este modelo hemos de ser capaces de poder configurar un aula de la manera más rápida y senzilla posible.

EL sistema N4D posibilita la comunicación entre clientes y servidores con autentificación, además proporciona herramientas al usuario avanzado para el desarrollo de plugins y aplicaciones cliente-servidor.

Estos plugins son Clases N4D que publicaran una serie de métodos o funciones de clase para su ejecución de manera remota.

 

3. L'eina n4d-client

 

N4D dispone de una serie de comandos que nos van a permitir interactuar con és:

n4d-client, n4d-modules, n4d-vars, n4d-create-conf, n4d-server.

Así por ejemplo n4d-client nos permite ejectuar funciones remotes des de la consola del sistema:

n4d­client ­-h host [-­u usuario ­-p contraseña|-­u usuario ­-p contraseña] -­m metodo -c clase [-­a ListaArgs]


Así tenemos:

Opción Función
host Dirección IP del host que servirá la función (host remoto).
usuario Usuario del host remoto.
contraseña Contraseña del host remoto.
método y clase Función que queremos utilitzar y clase a la que pertenece.
ListaArgs Lista de todos los Argumentos que podemos pasarle a n4d.

 
Así, por ejemplo, si ejecutamos en el servidor la siguiente orden:

n4d-client -h localhost -c VariablesManager -m listvars

 
Nos saldrá una serie de variables (algunas se han borrado), que nos dará una serie de variables que nos permiten conocer el estado del servidor. Ten en cuenta que puedes substituir localhost por la IP de la máquina que quieras:

SRV_IP='10.2.1.254'; PROXY_HOST='proxy'; DEADTIME='15'; SLAVE_BLACKLIST= DNS_UNREG_HOSTNAME_PREFIX='host-'; OPENSYSCLONE_SQUASHFS_PROTOCOL='tftp'; LDAP_BASE_DN='dc=ma5,dc=lliurex,dc=net'; DHCP_FIRST_IP='10.2.1.13'; PROXY_HTTP_PORT='3128'; SAMBA_DOMAIN_NAME='lliurex'; NAME_SERVER_SAMBA='%h'; DNS_EXTERNAL= HTTP_PATH='/var/www/'; INTERNAL_DOMAIN='aula1'; DHCP_LAST_IP='10.2.1.242'; INTERNAL_INTERFACE='eth0'; EXTERNAL_INTERFACE='eth1'; DHCP_DENY_UNKNOWN_CLIENTS='no'; DNS_HOSTNAME_PREFIX='llx-'; INTERNAL_MASK='24'; INTERNAL_NETWORK='10.2.1.0'; STATS_ENABLED='1'; PROXY_MAX_FILE_SIZE='204800'; SAMBASID= ... ZEROCENTER= ... CLIENT_LDAP_URI_NOSSL='ldap://10.2.1.254'; DHCP_HOST_MAX='80'; DHCP_ENABLE='True'; SRV_ALIAS=... HOSTNAME='MACROHPCompaq'; PROXY_ENABLED='True'; CLIENT_LDAP_URI='ldaps://10.2.1.254'; ZEROCENTERINTERNAL='{}'; DHCP_LEASE_TIME='12'; ENABLE_NSS_LDAP='ENABLED'; LLIUREXMIRROR='{u'llx16': {u'exception_msg': u'', u'status_mirror': u'Ok', u'mirror_size': u'14.2580130817', u'progress': 100, u'last_mirror_date': u'24/01/2017'}}';

 

4. Métodos y clases que se pueden usar en LliureX a través de n4d.

 

Podemos conocer todos los métodos y clases que se pueden usar en n4d con el parámetro getmethods.

  n4d­client ­-h hostname getmethods  

 
Siendo hostname la ip de la máquina que queremos conocer los métodos disponibles. Si omitimos el parámetro -h hostname, nos saca los métodos y clases de nuestra máquina:

n4d­client getmethods






 


Però... quins mètodes i classes ofereix una màquina LliureX a través de
n4d?
Per tal de conéixer quins mètodes hi ha disponibles en un sistema, fem ús del
paràmetre getmethods, amb la sintaxi següent:
n4d­client ­h hostname getmethods
Amb açò tindrem una llista amb els mètodes que ofereix determinat
hostname. Per exemple, el 192.168.20.114:
$ n4d­client ­h @192.168.20.114 getmethods
LliurexUp n4dupdate : adm admins admin
LliurexUp info : anonymous
LliurexUp help : anonymous
ZCenterVariables get_all_states : anonymous
ZCenterVariables get_zc_messages : anonymous
ZCenterVariables remove_pulsating_color : adm admins
ZCenterVariables get_state : anonymous
ZCenterVariables set_zc_message : adm admins
ZCenterVariables remove_zc_message : adm admins
ZCenterVariables set_custom_state : adm admins
ZCenterVariables set_non_configured : adm admins
ZCenterVariables set_configured : adm admins
ZCenterVariables add_pulsating_color : adm admins
ZCenterVariables set_custom_text : adm admins
ZCenterVariables set_failed : adm admins
VariablesManager restore : adm admins admin
VariablesManager listvars : anonymous
VariablesManager get_variable_list : anonymous
VariablesManager init_variable : admin admins adm
VariablesManager add_variable : admin admins adm
VariablesManager empty_trash : admin admins adm
VariablesManager get_variables : anonymous
VariablesManager set_variable : admin admins adm
VariablesManager get_variable : anonymous
VariablesManager read_inbox : admin admins adm VariablesManager backup : adm admins admin
SocketManager close_socket : adm admin admins teachers
SocketManager start_socket : adm admin admins teachers
SocketManager request_socket : adm admin admins teachers
SendFile send_file_to_ip : anonymous
RemoteGuiManager remote_execute : anonymous
NTicketsManager get_ticket : *
NTicketsManager set_ticket : *
NTicketsManager create_ticket : anonymous
MountManager restricted_mount : *
MountManager is_src_mounted : anonymous
MountManager mount : adm admins
MountManager mount_list : anonymous
MountManager umount : adm admins
MountManager restricted_umount : *
LliurexVersion lliurex_version : anonymous
GuiLauncherManager register_display : adm admins
GuiLauncherManager execute : adm admins
O bé amb la màquina local, sense la necessitat d'indicar el host:
$ n4d­client getmethods
VariablesManager restore : adm admins admin
VariablesManager listvars : anonymous
VariablesManager get_variable_list : anonymous
...
NTicketsManager create_ticket : anonymous
És important fixar-se en l'eixida d'esta ordre. Com veiem, obtenim una llista
de línies amb el següent format:
Classe  Mètode: {llista de grups}
En primer lloc tenim la classe on es defineix el mètode, després el mètode en
sí, i després una llista dels grups per als quals es permet l'execució dels
mètodes. En aquesta llista podem trobar:




Bé una funció anònima, que pot ser llençada per tothom
(anonymous),
Una funció que només poden llençar els administradors del sistema
(admin admins adm)
O bé, també els professors (teachers)
El * indica....
La classe VariablesManager i l'eina n4d-vars
Una de les funcoinalitats principals de n4d és gestionar el conjunt de
variables de configuració dei sistema. Per a aquest propòsit existeix la classe
VariablesManager, que té els següents mètodes:
$   n4d­client   ­h   @192.168.20.114   getmethods   |   grep
VariablesManager
VariablesManager restore : adm admins admin
VariablesManager listvars : anonymous
VariablesManager get_variable_list : anonymous
VariablesManager init_variable : admin admins adm VariablesManager add_variable : admin admins adm
VariablesManager empty_trash : admin admins adm
VariablesManager get_variables : anonymous
VariablesManager set_variable : admin admins adm
VariablesManager get_variable : anonymous
VariablesManager read_inbox : admin admins adm
VariablesManager backup : adm admins admin
Així, com hem vist anteriorment, per tal de saber les variables disponibles en
una màquina, executem:
n4d­client ­c VariablesManager ­m listvars ­h host
N4d-vars
Donat que es tracta d'una funcionalitat bastant comuna, n4d proporciona
l'eina n4d-vars, per treballar de manera còmoda les diferents variables d'un
sistema LliureX, i per tal de crear els fitxers JSON que defineixen els
paràmetres utilitzats per definir les variables. La utilitat n4d-vars només té
sentit en l'àmbit de la màquina
local, és a dir, no accepta el
paràmetre -h host per llençar-
la sobre un host remot.
$ n4d­vars
USAGE: n4d­vars OPTION PARAMETERS  Si desitgem treballar amb les
variables d'un host remot, ho
hem de fer a través de la
pròpia
classe
VariablesManager.
Options:
getvalues VAR1 VAR2...VARn
listvars
createjson VAR1 VAR2...VARn ­­output OUTPUTFILE
setvalue VAR VALUE
initvalues VAR1 VAR2...VARn
readinbox
emptytrash
Per exemple, per veure la llista de variables anterior, fariem:
$ n4d­vars listvars
SRV_IP='10.2.1.254';
PROXY_HOST='proxy';
DNS_EXTERNAL='u'192.168.1.254', u'172.27.111.6'';
INTERNAL_MASK='24';
DEADTIME='15';
DHCP_FIRST_IP='10.2.1.100';
LDAP_BASE_DN='dc=ma5,dc=lliurex,dc=net';
PROXY_HTTP_PORT='3128';
SAMBA_DOMAIN_NAME='lliurex';
NAME_SERVER_SAMBA='%h';
DNS_HOSTNAME_PREFIX='llx­';
HTTP_PATH='/var/www/';
INTERNAL_DOMAIN='aula1';
DHCP_LAST_IP='10.2.1.240';
INTERNAL_INTERFACE='eth0';
EXTERNAL_INTERFACE='eth1';
DHCP_DENY_UNKNOWN_CLIENTS='no';
DNS_UNREG_HOSTNAME_PREFIX='host­';
PROXY_MAX_FILE_SIZE='204800';
INTERNAL_NETWORK='10.2.1.0';
LLIUREXMIRROR='{u'internal': {}}';
SAMBASID='S­1­5­21­1876312330­3617557917­2287542526';
CLIENT_LDAP_URI='ldaps://10.2.1.254';
ZEROCENTER='{u'zero­server­wizard': {u'state': 1, u'time':u'04/01/2015'}, u'zero­ieseljust­wordpress': {u'state': 1,
u'pulsating': False, u'time': u'17/12/2014'}}';
CLIENT_LDAP_URI_NOSSL='ldap://10.2.1.254';
DHCP_HOST_MAX='80';
DHCP_ENABLE='True';
SRV_ALIAS='u'cups',   u'www',   u'ntp',   u'share',   u'srv',
u'servidor',   u'jclic­aula',   u'lliurexlab',   u'error',
u'ipxeboot'
';
HOSTNAME='llxtrusty';
PROXY_ENABLED='True';
ZEROCENTERINTERNAL='{}';
DHCP_LEASE_TIME='12';
ENABLE_NSS_LDAP='ENABLED';
O per tal de consultar una variable concreta:
n4d­vars getvalues variable
Per exemple:
n4d­vars getvalues SRV_IP
Ens retorna una cadena semblant a:
SRV_IP="10.2.1.254";
Amb el valor de la variable SRV_IP, que fa referència a l'adreça IP del servidor
de l'aula (ja sigues un client o un servidor).
L'eixida, d'aquesta forma, facilita el treball des d'scripts bash, ja que podem
utilitzar-la conjuntament amb l'ordre eval:

  1. !/bin/bash

eval $(n4d­vars getvalues SRV_IP)
echo $SRV_IP
exit 0

Historial

Avanzado
Información Versión
2020-12-03 14:19 munoz_ric 16
Ver
2020-12-01 13:12 munoz_ric 15
Ver
2020-11-13 12:09 juanma 14
Ver
2020-11-11 07:34 juanma 13
Ver
2020-11-10 18:40 juanma 12
Ver
2017-02-02 11:13 alviboi 11
Ver
2017-01-30 11:51 alviboi 10
Ver
2017-01-30 11:49 alviboi 9
Ver
2017-01-30 11:48 alviboi 8
Ver
2017-01-30 11:45 alviboi 7
Ver
2017-01-30 11:45 alviboi 6
Ver
2017-01-30 11:40 alviboi 5
Ver
2017-01-30 11:36 alviboi 4
Ver
2017-01-30 11:35 alviboi 3
Ver
2017-01-30 10:07 alviboi 2
Ver
2017-02-02 11:13 alviboi 1
Ver

Historial

No hay registros que mostrar
Mastodon E-Mail