Skip to content
This repository has been archived by the owner on Feb 16, 2020. It is now read-only.

rossonet/agenteAr4k

Repository files navigation

#agenteAr4k Progetto laboratorio per lo studio delle soluzioni tecniche Ar4k.

alt text

http://www.rossonet.org

Licenza: LGPL 3.0 Per maggiori dettagli sulla licenza rimando a questa voce di Wikipedia

alt text

Rossonet

###Guida rapida per il deploy

La spin Rossonet di Fedora 21 è predisposta per contenere tutti gli strumenti utili per lo sviluppo sulla piattaforma Ar4k.

Un'installazione Ar4k funzionante è composta da due elementi: un ambiente JVM in cui eseguire agenteAr4k e un account ssh su una macchina Linux che ospita il broker ActiveMQ e i servizi per la gestione dell'infrastruttura cloud gestiti con Consul.

####Procedure ambiente di sviluppo agenteAr4k

La procedura illustrata vale per macchine CentOS/RedHat/Fedora (il codice è per una sessione di Bash)

#####Installazione automatica

Per installare in automatico tutto il sistema compreso le dipendenza, utilizzare il seguente comando. Se non eseguito con privilegi di root, verrà chiesta l'autenticazione per installare Java e git.

sh <(curl -L -s http://boot.ar4k.net/laboratorio) [cod.attivazione]

Se "curl" non fosse presente nel sistema, installarlo con:

yum install curl

#####Installazione manuale

Per scaricare l'intero sistema:

git clone https://github.com/rossonet/agentear4k.git

Per lavorare con git in bash:

git config --global push.default matching
git config credential.helper store

Per creare un'applicazione in un unico file .jar con tutte le librerie incluse e Tomcat 7 integrato:

./compila.sh

esecuzione:

./ar4k.sh

Per aggiornare tutto il progetto e eseguirlo in ambiente di sviluppo (Ctrl-C per interrompere l'esecuzione):

./rigenera.sh && ./grailsw run-app

Per eseguirlo in ambiente di sviluppo (Ctrl-C per interrompere l'esecuzione):

./grailsw run-app

Per eseguire i test:

./grailsw test-app

Per creare un war installabile su Tomcat >= 7

./grailsw war

####Installazione automatica su sistema operativo esistente

Da fare: script di installazione automatica su RCloud/CentOS e RedHat EL

##Autenticazione demo: admin/rossonet2012

###Descrizione ambiente

Un sistema Ar4k operativo è composto da vari servizi e componenti logici. L'interfaccia è responsabile per la gestione dei processi Activiti e l'erogazione dei servizi web. L'interfaccia può lavorare in due modalità: bootstrap del sistema o interfaccia amministrativa.

####BootStrap sistema Ar4k da interfaccia

Rossonet

Dopo la compilazione e l'avvio dell'applicazione Java, sarà possibile collegarsi alla maschera principale su http://indirizzo server:6630/AgenteAr4k. Se l'ambiente viene lanciato come singolo pacchetto jar, l'interfaccia sarà raggiungibile su http://indirizzo server:6630/ -senza AgenteAr4k finale-.

alt text.

L'interfaccia è ampiamente documentata. I passi principali per avviare il sistema sono:

  1. configurare il nodo ssh -chiamato vaso- nel sistema;
  2. selezionare il contesto tra quelli disponibili sul vaso;
  3. selezionare l'interfaccia tra quelle disponibili nel contesto;
  4. configurare l'utenza amministrativa base.

alt text.

alt text.

alt text.

Ambiente Operativo Ar4k

alt text.

Dopo il bootstrap -o tramite un file di configurazione predisposto da questo template- il sistema offrirà i seguenti servizi:

...da completare...

Sviluppare memi per Ar4k

Documentazione Ar4k
  1. Memoria

  2. Meme

  3. Rete

  4. Ricettario

  5. Servizio

  6. Vaso

  7. Groovy API Ar4k

  8. JavaDoc API Ar4k

###Componenti Software

####Grails

Versione Grails 2.4.4

Documentazione

IDE

Con ./compila.sh si ottiene un jar eseguibile con "java -jar (nome file).jar" Per configurare il tomcat 7.0.55 integrato editare Launcher.java

Per configurare il prodotto, salvare nella directory home dell'utente che esegue Java il file di configurazione ottenuto compilando il template AgenteAr4k-config.groovy_template e posizionandolo in .rossonet/(nome app)-config.groovy

####Spring Security

I domini Grails Utente, Ruolo, UtenteRuolo e OAuthID contengono i dati relativi all'autenticazione; all'avvio l'applicativo configura i ruoli ROLE_ADMIN, ROLE_USER, ROLE_MASTER, ROLE_SISTEMISTA e ROLE_REGISTRATO e l'utente admin con password rossonet2012 (Per configurare un utente differente configurare il file .rossonet/(nome app)-config.groovy con i relativi parametri.)

I permessi sono configurabili in Config.grovy. Sempre in Config.groovy sono editabili i testi delle mail per la registrazione e il recupero della password.

Gli utenti appena registrati -anche tramite social auth- sono configurati nel ruolo ROLE_REGISTRATO, per renderli operativi sul sistema devono acquisire il ruolo ROLE_USER.

####Activiti

Activiti è BPMS open source disponibile in Java per l'integrazione in altri applicativi. La documentazione specifica della versione adottata da Ar4k è disponibile qui: documentazione Activiti

Le classi Java sono ispezionabili su JavaDoc Activiti API

####Mail Server

La posta in uscita si appoggia a un smtp esterno con eventuale autenticazione. In AgenteAr4k-config.groovy_template maggiori dettagli.

####Apache Camel

Implementato in Grails con Apache Camel Plugin. Nel file MasterCamelRoute.groovy sono definite nel linguaggio specifico di Camel le rotte istanziate da Grails.

Importando le opportune dipendenze nel file BuildConfig.groovy è possibile utilizzare i vari componenti di Camel

####Kettle

L'applicativo espone un orchestratore Kettle tramite il service KettleService.

da fare:

  • l'orchestratore Kettle diverrà un interfaccia di lettura dei metadati dai repository remoti tramite tunnel SSH
  • interfacciandosi con AccoppiatoreService eseguirà, tramite ssh le lavorazioni sui singoli nodi

####JasperReport

Installato il plugin Jasper in Grails.

####SSH Tunnel, Esecuzione e Stream

Il sistema agisce sui nodi attraverso il protocollo SSH, più nello specifico utilizzando la libreria Java Jsch.

####WebSocket

Integrato in Grails atmosphere-meteor plugin.

Il file di configurazione principale per i websocket è DefaultMeteorHandler.groovy.

####Quartz (Schedulatore)

Integrato in Grails il plugin quartz.

Una schedulazione che stampa la memoria libera ogni 10 min è configurata in PingJob.groovy

####JCloud

Da completare

####JSoup

Da completare

####Consul

completamente da implementare...

  • integrazione dns

####FrontEnd Web in Angular.js

In attesa di repository aggiuntivo con base sviluppo

###Versioni

In attesa di primo rilascio

###Casi d'uso

Da dimplementare

TODO

###A FINE OTTOBRE 2015

  1. Completare integrazione Kettle
  2. Porting ambienti produzione Rossonet
  3. Integrazione con RCloud;
  4. Import repository remoti automaticamente da web in funzione dell'identificativo;

###SENZA SCADENZA

  1. File kickstart per installazione su CentOS 6.x CentOS 7.x Fedora 21 RHEL7;
  2. Integrare OpenJSCAD;
  3. Procedura di connessione remota in modalità automatica (con sniffer o meno), manuale, da Olark;
  4. Integrare D3.js, OpenLayer;
  5. Valutare Hawtio;