floss:config_ubuntu_server_rpi1

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
floss:config_ubuntu_server_rpi1 [2020/02/29 21:44] – créée villersdfloss:config_ubuntu_server_rpi1 [2020/03/17 23:18] (Version actuelle) – [Script de sauvegarde et automatisation via crontab] villersd
Ligne 22: Ligne 22:
  
 ===== Configuration ===== ===== Configuration =====
 +  * authentification
 +    * user : pi
 +    * pwd : raspberry (attention, le clavier est en qwerty dans un premier temps, le chargement des "locale" se terminant après demande de login...)
 +  * vérification de la connexion via ssh
 +    * [[https://pimylifeup.com/ubuntu-server-raspberry-pi/|Installing Ubuntu Server to the Raspberry Pi]], en particulier, "Setting up SSH for Ubuntu Server", si ce n'est pas fonctionnel par défaut
 +      * %%sudo service ssh enable%%
 +      * %%sudo service ssh start%%
 +    * %%sudo raspi-config%% → option SSH
 +    * Connexion à partir d'une autre machine : ssh pi@ip_adress (remplacer ip_adress par la valeur relevée)
 +    * [[:intra:ubuntu-Rpi-server]] (credentials)
 +  * Clé SSH
 +    * générer sur le PC connecté une paire de clés privée/publique si non disponible (ex : ssh-keygen -o -b 4096 -t rsa)
 +    * copier la clé publique sur le serveur
 +    * ssh-copy-id -i ~/.ssh/id_rsa.pub pi@ip_adress
 +    * tester la connexion qui doit fonctionner sans mdp : ssh pi@ip_adress
 +  * Configurer le réseau en IP fixe :
 +    * [[wp>fr:Classe_d'adresse_IP|Classe d'adresse IP]]
 +    * [[https://doc.ubuntu-fr.org/netplan|netplan]] : nouvel outil de configuration réseau utilisant des fichiers de description YAML
 +      * Sous Debian : %%sudo apt-get install netplan.io%%
 +    * [[https://raspberrypi.stackexchange.com/questions/98598/how-to-setup-the-raspberry-pi-3-onboard-wifi-for-ubuntu-server-18-04-with-netpla|How to setup the Raspberry Pi 3 onboard WiFi for Ubuntu Server 18.04 with netplan?]]
 +    * [[https://askubuntu.com/questions/1143287/how-to-setup-of-raspberry-pi-3-onboard-wifi-for-ubuntu-server-18-04|How to setup of Raspberry Pi 3 onboard WiFi for Ubuntu Server 18.04?]]
 +    * [[https://www.linux.com/tutorials/how-use-netplan-network-configuration-tool-linux/|How to Use the Netplan Network Configuration Tool on Linux]]
 +
 +  * Fichier de configuration à créer : %%sudo nano /etc/netplan/01-netcfg.yaml%%
 +
 +<code yaml 01-netcfg.yaml>
 +# /etc/netplan/01-netcfg.yaml netplan configuration file
 +network:
 +    version: 2
 +    ethernets:
 +        eth0:
 +            optional: true
 +            dhcp4: no
 +            addresses: [192.168.1.231/24]
 +            gateway4: 192.168.1.1
 +            nameservers:
 +                addresses: [192.168.1.1, 8.8.8.8]
 +</code>
 +
 +  * %%sudo netplan apply%%
 +
 +  * mises à jour :
 +    * sudo apt-get upgrade
 +    * sudo apt-get update
 +  * redémarrage :  sudo reboot
 +  * arrêt : sudo halt
 +
 +==== Compléments d'installation du serveur : apache2 et php ====
 +  * Installation du serveur LA(M)P sur base de [[config_ubuntu_server]]
 +    * [[https://doc.ubuntu-fr.org/msmtp]] envoi d'emails par SMTP : solution idéale si vous avez besoin que votre serveur vous envoie les courriels de notifications sans avoir à mettre en place une solution lourde.
 +  * **sudo apt install apache2**
 +  * test du serveur apache : [[http://ip_adress]] (serveur de pages web statiques)
 +  * **sudo apt install php libapache2-mod-php**
 +  * **sudo nano /var/www/html/phpinfo.php et ajouter <?php phpinfo(); ?>** comme seule ligne à ce fichier. Sauver et test dans un navigateur : [[http://ip_adress/phpinfo.php]]
 +  *  La configuration de PHP se fait via un fichier php.ini (localisé sous Bionic, Ubuntu 18.04) ici : /etc/php/7.2/apache2/php.ini
 +  * Paquets PHP souvent utiles (des modules additionnels pourront être installés en fonction des logiciels installés sur le serveur ainsi que leurs extensions/plugins) :
 +    * **sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip**
 +  * [[https://doc.ubuntu-fr.org/tutoriel/lamp_repertoires_de_travail|Serveur LAMP - Créer un/des répertoires de travail]] + intérêt d'ajouter l'utilisateur au groupe www-data + [[https://www.cyberciti.biz/faq/ubuntu-add-user-to-group-www-data/|lien2]]
 +    * [[https://askubuntu.com/questions/1115979/apache-permissions-to-allow-both-user-and-web-server-to-edit-var-www]]
 +    * ajouter l'utilisateur user au groupe www-data : **sudo usermod -a -G www-data user**
 +  * [[https://doc.ubuntu-fr.org/msmtp]] envoi d'emails par SMTP : solution idéale si vous avez besoin que votre serveur vous envoie les courriels de notifications sans avoir à mettre en place une solution lourde.
 +  * [[https://doc.ubuntu-fr.org/lamp#envoi_de_courriel|Envoi d'emails]] via [[https://doc.ubuntu-fr.org/msmtp]], par exemple par DokuWiki
 +    * **sudo apt install msmtp msmtp-mta**
 +    * Configuration pour l'envoi de courriels au niveau du système : **sudo nano /etc/msmtprc**
 +    * vérification (doc.ubuntu-fr) ls -la /usr/sbin/sendmail
 +    * test : echo 'message' | msmtp user@domain.com
 +
 +<note tip>Effacer le nom d'utilisateur et le mot de passe si le serveur est diffusé, et/ou rendre invalide le compte par défaut de msmtp pour éviter des envois erronés vers le serveur d'email !! </note>
 +
 +  * [[http://doc.ubuntu-fr.org/apache2|Configuration de Apache2]] - installer le module "rewrite" 
 +    * **sudo a2enmod rewrite**
 +    * **sudo systemctl restart apache2**
 +  * Paquets additionnels :
 +    * **sudo apt-get install unison**
 +
 +==== Installation type sur un serveur LA(M)P : DokuWiki =====
 +  * cf. [[dokuwiki|DokuWiki]]
 +  * Connexion et identification sur le serveur : ssh username@dns or username@ip_address (ou via les paramètres de PuTTY);
 +  * se placer dans le répertoire web : **cd /var/www/html**
 +  * créer un répertoire pour le wiki : **sudo mkdir wiki00**
 +  * s’y placer : **cd wiki00**
 +  * télécharger la dernière version de DokuWiki : **sudo wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz**
 +  * décompresser l’archive : **<nowiki>sudo tar -xzvf dokuwiki-stable.tgz --strip-components=1</nowiki>**
 +  * effacer l’archive : **sudo rm dokuwiki-stable.tgz**
 +  * owner & permissions ([[https://www.dokuwiki.org/install:permissions#unix]])
 +    * **sudo chown -R www-data:www-data /var/www/html/wiki00**
 +    * **cd /var/www/html/wiki00** (si on n'y était pas)
 +    * fichiers : **sudo find . ! -type d -exec chmod 660 {} \;**
 +    * répertoires : **sudo find . -type d -exec chmod 770 {} \;**
 +  * on peut à présent régler la configuration de base de DokuWiki via un navigateur web, en pointant sur [[http://dns/wiki00/install.php]] ou [[http://ip_address/wiki00/install.php]]. Documentation spécifique : [[https://www.dokuwiki.org/installer]] pour la description des options :
 +    * **Wiki Name**
 +    * **Enable ACL**
 +    * **Superuser**
 +    * **Full Name**
 +    * **E-Mail**
 +    * **Password**
 +    * **Once Again**
 +    * **Initial ACL policy**
 +    * **Allow users to register themselves** 
 +  * **sudo rm install.php** (effacement du script d'installation)
 +
 +Le wiki est pré-configuré et (presque) opérationnel ! Réglages complémentaires de la configuration via le menu d’administration - "Paramètres de configuration" :
 +  * choisir la langue de l’interface language fr
 +  * mode de création des répertoires : choisir 02770 (au lieu de 0755) (set gid, cf. [[http://www.dokuwiki.org/config:dmode]])
 +  * mode de création des fichiers : choisir 0660 (au lieu de 0644)
 +  * Dans les paramètres d’authentification, rubrique “Actions à désactiver dans DokuWiki”, vérifier la désactivation (cocher) de l’action “s’enregistrer”, sauf si vous voulez permettre à n’importe quel quidam de s’inscrire et appartenir au groupe “user”
 +  * pour le délai avant indexation (paramètres anti-spam), vous pouvez vous contenter de 60*5 plutôt que 60*60*24*5, qui contraint à une attente de 24H après édition, avant que l’indexation par un robot de moteur de recherche ne redevienne possible
 +  * Si comme administrateur vous souhaitez être averti à chaque modification effectuée par un autre utilisateur, indiquez votre email derrière “Notifier les modifications à cette adresse de courriel” (paramètres d’édition)
 +  * ensuite, vous pouvez aussi activer l’abonnement aux pages, ce qui aura pour effet de générer un envoi par email notifiant la modification. Le délai peut être réglé par l’option suivante (“Délai après lequel les listes d’abonnement …”)
 +  * Mentionner dans ce dernier cas l’expéditeur des notifications par courriel du wiki (paramètres avancés)
 +
  
 ===== Exploitation ===== ===== Exploitation =====
 +
 +==== Dispositif USB externe ====
 +  * [[https://gist.github.com/etes/aa76a6e9c80579872e5f]]
 +  * [[https://www.raspberrypi-spy.co.uk/2014/05/how-to-mount-a-usb-flash-disk-on-the-raspberry-pi/]] (OK)
 +  * une clé USB insérée dans un PC → ligne finale de /etc/mtab :
 +    * /dev/sdg1 /media/username/USB\040DISK vfat rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro 0 0
 +    * la commande "ls -l /dev/disk/by-uuid/" donne : lrwxrwxrwx 1 root root 10 mar 15 10:54 0133-98D2 -> ../../sdg1
 +  * La même clé USB dans le Raspberry : 
 +    * la commande "ls -l /dev/disk/by-uuid/" donne (à la deuxième ligne) : lrwxrwxrwx 1 root root 10 mars  15 10:17 0133-98D2 -> ../../sda1
 +  * création du point de montage :
 +    * sudo mkdir /media/usb
 +  * propriétaire et droits (à ajuster si utile) :
 +    * sudo chown -R pi:pi /media/usb
 +  * test du montage et démontage en mode manuel :
 +    * sudo mount /dev/sda1 /media/usb -o uid=pi,gid=pi
 +    * cd /media/usb
 +    * ls
 +    * sudo umount /media/usb
 +  * montage récurrent : ajouter une ligne à la fin du fichier /etc/fstab :
 +    * sudo nano /etc/fstab
 +    * UUID=0133-98D2 /media/usb vfat auto,nofail,noatime,users,rw,uid=pi,gid=pi 0 0
 +  * redémarrer : sudo reboot
 +
 +==== Script de sauvegarde et automatisation via crontab ====
 +
 +=== Script de sauvegarde ===
 +  * Backup sur l'utilisateur pi, (crontab -e) : 25 4 * * * /home/pi/backups/backup.sh
 +  * Le script bash backup.sh doit être exécutable. Après sa création, il faudra exécuter "chmod +x backup.sh"
 +  * doc :
 +    * [[https://doc.ubuntu-fr.org/cron]]
 +    * [[https://linux-sys-adm.com/how-to-create-script-for-backup-and-use-crontab-on-ubuntu-server-14.04-lts-step-by-step/]]
 +    * [[https://guide.ubuntu-fr.org/server/backup-shellscripts.html]]
 +  * Création d'un lien symbolique :
 +    * ln -s /media/usb/sauvegardes ~/sauvegardes
 +
 +<code backup.sh>
 +#!/bin/sh
 +THESITE="wiki01"
 +THEDB="dbname"
 +THEDBUSER="dbuser"
 +THEDBPW="dbpwd"
 +THEDATE=`date +%F-%T`
 +# backup de la base de données NON UTILISÉ
 +#mysqldump -u $THEDBUSER -p${THEDBPW} $THEDB | gzip > ~/${THESITE}backups/files/dbbackup_${THEDB}_${THEDATE}.bak.gz
 +# backup des fichiers du site
 +#tar -czf ~/${THESITE}backups/files/sitebackup_${THESITE}_${THEDATE}.tar.gz /var/www/html/${THESITE}
 +tar -czf /media/usb/sauvegardes/sitebackup_${THESITE}_${THEDATE}.tar.gz /var/www/html/${THESITE}
 +# éliminer les fichier vieux de plus de 5 jours → À RETESTER !!
 +#find /backups/files/site* -mtime +5 -exec rm {} \;
 +#find /backups/files/db* -mtime +5 -exec rm {} \;
 +</code>
 +
  
  • floss/config_ubuntu_server_rpi1.1583009085.txt.gz
  • Dernière modification : 2020/02/29 21:44
  • de villersd