# Cheatsheet serveur Urbike [TOC] ## Intro: fonctionnement global On peut créer nos propres commandes bash en utilisant la méthode `alias`: ```bash # création d'une commande alias say_hello_world="echo 'hello world'" # exécution de la commande say_hello_world # retourne "hello world" ``` On peut ensuite enregistrer ces commandes dans le fichier `.bashrc` ou encore mieux: `.bash_aliases`, qui se trouve dans le dossier Home de votre ordinateur (pour aller rapidement dans votre dossier utilisateur, utilisez le tilde ~ : `cd ~`). Parfois le `.bash_aliases` n'existe pas ; vous pouvez dans ce cas là mettre les liases dans votre `.bashrc` Vous pouvez à présent utiliser un éditeur de texte pour l'ouvrir. Si vous ne trouvez pas le fichier dans votre explorateur, activez l'affichage des fichiers cachés. ## Connexion SSH basique ```bash alias ssh_urbike='ssh <VOTRE_NOM_DUTILISATEUR>@141.95.152.227' ``` Pour vous connecter au serveur, il faudra aussi que vous vous soyez créé une clé SSH et que quelqu'un qui a accés au serveur l'ait ajouté aux clés SSH autorisées. Une fois cette manipulation effectuée, vous pourrez lancer des commandes sur le serveur. Voir [la partie sur l'ajout d'utilisateurs](#Je-veux-permettre-à-une-nouvelle-personne-d’accéder-au-serveur-comment-faire-) ## Le `.bash_aliases` complet :::danger Attention, remplacez bien **`{{VOTRE_NOM_DUTILISATEUR}}`** par votre **nom d'utilisateur** réel sur le serveur ! ::: Copiez le code ci-dessous à l'intérieur de votre `.bash_aliases`. De cette manière, vous aurez aussi la suggestion des commandes disponibles facilement, en tapant deux fois sur `TAB`: ```bash jules@julesPC:~ $ ssh_urbike ssh_urbike ssh_urbike_get_logs ssh_urbike_launch_script ssh_urbike_log_sdroad_exports_bls ssh_urbike_log_sdroad_ftp_delete ssh_urbike_log_sdroad_ftp_status_reports ssh_urbike_log_sdroad_imports_bruxelles ssh_urbike_log_sdroad_imports_gent ssh_urbike_log_sdroad_slack_notifications_gent ssh_urbike_log_sdroad_slack_notifications_vt ssh_urbike_sdroad_exports_bls ssh_urbike_sdroad_exports_bls_pdfs ssh_urbike_sdroad_ftp_delete ssh_urbike_sdroad_ftp_status_reports ssh_urbike_sdroad_imports_bruxelles ssh_urbike_sdroad_imports_gent ssh_urbike_sdroad_slack_notifications_gent ssh_urbike_sdroad_slack_notifications_vt ``` ```bash URBIKE_USER={{VOTRE_NOM_DUTILISATEUR}} # ----- Fonctions génériques # Connexion rapide au serveur en SSH alias ssh_urbike="ssh ${URBIKE_USER}@141.95.152.227" scp_urbike() { scp ${URBIKE_USER}@141.95.152.227:~/$1/$2 $2 } # Gérer les logs d'un script sur le serveur: # - les lister: `ssh_urbike_get_logs <nom_du_dossier_du_script` # - afficher un fichier de logs: `ssh_urbike_get_logs <nom_du_dossier_du_script nom_du_fichier.txt` ssh_urbike_get_logs() { if [[ $2 ]]; then # Download the file at path requested ssh_urbike "cat ~/$1/$2" else # List exports ssh_urbike "cd ~/$1 && ls | grep ".txt"" fi } # Lancer un script sur le serveur. On peut donner un argument optionnel: # `ssh_urbike_launch_script nom_du_dossier_du_script [argument_optionnel]` ssh_urbike_launch_script() { ssh_urbike "cd ~/$1 && python3 ./main.py $2" } # ----- SDRoad-Exports-BLs # Consulter les logs alias ssh_urbike_log_sdroad_exports_bls='ssh_urbike_get_logs SDRoad-Exports-BLs' # Lancer manuellement le script de génération de PDF pour la date d'aujourd'hui alias ssh_urbike_sdroad_exports_bls='ssh_urbike_launch_script SDRoad-Exports-BLs' # pour le lancer, écrivez la commande `ssh_urbike sdroad_pods` pour le lancer pour aujourd'hui, ou `ssh_urbike_sdroad_pods 2022-03-01` pour une date particulière ici par exemple le 1er mars 2022. # Gérer les exports PDF sur le serveur: # - les lister: `ssh_urbike_sdroad_pods_exports` # - en télécharger un: `ssh_urbike_sdroad_pods_exports nom_de_lexport_sur_le_serveur.pdf` ssh_urbike_sdroad_exports_bls_pdfs() { if [[ $1 ]]; then # Download the file at path requested scp_urbike SDRoad-Exports-BLs $1 else # List exports ssh_urbike 'cd ~/SDRoad-Exports-BLs && ls | egrep "*\.pdf"' fi } # ----- SDRoad-FTP-Delete # Lancer le script alias ssh_urbike_sdroad_ftp_delete='ssh_urbike_launch_script SDRoad-FTP-Delete' # Afficher les logs alias ssh_urbike_log_sdroad_ftp_delete='ssh_urbike_get_logs SDRoad-FTP-Delete' # ----- SDRoad-FTP-Status-Reports # Lancer le script alias ssh_urbike_sdroad_ftp_status_reports='ssh_urbike_launch_script SDRoad-FTP-Status-Reports' # Afficher les logs alias ssh_urbike_log_sdroad_ftp_status_reports='ssh_urbike_get_logs SDRoad-FTP-Status-Reports' # ----- SDRoad-Imports-Bruxelles && SDRoad-Imports-Gent # Lancer le script alias ssh_urbike_sdroad_imports_bruxelles='ssh_urbike_launch_script SDRoad-Imports-Bruxelles' alias ssh_urbike_sdroad_imports_gent='ssh_urbike_launch_script SDRoad-Imports-Gent' # Afficher les logs alias ssh_urbike_log_sdroad_imports_bruxelles='ssh_urbike_get_logs SDRoad-Imports-Bruxelles' alias ssh_urbike_log_sdroad_imports_gent='ssh_urbike_get_logs SDRoad-Imports-Gent' # ----- SDRoad-Slack-Notifications-VT && SDRoad-Slack-Notifications-GENT # Lancer le script alias ssh_urbike_sdroad_slack_notifications_vt='ssh_urbike_launch_script SDRoad-Slack-Notifications-VT' alias ssh_urbike_sdroad_slack_notifications_gent='ssh_urbike_launch_script SDRoad-Slack-Notifications-GENT' # Afficher les logs alias ssh_urbike_log_sdroad_slack_notifications_vt='ssh_urbike_get_logs SDRoad-Slack-Notifications-VT' alias ssh_urbike_log_sdroad_slack_notifications_gent='ssh_urbike_get_logs SDRoad-Slack-Notifications-GENT' ``` ## Je veux permettre à une nouvelle personne d'accéder au serveur, comment faire ? :::info Il faut déjà que vous ayiez les droits admin sur le serveur. Si ce n'est pas le cas, vous ne pourrez pas faire la démarche. ::: Vous aurez besoin de demander la **clé SSH publique** de la personne pour laquelle vous souhaitez créer le compte. Elle est souvent située dans `~/.ssh/id_rsa.pub` (attention, id_rsa est la clé *privée*, ne donnez que la clé publique !) Connectez-vous au serveur, puis effectuez les manipulations suivantes : ```bash # Créer le nouvel utilisateur sudo adduser <NOUVEAU_NOM_DUTILISATEUR> # Créer le répertoire `.ssh` de l'utilisateur sudo mkdir /home/<NOUVEAU_NOM_DUTILISATEUR>/.ssh # Rentrez dans ce dossier cd /home/<NOUVEAU_NOM_DUTILISATEUR>/.ssh # rentrez dans le dossier # Ouvrez le fichier `authorized_keys` ... sudo nano authorized_keys # ...et collez la clé publique de la personne à l'intérieur du fichier. # Sortez du document en sauvant les modifs (Cmd+S) puis en quittant (Cmd+X) ``` Si vous souhaitez donner les **droits d'admin** à un utilisateur, vous pouvez effectuer la manipulation supplémentaire suivante : ```bash # Ajouter le user au groupe sudo sudo usermod -aG sudo <user> ``` Cela permet à cet utilisateur de pouvoir ajouter des utilisateurs à son tour.