1. Création machine virtuelle vmCloud
====> Dom0 <====- A l'aide de la commande xen-create-image, créer une nouvelle machine virtuelle
- hostname: vmCloud
- ip: 10.0.x.103
- size: 40G
- Créer un lien symbolique pour que vmCloud se lance avec le serveur :
# ln -s /etc/xen/vmCloud.pvlinux /etc/xen/auto/vmCloud.pvlinux
- Lancer la machine :
# xl create /etc/xen/vmCloud.pvlinux
1. Installation de ownCloud
====> vmCloud <====- Ajouter le dépot owncloud dans les sources :
# echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list
- Ajouter la clef de release officielle de owncload:
# cd /tmp # wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_8.0/Release.key # apt-key add - < Release.key
- Mettre à jour la liste des packages :
# apt-get update
- Installer owncloud:
# apt-get install owncloud
- owncload installe un serveur web, php, mysql,..
- Choisir "postfo2016!" comme password mysql
- Créer une base de donnée pour owncloud :
- Se loguer sur mysql:
# mysql --defaults-file=/etc/mysql/debian.cnf
- Entrer les commandes suivantes pour créer la database et un utilisateur ayant tout les droits sur cette base de donnée :
CREATE DATABASE owncloud; CREATE USER owncloud@localhost IDENTIFIED BY 'owncloud'; RANT ALL PRIVILEGES ON owncloud.* TO owncloud@localhost; flush privileges; quit
- Se loguer sur mysql:
- Créer la structure de repertoire pour owncloud:
# mkdir /var/owncloud # chown www-data:www-data /var/owncloud # chmod 750 /var/owncloud
- Procéder à l'installation en ouvrant un navigateur à l'adresse "http://10.0.x.103/owncloud"
- Compte administrateur : "postfo2016"
- Password administrateur : "postfo2016!"
- Base de donnée : Mysql
- Nom de la base: "owncloud"
- Utilisateur: "owncloud"
- Password: "owncloud"
- Serveur: "localhost"
2. Configuration url vmCloud.domaine_name
===>vmCloud<====- Editer le fichier de configuration de owncloud:
# nano /var/www/owncloud/config/config.php
- Ajouter un "Trusted domain" :
'trusted_domains' => array ( 0 => '10.0.3.103', 1 => 'vmCloud.votre_domaine' ),
- Redémarrer le serveur apache :
# systemctl restart apache2
- Vérifier que vous pouvez accéder à owncloud en utilisant l'url "http://vmcloud.votre_domaine/owncloud"
3. Configuration du serveur apache
===> vmCloud <====Premièrement nous allons modifier la configuration d'apache pour ne plus devoir ajouter "/owncloud" à l'url
- Editer le fichier de configuration des virtual hosts :
# nano /etc/apache2/sites-enabled/000-default.conf
- Modifier la propriété "DocumentRoot" pour pointer vers le owncloud :
DocumentRoot /var/www/owncloud
- Relancer le serveur apache :
# systemctl restart apache2.service
- Vérifier que vous arrivez sur owncloud avec l'url : "http://vmcloud.votre_domaine"
Nous allons maintenant activer l'https permettant de sécuriser les échanges avec notre owncloud
- Editer le fichier de configuration ssl :
# nano /etc/apache2/sites-available/default-ssl
- Modifier le DocumentRoot :
DocumentRoot /var/www/owncloud
- Activer la prise en charge https :
# a2enmod ssl # a2ensite default-ssl # systemctl restart apache2
- Vérifier que vous pouvez accéder à owncloud en https. Il sera nécessaire d'ajouter une exception car le certificat est auto-signé.
4. Configuration du routeur pour accès externe
===> Routeur <====- Ajouter une redirection du port http (80) vers 10.0.3.103
- ====>VmCloud<=====
Editer le fichier de configuration de owncloud:# nano /var/www/owncloud/config/config.php
- Ajouter un "Trusted domain" :
'trusted_domains' => array ( 0 => '10.0.3.103', 1 => 'vmCloud.votre_domaine', 2 => 'votre_ip_externe' ),
- Vérifier que vous avez accès à votre cloud depuis le reseau d'un autre groupe
5. OwnCloud Command (occ)
===>vmCloud<====- Changer d'utilisateur pour utiliser "www-data" :
# su -s /bin/bash www-data
- Se rendre dans le répertoire owncloud:
# cd /var/www/owncloud
- Vérifier le status du cloud :
# php occ status
- Activer le mode maintenance :
# php occ maintenance:mode --on
- Vérifier via le navigateur que le cloud est bien en mode maintenance
- Créer un utilisateur par membre du groupe :
# php occ user:add --display-name="NOM_COMPLET" --group="users" LOGIN
- Désactiver le mode maintenance :
# php occ maintenance:mode --off
- Se connecter avec les nouveaux utilisateurs sur le cloud
- (Se remettre avec le user www-data si nécessaire, voir point 1)
- Vérifier la dernière connexion d'un utilisateur :
# php occ user:lastseen LOGIN
- Mettre à jour owncloud :
# php occ upgrade
6. Configuration: Notifications
====> vmCloud <====Owncloud peut recourir à l'envoi d'emails pour réinitialiser les password, prévenir les utilisateurs de nouveaux partages, etc...
- Editer le fichier de configuration de owncloud :
# nano /var/www/owncloud/config/config.php
- Ajouter la configuration de l'email :
'mail_smtpmode' => 'smtp', 'mail_smtphost' => 'mail.labo2.fij.name', 'mail_smtpport' => '25', 'mail_from_address' => 'cloud', 'mail_domain' => 'mail.labo2.fij.name',
- ====> Interface web cloud <====
Se connecter avec le compte administrateur - Cliquer sur le nom du compte (en haut à droite) et choisir "Personnel"
- Entrer une adresse email
- Cliquer sur le nom du compte (en haut à droite) et choisir "Administration"
- Dans la section sur les mails, cliquer pour tester l'envois de mail
- Vérifier la bonne reception du mail
7. Configuration: Antivirus
====> vmCloud <====- Installer l'antivirus clamav :
# apt-get install clamav clamav-daemon
- Activer l'application "antivirus" dans owncloud :
- Se connecter sur l'interface web owncloud avec un compte admin
- Cliquer en haut à gauche de l'interface et choisir "Application"
- Sélectionner "Tools"
- Activer l'application "Antivirus"
- Configurer l'application "antivirus" dans owncloud :
- Cliquer en haut à droite de l'interface et choisir "Administration"
- Aller à la section "Antivirus" et sélectionner :
- Mode : Daemon (socket)
- Socket: /var/run/clamav/clamd.ctl
- Flux: 1024
- Action: Seulement en prendre note
8. Configuration: Planification des taches
====>vmCloud<====Owncloud a plusieurs processus qui tournent en tâches de fond permettant de scanner les fichiers, etc... Par defaut, owncloud utilise ajax pour lancer les tâches planifiées. Nous allons modifier cette configuration pour utiliser cron
- Dans l'interface d'administration web de owncloud, partie "Administration", section "Cron", sélectionner "Cron"
- Depuis le terminal sur vmCloud. Ouvrir le fichier de configuration crontab :
crontab -u www-data -e
Faire le choix 1) pour utiliser nano - En fin de fichier, ajouter :
*/15 * * * * php -f /var/www/owncloud/cron.php
- Via l'interface web, partie "Administration", section "Cron", vérifier que les tâches sont bien lancées toutes les 15 minutes.
9. Configuration: Cache
===>VmCloud<====Pour améliorer les performances de owncloud il est possible de configurer un cache local
- Installer APC (Alternative PHP Cache) :
# apt-get install php-apc
- Redémarrer apache2 :
# systemctl restart apache2
- Ouvrir le fichier de configuration de owncloud :
# nano /var/www/owncloud/config/config.php
- Ajouter une entrée pour indiquer à owncloud d'utiliser apc :
'memcache.local' => '\OC\Memcache\APC',
10. Installation des clients
====>Clients<====- Installer et configurer les applications clients sur :
- Votre machine cliente (linux)
- La machine virtuelle de la virtualbox (windows)
- Votre smartphone (aucune obligation)
- Tester la synchronisation et le partage de fichier
11. Mise en place d'un backup
====>vmCloud<====- Créer un repertoire pour stocker le backup :
# mkdir /srv/backup # cd /srv/backup
- Installer le paquet rsync :
# apt-get install rsync
- Synchroniser le répertoire backup avec le répertoire owncloud :
# rsync -Aax /var/www/owncloud/ owncloud-dirbkp_`date +"%Y%m%d"`/
- Réaliser un backup de la base de donnée :
mysqldump --lock-tables -h localhost -u root -ppostfo2016! owncloud > owncloud-sqlbkp_`date +"%Y%m%d"`.bak
12. Automatisation du backup
====>vmCloud<====- Créer un fichier "backup_script.sh" :
# nano /var/www/owncloud/backup_script.sh
- Le contenu du fichier doit être :
#!/bin/bash rsync -Aax /var/www/owncloud/ /srv/backup/owncloud-dirbkp_`date +"%Y%m%d"`/ mysqldump --lock-tables -h localhost -u root -ppostfo2016! owncloud > /srv/backup/owncloud-sqlbkp_`date +"%Y%m%d"`.bak
- Rendre le fichier executable :
# chmod a+x /var/www/owncloud/backup_script.sh
- Editer le fichier crontab :
# nano /etc/crontab
- Ajouter une entrée pour lancer le script tous les jours à minuit :
0 0 * * * /var/www/owncloud/backup_script.sh
- Redémarrer le service cron :
# systemctl restart cron
Backup des données
Les backups précédents ont réalisés des sauvegardes de la configuration de owncloud et de la base de donnée. Il peut-être intéressant de backuper les données uploadée.
- ===>vmPxe<====
Créer le repertoire "/srv/backup/cloud" et partager le en NFS ( voir labo sur PXE pour de l'aide si nécessaire) - ====>vmCloud<====
Faire un mount NFS pour monter le répertoire /srv/backup/cloud de vmPxe sur /srv/backup/data de vmCloud (voir labo PXE si aide nécessaire - Utiliser "rsync" pour réaliser une première synchronisation des données (/var/www/owncloud/data) dans le repertoire /srv/backup/data
- Créer un script qui resynchronise les données chaque jour à midi