Quelques instructions pour installer Asqatasun sur un serveur CENTOS V7 avec une base des données MariaDB dockerisée.
Ce n’est pas très bien formaté…mes excuses
Installer
Packages tomcat
Installer packages tomcat suivants :
tomcat-7.0.76-6.el7.noarch tomcat-admin-webapps-7.0.76-6.el7.noarch tomcat-servlet-3.0-api-7.0.76-6.el7.noarch tomcat-lib-7.0.76-6.el7.noarch tomcat-el-2.2-api-7.0.76-6.el7.noarch tomcat-javadoc-7.0.76-6.el7.noarch tomcat-jsp-2.2-api-7.0.76-6.el7.noarch tomcat-docs-webapp-7.0.76-6.el7.noarch tomcat-webapps-7.0.76-6.el7.noarch
Package XVFB
Installer le package XVFB pour CENTOS:
yum install xorg-x11-server-Xvfb
Librairies Java pour Mysql
Installer les librairies JAVA pour Mysql
yum install mysql-connector-java sudo ln -s /usr/share/java/mysql-connector-java.jar /usr/share/tomcat/lib/mysql-connector-java.jar
Librairie libgtk
Installer la librairie libgtk :
yum install gtk2-devel-2.24.31-1.el7.x86_64
autrement firefox plante :
XPCOMGlueLoad error for file /opt/firefox-31.4.0esr/libxul.so: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
Firefox ESR 31.4
Installer firefox (en root)
mkdir /opt/sources cd /opt/sources wget http://download.cdn.mozilla.net/pub/mozilla.org/firefox/releases/31.4.0esr/linux-x86_64/en-US/firefox-31.4.0esr.tar.bz2 tar xvfj firefox-31.4.0esr.tar.bz2 .. extraction dans /opt/firefox-31.4.0esr mv firefox firefox-31.4.0esr ln -s firefox-31.4.0esr firefox
Services
Service Xvfb
Création du service Xvfb (root)
vi /etc/systemd/system/xvfb.service [Unit] Description=virtual frame buffer X server for display 99 After=network.target [Service] ExecStart=/usr/bin/Xvfb :99 -screen 1 1024x768x24 -nolisten tcp [Install] WantedBy=multi-user.target
systemctl enable xvfb.service systemctl list-unit-files | grep xvfb xvfb@.service enabled systemctl start xvfb.service systemctl status xvfb.service xvfb.service - virtual frame buffer X server for display :99 Loaded: loaded (/etc/systemd/system/xvfb@.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2018-09-10 10:38:16 CEST; 58s ago ps ax | grep -i xvfb 13101 ? Ss 0:00 /usr/bin/Xvfb :99 -screen 1 1024x768x24 -nolisten tcp 13200 pts/6 S+ 0:00 grep --color=auto -i xvfb
Base de données MariaDB dockerisée
Configurer Mariadb
en root
- Installer docker-ce sur le serveur qui va héberger le conteneur de BDD (
serveur_bdd_docker
), dans mon cas:docker-ce-17.06.2.ce-1.el7.centos.x86_64
- se connecter sur le serveur qui va héberger le conteneur de BDD pour la base de données Asqatasun
- créer un conteneur Docker de BDD pour Asqatasun, ceci présuppose :
- l’upload d’une image docker pour mariadb, dans l’example plateforme-dev-bdd-template
- les données initiales plus arborescence sous forme de fichier tar (
backup-volume-plateforme-dev-bdd.tar
)
# Création du volume pour les données
docker volume create vol-plateforme-asqatasun-bdd
# Création du conteneur
docker run -d -v vol-plateforme-asqatasun-bdd:/appli/mariadb/mariadb_10.2 --network reseau-projet --ip 172.18.0.3 -it --privileged --name plateforme-asqatasun-bdd -h plateforme-asqatasun-bdd -p dbportinstal:3306/tcp plateforme-dev-bdd-template
# Initialiser l'arborescence de la BDD
docker run -it --volumes-from plateforme-asqatasun-bdd -v /home/docker:/backup plateforme-dev-bdd-template tar xvf /backup/backup-volume-plateforme-dev-bdd.tar
en user docker
# se connecter à l'instance MariaDb du conteneur
docker exec -it plateforme-asqatasun-bdd bash
su - mysql
PATH="$PATH:/opt/mariadb_10.2/bin"
mysql -h 127.0.0.1 -P 3306 -u root -p
-- Créer l'utilisateur
CREATE USER 'asqatasun'@'%' IDENTIFIED BY PASSWORD '*461C39BF6D6678800707CC0F906D93EC9978272E';
-- Ce mot de passe chiffré correspond au mot de passe: asqatasun
-- Créer la DB et ajouter les ACL
CREATE DATABASE IF NOT EXISTS `asqatasundb` DEFAULT CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON asqatasundb.* TO 'asqatasun'@'%';
GRANT SUPER ON *.* TO 'asqatasun'@'%' IDENTIFIED BY 'asqatasun';
FLUSH PRIVILEGES;
-- Vérifier les ACL
show GRANTS for 'asqatasun'@'%';
-- Si erreur (**) : supprimer la DB + l'utilisateur et recommencer
DROP DATABASE `asqatasundb`;
DROP USER 'asqatasun'@'%';
Tester l’accès depuis le serveur asqatasun
mysql -u asqatasun -pasqatasun asqatasundb -h serveur_bdd_docker -P dbportinstal
Welcome to the MariaDB monitor. (...)
Mails avec Poxfix
Paramétrer POSFIX pour les mails
# Ajouter à /etc/postfix/main.cf
vi /etc/postfix/main.cf
smtp_sasl_auth_enable = yes
smtpd_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtp_sasl_mechanism_filter = login, plain
# Créer le fichier /etc/postfix/sasl_passwd
vi /etc/postfix/sasl_passwd
mrelay-pr-app-79-1.example.oper comptemail:password
# Activer la configuration
postmap /etc/postfix/sasl_passwd
systemctl restart postfix
# Tester
echo "Test de message" | mail -s "Essai Postfix" adresse_mail_test
Proxy avec Apache
Paramétrer Apache pour le proxy (dans mon cas j’ai un serveur proxy)
# Asqatasun
ProxyPass /asqatasun/ http://localhost:8080/asqatasun/
ProxyPassReverse /asqatasun/ http://localhost:8080/asqatasun/
# Rédemarrer Apache
systemctl restart httpd
Installation d’Asqatasun
# en root
su
# Téléchargement
cd /opt/sources
wget http://download.asqatasun.org/asqatasun-latest.tar.gz
cp ./asqatasun-latest.tar.gz ../
cd ../
tar -xzf ./asqatasun-4.0.3.i386.tar.gz
cd /opt/asqatasun-4.0.3.i386
# Modifier le fichier /opt/asqatasun-4.0.3.i386/install/web-app/conf/asqatasun.conf
# et mettre à jour jdbc.url=jdbc:mysql://$SQL_SERVER_URL:30406/$DATABASE_NAME
# avec le port qui convient(dbportinstal) dans cet exemple
# ----> Enlever les options de debug et activer le serveur local de smtp:
#130919
#isAllowedToSendKrashReport=true
#krashReportMailList=support@asqatasun.org
isAllowedToSendKrashReport=false
#130919
smtp.host=localhost
Modification des scrips SQL de la distribution d’asqatasun
pour la prise en compte du paramètre --database-port.
- PROCEDURE_contract_create.sh
- ASQA_contract_create_SEO.sh
- ASQA_contract_create_A11Y_RGAA3.sh
- ASQA_contract_create_A11Y_RGAA3_openbar.sh
- tg-create-user.sh
- tg-set-user-admin.sh
# Lancer l'installation
./install.sh --database-user asqatasun \
--database-passwd asqatasun \
--database-db asqatasundb \
--database-host serveur_bdd_docker \
--database-port dbportinstal \
--tomcat-user tomcat \
--asqa-admin-email mail_admin_asqatasun \
--asqa-admin-passwd pwd_admin_asqatasun \
--display-port :99 \
--tomcat-webapps /var/lib/tomcat/webapps \
--asqatasun-url http://localhost:8080/asqatasun/ \
--firefox-esr-binary-path /opt/firefox-31.4.0esr/firefox
Pour revenir en arrière si besoin, lancer
rm -f /usr/share/tomcat/.gconf
rm -f /usr/share/tomcat/.java
rm -f /usr/share/tomcat/.cache
rm -f /usr/share/tomcat/.dbus
rm -f /usr/share/tomcat/.mozilla
rm -f /usr/share/tomcat/.gnome2
rm -f /usr/share/tomcat/.gnome2_private
rm -f /etc/default/tomcat
/opt/asqatasun-4.0.3.i386/install/uninstall.sh -c /etc/asqatasun -p
# le script de suppression de BDD ne fonctionne pas,
# il faut lancer les commandes citées dans **
Configurer les options de démarrage pour Tomcat
pour prendre en compte asqatun autrement asquatun ne démarra pas:
vi /usr/share/tomcat/conf/tomcat.conf et ajouter à la fin du fichier
JAVA_OPTS="-Xms512M -Xmx2048M -DconfDir=file:///etc/asqatasun -DlogDir=/var/log/asqatasun -Dwebdriver.firefox.bin=/opt/firefox-31.4.0esr/firefox -Ddisplay=:99"
# Rédémarrer Tomcat, important sinon erreur de l'adquisition du display
# ---> Caused by: org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary(/opt/firefox-31.4.0esr/firefox) on port 7055; process output follows: (process:29366): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed Error: cannot open display: :99
su - tomcat
systemctl restart tomcat
- Vérifier que Tomcat est vivant :
https://serveur_tomcat/
- dans la partie applications vérifier qu’asqatasun est démarré
- Accéder à Asqatasun:
https://serveur_tomcat/asqatasun/
- Se connecter avec le compte crée dans ./install.sh …
Pour lancer un test un mode Scénario il faut enregistrer un scénario au format Json avec Selenium Builder puis l'importer dans un prjet d'audit dans Asqatasun
Installer la version Firefox 31 ESR: https://ftp.mozilla.org/pub/firefox/releases/31.4.0esr/win32/fr/Firefox%20Setup%2031.4.0esr.exe
Installer le plugin Selenium Builder V2.3.5 pour Firefox: https://github.com/Tanaguru/Download/raw/master/selenium-builder-2.3.5.xpi
Enregistrer les actions dans un site
Résumé:
Logs: /var/log/asqatasun/asqatasun.log
Conf:
/etc/asqatasun/asqatasun.conf
Paramétrage Tomcat pour asqatasun :/usr/share/tomcat/conf/tomcat.conf
SMTP:
/etc/postfix/main.cf
/etc/postfix/sasl_passwd
Pour debugger les logs asqatasun depuis tomcat
cp -p /var/lib/tomcat/webapps/asqatasun/WEB-INF/classes/log4j.properties /var/lib/tomcat/webapps/asqatasun/WEB-INF/classes/log4j.properties.orig
vi /var/lib/tomcat/webapps/asqatasun/WEB-INF/classes/log4j.properties
log4j.logger.org.asqatasun.crawler=INFO
log4j.logger.org.asqatasun.service=INFO