Mes mémos sur les OS, le dev, la virtualisation, les iot, et le software bien pensé, simple & utile. (Qd j'ai l'temps)
1027 words
@TheSubmarine

Installation de Windows Terminal et oh-my-posh

Installation de Windows Terminal

windows terminal

Via le Windows Store. Méthode la plus simple.

Installation des polices de caractères

Caskaydia Cove Nerd Font : https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/CascadiaCode.zip
UbuntuMono Nerd Font : https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/UbuntuMono.zip

Décompressez les fichiers zip, puis clic-droit sur les fichiers des polices et installer

Installation de git et Oh My Posh

Installation de Chocolatey si ce n'est pas déjà effectué :

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Installation de git via Chocolatey :

cinst -y git

Installation de scoop :

Set-ExecutionPolicy RemoteSigned -scope CurrentUser
iwr -useb get.scoop.sh | iex

Installation de oh-my-posh via scoop :

scoop install https://github.com/JanDeDobbeleer/oh-my-posh3/releases/latest/download/oh-my-posh.json

Configuration

Ouvrez Windows Terminal, puis allez dans Paramètres afin d'éditer le fichier de configuration.

Modifier le premier élément de la list (powershell) pour ressembler à ceci :

{
    // Make changes here to the powershell.exe profile.
    "guid": "{90d61bac-debf-1234-5678-00abcdef1234}",
    "fontFace" : "CaskaydiaCove NF",
    "cursorColor" : "#03ff03",
    "historySize": 1000000,
    "cursorShape": "vintage",
    "name": "Windows PowerShell",
    "commandline": "powershell.exe",
    "hidden": false,
    "colorScheme" : "PowerShellTom"
},

Et ajouter un terminal Multipass si multipass est installé et avec une VM dont le nom sera "lab" (notez que vous devez mettre un guid différent des autres déjà présents dans le fichier de paramètres) :

,
{
    "background" : "#350425",
    "colorScheme": "Ubuntu",
    "commandline" : "multipass shell lab",
    "cursorShape" : "filledBox",
    "fontFace" : "Ubuntu Mono",
    "guid" : "{aaaa9e6d-1eaa-4cf9-e61b-82abba184444}",
    "historySize" : 50000,
    "icon" : "C:/Program Files/Multipass/bin/multipass_wt.ico",
    "name" : "Multipass"
}

Puis ajouter les couleurs :

 "schemes": [{
    // Color Scheme: PowerShellTom
    "background" : "#012456",
    "black" : "#000000",
    "blue" : "#0000ff",
    "brightBlack" : "#AAAAAA",
    "brightBlue" : "#44B4CC",
    "brightCyan" : "#19D1D8",
    "brightGreen" : "#81EC0D",
    "brightPurple" : "#FF00FF",
    "brightRed" : "#FF0000",
    "brightWhite" : "#E5E5E5",
    "brightYellow" : "#FFD93D",
    "cyan" : "#19D1D8",
    "foreground" : "#FFFFFF",
    "green" : "#00ff00",
    "name" : "PowerShellTom",
    "purple" : "#9933CC",
    "red" : "#FF6600",
    "white" : "#F5F5F5",
    "yellow" : "#FFD93D"
},{
    "name": "OneDark",
    "black": "#1e2127",
    "red": "#e06c75",
    "green": "#98c379",
    "yellow": "#d19a66",
    "blue": "#61afef",
    "purple": "#c678dd",
    "cyan": "#56b6c2",
    "white": "#abb2bf",
    "brightBlack": "#5c6370",
    "brightRed": "#e06c75",
    "brightGreen": "#98c379",
    "brightYellow": "#d19a66",
    "brightBlue": "#61afef",
    "brightPurple": "#c678dd",
    "brightCyan": "#56b6c2",
    "brightWhite": "#ffffff",
    "background": "#1e2127",
    "foreground": "#abb2bf",
    "cursorColor": "#aaaaaa"
    },{
    // Color Scheme: Ubuntu
    "background":  "#2C001E",
    "black":  "#3f3f00",
    "blue":  "#268BD2",
    "brightBlack":  "#002B36",
    "brightBlue":  "#839496",
    "brightCyan":  "#93A1A1",
    "brightGreen":  "#586E75",
    "brightPurple":  "#6C71C4",
    "brightRed":  "#CB4B16",
    "brightWhite":  "#FDF6E3",
    "brightYellow":  "#657B83",
    "cyan":  "#2AA198",
    "foreground":  "#EEEEEC",
    "green":  "#729FCF",
    "name":  "Ubuntu",
    "purple":  "#D33682",
    "red":  "#16C60C",
    "white":  "#EEE8D5",
    "yellow":  "#B58900"
}],

Création du fichier profil

Créez un fichier nommé Microsoft.PowerShellprofile.ps1 dans C:\Users\nomutilisateur\Documents\WindowsPowerShell afin d'y insérer cette ligne :

Invoke-Expression (oh-my-posh --init --shell pwsh --config "$(scoop prefix oh-my-posh)/themes/jandedobbeleer.omp.json")

