#agenteAr4k Progetto laboratorio per lo studio delle soluzioni tecniche Ar4k.
Licenza: LGPL 3.0 Per maggiori dettagli sulla licenza rimando a questa voce di Wikipedia
###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
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-.
L'interfaccia è ampiamente documentata. I passi principali per avviare il sistema sono:
- configurare il nodo ssh -chiamato vaso- nel sistema;
- selezionare il contesto tra quelli disponibili sul vaso;
- selezionare l'interfaccia tra quelle disponibili nel contesto;
- configurare l'utenza amministrativa base.
Dopo il bootstrap -o tramite un file di configurazione predisposto da questo template- il sistema offrirà i seguenti servizi:
...da completare...
###Componenti Software
####Grails
Versione Grails 2.4.4
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
###A FINE OTTOBRE 2015
- Completare integrazione Kettle
- Porting ambienti produzione Rossonet
- Integrazione con RCloud;
- Import repository remoti automaticamente da web in funzione dell'identificativo;
###SENZA SCADENZA
- File kickstart per installazione su CentOS 6.x CentOS 7.x Fedora 21 RHEL7;
- Integrare OpenJSCAD;
- Procedura di connessione remota in modalità automatica (con sniffer o meno), manuale, da Olark;
- Integrare D3.js, OpenLayer;
- Valutare Hawtio;