windows terminal and oh-my-posh

Références:

https://ohmyposh.dev/docs/installation/
https://www.nerdfonts.com/font-downloads
https://chocolatey.org/packages
https://scoop.sh/

Nginx : accès non accordé à php7.0-fpm.sock

connect() to unix:/run/php/php7.0-fpm.sock failed (13: Permission denied) while connecting to upstream

J'avais cette erreur dans une VM Ubuntu 16.04, alors que tout était bien configuré dans /etc/php/7.0/fpm/pool.d/www.conf, et que les permissions sur /run/php/php7.0-fpm.sock étaient bien en 660.
En identifiant quel user utilisait le daemon nginx, on comprend mieux :

# ps aux|grep nginx|grep -v grep
root     17117  0.0  0.0  32420   976 ?        Ss   20:39   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx    17118  0.0  0.0  32836  2032 ?        S    20:39   0:00 nginx: worker process

C'est le user nginx qui fait tourner le daemon nginx, alors que dans la configuration www.conf, on lui demande de prendre en compte le user www-data. On peut contourner le problème en ajoutant le user nginx dans le groupe www-data :

usermod -a -G www-data nginx

Il faut alors relancer les daemons php7.0-fpm et nginx.

Erreur 'loop' lors de l'exécution d'un playbook Ansible

ERROR! The field 'loop' is supposed to be a string type, however the incoming data structure is a <class 'ansible.parsing.yaml.objects.AnsibleSequence'>

Cette erreur est dûe à une vieille version d'Ansible (< 2.5). Le playbook utilise un mot clé d'Ansible dont les paramètres n'existent que dans une version plus récente. Par exemple, un playbook destiné à une version 20.04 d'Ubuntu mais exécutée dans une Ubuntu 16.04 peut faire surgir l'erreur.

Pour contourner le souci, 2 solutions.

1. Utilisation d'un autre mot-clé

On peut utiliser le mot clé with_items. Il faudra remplacer quelque chose qui ressemble à ceci :

tasks:
    - name: Install Prerequisites
      apt: name={{ item }} update_cache=yes state=latest force_apt_get=yes
      loop: [ 'aptitude' ]

Par ceci :

tasks:
    - name: Install Prerequisites
      apt: name={{ item }} update_cache=yes state=latest force_apt_get=yes
      with_items: [ 'aptitude' ]

2. Installer une version plus récente d'Ansible via pip

Pour désinstaller la version d'Ansible issues des paquets d'Ubuntu :

sudo apt remove --purge ansible
sudo autoremove

Pour installer une version plus récente d'Ansible :

sudo apt install python3-pip
pip3 install ansible

Pour vérifier la version d'Ansible :

ansible --version

L'exemple ci-dessus devient :

tasks:
    - name: Install Prerequisites
      apt:
        name: [ 'aptitude' ]
        update_cache: yes
        state: latest

Moralité : toujours utiliser la version pip d'Ansible.

Convertir une animation webp en animation gif sous Ubuntu

Il est parfois nécessaire de convertir une animation webp en animation gif (suite d'images gif). Il faut d'abord installer le package webp et libwebp6 :

sudo apt install libwebp6 webp

Ensuite, il faut télécharger le package libwebp-0.6.1-linux-x86-64.tar.gz (distrib 64bits), car il contient l'utilitaire anim_dump dont on va se servir pour extraire les "frames" du webp et que l'on va copier dans /usr/local/bin/ :

wget -c https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-0.6.1-linux-x86-64.tar.gz
tar -zxvf libwebp-0.6.1-linux-x86-64.tar.gz 
sudo cp libwebp-0.6.1-linux-x86-64/bin/anim_* /usr/local/bin/

Créer un fichier webp2gif.sh qui contiendra ces instructions :

#!/bin/bash
anim_dump -tiff $1
convert -delay 10 -loop 0 *.tiff $1.gif

Puis lui donner le droit d'exécution :

chmod +x webp2gif.sh

Avant de le copier dans /usr/local/bin/ :

sudo cp webp2gif.sh /usr/local/bin/

Tester avec un fichier webp :

webp2gif.sh test.webp

Installation du snap Standard Notes sous Pop_OS 19.10

Standard Notes
Il est nécessaire d'installer au préalable snapd si ce n'est pas déjà fait:

sudo apt install snapd

Ensuite, installer le snap :

snap install standard-notes

Si Standard Notes se lance avec une erreur :

A JavaScript error occurred in the main process
Uncaught Exception:
Error: ENOENT: no such file or directory, open '/home/thesubmarine/snap/standard-notes/4/.config/Standard Notes/user-preferences.json'

Créez un fichier user-preferences.json :

touch /home/thesubmarine/snap/standard-notes/4/.config/Standard\ Notes/user-preferences.json

Puis relancer Standard Notes :

standard-notes

Ressource : Snapcraft

Générer une clé publique à partir d'une clé privée

ssh keys

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub