PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

elementary OS : Les vacances sont terminées : elementary OS continue son évolution

jeudi 14 septembre 2017 à 22:57

Septembre sonne la fin des vacances d’été et la rentrée pour bon nombre d’entre nous, la team elementary OS n’a pour autant pas chômé : pendant les vacances d’été, l’équipe de Daniel a pu travailler de concert avec l’équipe de System76 pour faire évoluer l’Installateur d’elementary OS !

Le mois d’août a vu toutefois aussi de nombreuses mises à jour apparaître :

AppCenter

Cassidy a pu apporter quelques modifications graphiques sur la fenêtre de paiement de l’AppCenter, le titre ainsi que la description sont maintenant plus visibles :

AppCenter : le titre d'une fenêtre est mis en valeur

 

Autre modification qui se voit greffer à AppCenter, l’ajout d’une liste noire qui intègre par exemple certains composants systèmes et outils hérités d’Ubuntu, mais qui ne fonctionnent pas sur elementary OS. Cette liste noire est accessible ici.

Un correctif a été aussi réalisé sur la gestion des URL de type appstream://,dans certaines conditions, vous pouviez être bloqués sur la fenêtre des mises à jour.

Look & Feel

Grâce à de nombreux retours faits sur GitHub, l’équipe de Daniel a pu augmenter le contraste des couleurs au niveau des sidebars de vos applications pour supporter les règles d’accessibilité des contenus web : le standard WCAG. Notre feuille de style intègre maintenant la classe .monospace pour le support des polices de caractères monospaced sur un widget. Autre point d’attention, lorsqu’une fenêtre est maintenant maximisée : les bords arrondis sont affichés en lieu et place de bord carré.

Coins arrondis

Si vous suivez de manière assidue le développement d’elementary OS depuis un autre système d’exploitation Open Source, vous serez ravis d’apprendre que la dernière version de notre feuille de style incorpore de nombreux correctifs de compatibilités pour Gtk+ ≥ 3.20. Ce travaille et ces correctifs seront intégrés dans la prochaine version majeure d’elementary OS. Cela inclut le changement de nombreux sélecteurs CSS vers de nouveaux noms(actionbarinstead en lieu et place de .action-bar ou GtkActionBar) ainsi que le support de nouvelles classes dont par exemple keycap.

L’indicateur Bluetooth se voit aussi mis à jour au travers d’un correctif qui corrige l’affichage en double les équipements Bluetooth. Un autre correctif s’est vu intégré qui corrige le comportement du séparateur de menu qui pouvait être déplacé avec la liste de périphériques.

Pour l’indicateur de Notification, la présence de texte long de notification se voit maintenant tronquée. Un autre fix s’est vu aussi intégré : celui-ci vient corriger le comportement de certaines fenêtres qui n’étaient pas minimisées lors d’un clic dans la zone de notification adéquate.

Un peu de nettoyage ainsi que quelques corrections d’ordre graphiques ont été apportés à l’indicateur de Session.

Mail

Mail se voit maintenant doter d’un bouton permettant l’ajout d’image directement dans le corps du mail ! Autre soucis maintenant corrigé, lors d’un clic sur un lien issu d’un lien dans un mail, il n’y aura plus de défilement involontaire.

FastMail a effectué un déplacement de leurs serveurs récemment, l’équipe a donc mis à jour le paramétrage des Comptes en ligne pour pointer vers leur nouvelle adresse.

Dans certains cas, lorsque Vidéo détecté la pression sur la barre d’espace, il pouvait interpréter cela comme une double pression sur cette même touche. La calculatrice se voit aussi mise à jour avec une amélioration de la gestion des décimales ainsi qu’un correctif qui empêche maintenant l’affiche du résultat -0.

Le billet Les vacances sont terminées : elementary OS continue son évolution a été publié sur le site de la elementary OS -

Gravatar de elementary OS
Original post of elementary OS.Votez pour ce billet sur Planet Libre.

Articles similaires

Morot : Puppet : automatiser la construction d’un volume GlusterFS répliqué

jeudi 14 septembre 2017 à 22:45

Puppet : automatiser la construction d’un volume GlusterFS répliqué

Je vais présenter rapidement comment créer le code Puppet adapté à la création d’un cluster à deux noeuds avec deux bricks répliqués. Pour la démonstration, j’aurais deux VM Ubuntu 16.04 et les bricks seront sur deux disques durs de 8 Go.

Préparation du Puppet Master

Installation des modules nécessaires :

# puppet module install puppetlabs-lvm
Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ...
Notice: Downloading from https://forgeapi.puppet.com ...
Notice: Installing -- do not interrupt ...
/etc/puppetlabs/code/environments/production/modules
└─┬ puppetlabs-lvm (v0.9.0)
  └── puppetlabs-stdlib (v4.20.0)

# puppet module install puppet-gluster
Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ...
Notice: Downloading from https://forgeapi.puppet.com ...
Notice: Installing -- do not interrupt ...
/etc/puppetlabs/code/environments/production/modules
└─┬ puppet-gluster (v3.0.0)
  └─┬ puppetlabs-apt (v2.4.0)
    └── puppetlabs-stdlib (v4.20.0)

Notre arborescence pour le module se trouvera dans ce répertoire :

# mkdir -p /etc/puppetlabs/code/environments/production/modules/glustersrv/manifests
 

Préparation des disques

Fichier /etc/puppetlabs/code/environments/production/modules/glustersrv/manifests/lvm.pp :
class glustersrv::brick {

# Dépendances :
  package { "xfsprogs": ensure=> present }
  package { "lvm2": ensure=> present }

# On créé notre LVM :
  physical_volume { '/dev/sdb':
    ensure => present,
  }

  volume_group { 'vg-gluster':
    ensure           => present,
    physical_volumes => '/dev/sdb',
  }

  logical_volume { 'lv-bricks':
    ensure       => present,
    volume_group => 'vg-gluster',
      size         => '7.9G',
  }

  filesystem { '/dev/vg-gluster/lv-bricks':
    ensure  => present,
    fs_type => 'xfs',
  }

# Le volume LVM est automatiquement monté
  mount { '/data/glusterfs/vol0':
    name => '/data/glusterfs/vol0',
    ensure => 'mounted',
    atboot => 'true',
    device => '/dev/vg-gluster/lv-bricks',
    fstype   => 'xfs',
    options   => 'defaults',
    dump   => 1,
    pass => 0,
  }
}

Création du volume répliqué

Fichier /etc/puppetlabs/code/environments/production/modules/glustersrv/manifests/node.pp :

class glustersrv::node {

  file { '/data/glusterfs/vol0/brick0':
    ensure => 'directory',
  }

  package { "glusterfs-server": ensure => 'present' }

  service { 'glusterfs-server':
    ensure => running,
    enable => true,
    hasrestart => true,
  }

  gluster::volume { 'repl-vol':
    replica => 2,
    bricks  => [
      'gluster0.morot.test:/data/glusterfs/vol0/brick0',
      'gluster1.morot.test:/data/glusterfs/vol0/brick0',
    ],
  }
}

Affectation des classes

Fichier /etc/puppetlabs/code/environments/production/manifests/site.pp :

node 'gluster0' {
  include system
  include glustersrv::lvm
  gluster::peer { 'gluster1.morot.test':
    pool => 'production',
  }
  include glustersrv::node
}

node 'gluster1' {
  include system
  include glustersrv::lvm
  gluster::peer { 'gluster0.morot.test':
    pool => 'production',
  }
  include glustersrv::node
}

On vérifie

root@gluster1:~# gluster volume status
Status of volume: repl-vol
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick gluster0.morot.test:/data/glusterfs/v
ol0/brick0                                  49152     0          Y       7037
Brick gluster1.morot.test:/data/glusterfs/v
ol0/brick0                                  49152     0          Y       3817
NFS Server on localhost                     N/A       N/A        N       N/A
Self-heal Daemon on localhost               N/A       N/A        Y       3844
NFS Server on 192.168.69.70                 N/A       N/A        N       N/A
Self-heal Daemon on 192.168.69.70           N/A       N/A        Y       7063

Task Status of Volume repl-vol
------------------------------------------------------------------------------
There are no active volume tasks

Gravatar de Morot
Original post of Morot.Votez pour ce billet sur Planet Libre.

blog-libre : sshrc, utiliser vos fichiers de configuration dans des sessions SSH

jeudi 14 septembre 2017 à 11:00

sshrc apporte une réponse à 2 problématiques :

Alors sshrc est fait pour vous. Sur votre poste vous allez créer un fichier ~/.sshrc dans lequel vous allez exporter/sourcer votre configuration personnalisée et un dossier ~./sshrc.d où vous allez placer vos fichiers de configuration (.bashrc, .vimrc, .inputrc, etc.). Au lieu de vous connecter sur ces pc/serveurs avec la commande ssh, vous allez vous connecter avec la commande sshrc (no stress c’est propre). Un dossier /tmp/.cascador.sshrc.XXXX unique (XXXX généré aléatoirement) sera créé sur l’hôte distant, votre configuration personnalisée sera envoyée dedans (avec openssl) puis chargée. A la déconnexion ce dossier sera supprimé.

sshrc est un script shell sous licence MIT aisément maintenable, compréhensible et lisible. Il nécessite comme prérequis openssl sur l’hôte local et distant. Il existe également moshrc pour Mosh. Voici le code source.

#!/usr/bin/env bash
function sshrc() {
    local SSHHOME=${SSHHOME:=~}
    if [ -f $SSHHOME/.sshrc ]; then
        local files=.sshrc
        if [ -d $SSHHOME/.sshrc.d ]; then
            files="$files .sshrc.d"
        fi
        SIZE=$(tar cfz - -h -C $SSHHOME $files | wc -c)
        if [ $SIZE -gt 65536 ]; then
            echo >&2 $'.sshrc.d and .sshrc files must be less than 64kb\\ncurrent size: '$SIZE' bytes'
            exit 1
        fi
        if [ -z "$CMDARG" -a ! -e ~/.sshrc.d/.hushlogin ]; then
            WELCOME_MSG="
                if [ ! -e ~/.hushlogin ]; then
                    if [ -e /etc/motd ]; then cat /etc/motd; fi
                    if [ -e /etc/update-motd.d ]; then run-parts /etc/update-motd.d/ 2>/dev/null; fi
                    last -F \\$USER 2>/dev/null | grep -v 'still logged in' | head -n1 | awk '{print \\"Last login:\\",\\$4,\\$5,\\$6,\\$7,\\$8,\\"from\\",\\$3;}'
                fi
                "
        else
            WELCOME_MSG=""
        fi
        ssh -t "$DOMAIN" $SSHARGS "
            command -v openssl >/dev/null 2>&1 || { echo >&2 \\"sshrc requires openssl to be installed on the server, but it's not. Aborting.\\"; exit 1; }
            $WELCOME_MSG
            export SSHHOME=\\$(mktemp -d -t .$(whoami).sshrc.XXXX)
            export SSHRCCLEANUP=\\$SSHHOME
            trap \\"rm -rf \\$SSHRCCLEANUP; exit\\" 0
            echo $'"$(cat "$0" | openssl enc -base64)"' | tr -s ' ' $'\\n' | openssl enc -base64 -d > \\$SSHHOME/sshrc
            chmod +x \\$SSHHOME/sshrc

            echo $'"$( cat << 'EOF' | openssl enc -base64
                if [ -r /etc/profile ]; then source /etc/profile; fi
                if [ -r ~/.bash_profile ]; then source ~/.bash_profile
                elif [ -r ~/.bash_login ]; then source ~/.bash_login
                elif [ -r ~/.profile ]; then source ~/.profile
                fi
                export PATH=$PATH:$SSHHOME
                source $SSHHOME/.sshrc;
EOF
                )"' | tr -s ' ' $'\\n' | openssl enc -base64 -d > \\$SSHHOME/sshrc.bashrc

            echo $'"$( cat << 'EOF' | openssl enc -base64
#!/usr/bin/env bash
                exec bash --rcfile <(echo '
                [ -r /etc/profile ] && source /etc/profile
                if [ -r ~/.bash_profile ]; then source ~/.bash_profile
                elif [ -r ~/.bash_login ]; then source ~/.bash_login
                elif [ -r ~/.profile ]; then source ~/.profile
                fi
                source '$SSHHOME'/.sshrc;
                export PATH=$PATH:'$SSHHOME'
                ') "$@"
EOF
                )"' | tr -s ' ' $'\\n' | openssl enc -base64 -d > \\$SSHHOME/bashsshrc
            chmod +x \\$SSHHOME/bashsshrc

            echo $'"$(tar czf - -h -C $SSHHOME $files | openssl enc -base64)"' | tr -s ' ' $'\\n' | openssl enc -base64 -d | tar mxzf - -C \\$SSHHOME
            export SSHHOME=\\$SSHHOME
            echo \\"$CMDARG\\" >> \\$SSHHOME/sshrc.bashrc
            bash --rcfile \\$SSHHOME/sshrc.bashrc
            "
    else
        echo "No such file: $SSHHOME/.sshrc" >&2
        exit 1
    fi
}

function sshrc_parse() {
  while [[ -n $1 ]]; do
    case $1 in
      -b | -c | -D | -E | -e | -F | -I | -i | -L | -l | -m | -O | -o | -p | -Q | -R | -S | -W | -w )
        SSHARGS="$SSHARGS $1 $2"; shift ;;
      -* )
        SSHARGS="$SSHARGS $1" ;;
      *)
        if [ -z "$DOMAIN" ]; then
         DOMAIN="$1"
        else
          local SEMICOLON=$([[ "$@" = *[![:space:]]* ]] && echo '; ')
          CMDARG="$@$SEMICOLON exit"
          return;
        fi
        ;;
    esac
    shift
  done
  if [ -z $DOMAIN ]; then
    ssh $SSHARGS; exit 1;
  fi
}

command -v openssl >/dev/null 2>&1 || { echo >&2 "sshrc requires openssl to be installed locally, but it's not. Aborting."; exit 1; }
sshrc_parse "$@"
sshrc

Prise en main

On ne s’embête pas avec Git, on se contente de copier sshrc et le placer dans /usr/local/bin.

wget https://raw.githubusercontent.com/Russell91/sshrc/master/sshrc && chmod +x sshrc && sudo mv sshrc /usr/local/bin/
touch ~/.sshrc && mkdir -p ~/.sshrc.d

Voici mon fichier ~/.sshrc actuel. Dans le dossier ~/.sshrc.d j’ai mes .bashrc, .inputrc, .vimrc.

export EDITOR=vim
export INPUTRC=$SSHHOME/.sshrc.d/.inputrc
export LESS='-FRXi'
export LESS_TERMCAP_mb=$'\\E[01;31m'
export LESS_TERMCAP_md=$'\\E[01;31m'
export LESS_TERMCAP_me=$'\\E[0m'
export LESS_TERMCAP_so=$'\\E[01;44;33m'
export LESS_TERMCAP_se=$'\\E[0m'
export LESS_TERMCAP_us=$'\\E[01;32m'
export LESS_TERMCAP_ue=$'\\E[0m'
export VIMINIT="let \\$MYVIMRC='$SSHHOME/.sshrc.d/.vimrc' | source \\$MYVIMRC"

source $SSHHOME/.sshrc.d/.bashrc
if [[ -f ${SSHHOME}/.sshrc.d/.bash_aliases ]]; then source ${SSHHOME}/.sshrc.d/.bash_aliases ; fi
if [[ -f ${SSHHOME}/.sshrc.d/.bash_functions ]]; then source ${SSHHOME}/.sshrc.d/.bash_functions ; fi

On se connecte ensuite à un serveur comme ceci sshrc root@blog-libre.org. Pour retrouver le répertoire sshrc echo $SSHHOME et s’y déplacer cd $SSHHOME; ls -a.

Je vous invite à taper « dotfile sshrc » dans votre moteur de recherche préféré pour avoir d’autres exemples : 1, 2, 3, 4, 5.

Deux points négatifs

Il n’est pas possible d’envoyer plus de 64 Ko de fichiers de configuration compressés avec sshrc. Première réaction la peur puis après quelques tests, j’arrive à passer 1 Mo sans problème, le mot important à retenir : compressés. Cependant ça reste un problème important pour certains, on peut citer les plugins Vim par exemple. Dans ce cas l’auteur conseille de copier les fichiers dans un obscur dossier sur le serveur et d’utiliser sshrc pour automatiquement sourcer ces configurations au login.

On a vu que sshrc était bien conçu et propre, il crée un dossier /tmp/.cascador.sshrc.XXXX unique qu’il supprime à la déconnexion. Cependant pour certains cas, vous serez obligés de « sortir » de ce dossier. Pour nano il n’est pas possible d’exporter un fichier de configuration, il lit seulement /etc/nanorc et ~/.nanorc, il ne possède pas d’option permettant de préciser où se situe (ailleurs) nanorc. On est donc obligé d’aller placer .nanorc dans ~/. Certains font une copie, d’autres créent un lien symbolique, c’est plus propre. Il faut gérer la suppression de ce fichier (on peut modifier trap \\"rm -rf \\$SSHRCCLEANUP; exit\\" 0 entre autres solutions) mais si une autre personne se connecte sous le même compte que vous, il va charger ce fichier de configuration… et puis vous touchez aux fichiers de configuration du pc/serveur (/root/.nanorc pourrait déjà exister par exemple).

Quelques conseils

N’oubliez pas que les fichiers de configuration de votre pc sont probablement différents de ceux de vos serveurs. Typiquement je suis sur Xubuntu et j’administre des serveurs Debian, les versions des paquets sont différentes, les fichiers de configuration également. Je vous invite à copier les fichiers de configuration à partir de vos serveurs dans ~/.sshrc.d puis les modifier.

N’hésitez pas à abuser de if [ "$(hostname)" == "jessie1" ]; then source ${SSHHOME}/.sshrc.d/.bashrc_jessie1 ; fi afin de gérer finement vos dotfiles par serveur.

Vous pouvez créer des liens symboliques au lieu de copier certains fichiers de configuration dans ~/.sshrc.d. Personnellement j’ai fait ln -s ~/.inputrc ~/.sshrc.d/.inputrc pour inputrc. Ça me permet ainsi d’avoir mes raccourcis claviers personnalisés en fonction du poste sur lequel je suis (touches utilisées différentes si je suis sur mon pc portable).

Je vous invite à lire ce fil sur Hacker News autour de sshrc, il y a des réflexions intéressantes. Je me demande notamment dans quelle mesure on peut charger des fichiers de configuration (rendus disponibles par un serveur web) avec wget/curl. A noter le reddit dotfiles, the unofficial guide to doing dotfiles on GitHub, awesome-shell et tant qu’à faire awesome.

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.

Articles similaires

Okki : Sortie de GNOME 3.26

jeudi 14 septembre 2017 à 00:40

Ça y est. Le tout nouveau GNOME 3.26 est disponible.

Et cette fois-ci, le bureau lui-même a droit à quelques nouveautés bienvenues. Dans la vue d’ensemble des activités, la taille des vignettes des fenêtres a été augmentée, ce qui rend leur sélection plus facile. Et lors d’une recherche, la mise en page a été retravaillée pour pouvoir afficher plus de résultats, tout en étant plus lisibles.

Réorganisation des résultats de recherche

Il est également possible d’effectuer des recherches sur les actions du système (déconnexion, redémarrage, mise hors tension, verrouillage de l’écran…). Lors de la minimisation ou de la maximisation d’une fenêtre, de nouvelles animations font leur apparition. Et lorsque aucune fenêtre n’est maximisée, la barre supérieure devient désormais transparente, donnant l’impression d’un bureau plus grand.

Autre nouveauté importante, l’interface du Centre de contrôle a été complètement refaite et affiche désormais un panneau latéral pour pouvoir naviguer entre les différents modules. Les paramètres concernant le réseau et l’affichage ont également été retravaillés.

Le nouveau Centre de contrôle

Le reste des applications n’est pas en reste. Fichiers peut désormais rechercher dans le contenu même de vos documents (fichiers texte, PDF, LibreOffice ou MS Office…). Les onglets fermés peuvent être restaurés à l’aide du raccourci clavier Ctrl + Shift + T. Les archives peuvent être décompressées sur des serveurs distants.

Le navigateur Web peut désormais synchroniser vos signets, mots de passe, historique de navigation… au travers du service Firefox Sync. Synchronisation qui fonctionne tout aussi bien entre les deux navigateurs que sont Web et Firefox.

Fin 2017, GNOME découvre enfin les émojis en couleur 😁 Et bonne nouvelle, ces derniers pourront désormais être insérés bien plus facilement dans vos messages et documents, à l’aide d’un sélecteur graphique. Certaines applications, comme le client IRC Polari, en tirent d’ores et déjà parti.

Les émojis sont désormais en couleur

Machines peut désormais partager des dossiers entre l’hôte et l’invité. On peut enfin ajouter des événements récurrents dans l’agenda. To Do prend désormais en charge le service Todoist. Le Visionneur de documents prend désormais en charge les documents Adobe Illustrator et CBR

Et bien évidemment, en plus des principales nouveautés, nous avons droit à de nombreuses petites améliorations bienvenues un peu partout, ainsi que d’innombrables corrections de bugs.

Mais je ne vais pas refaire les notes de version, qui n’ont malheureusement pas encore été traduites en français, mais que je vous invite tout de même à parcourir. On regrettera également l’absence de la vidéo de présentation au moment du lancement, qui aurait gagné à être retardé, le temps que tout le monde soit prêt.

Vous pouvez également jeter un œil au billet de blog de Georges Basile Stavracas Neto, qui donne quelques infos supplémentaires, tout en proposant diverses vidéos mettant en avant certaines nouveautés.

Cette nouvelle version est donc un très bon cru, mais qui comporte tout de même son lot de déceptions. Certaines fonctionnalités particulièrement attendues, comme la juxtaposition de quatre fenêtres ou la mise à l’échelle fractionnée nécessaire à la bonne prise en charge des écrans HiDPI n’étaient malheureusement pas prêtes à temps et seront donc repoussées à la prochaine version, prévue pour le mois de mars 2018.

Gravatar de Okki
Original post of Okki.Votez pour ce billet sur Planet Libre.

Okki : Sortie de Gradio 6.0

mercredi 13 septembre 2017 à 18:13
Gradio 6.0

Pour rappel, Gradio vous permet de découvrir et d’écouter des radios en ligne.

Au niveau des nouveautés, nous noterons :

Par contre, les années ont beau passer, il n’existe malheureusement toujours aucune traduction en français.

Gravatar de Okki
Original post of Okki.Votez pour ce billet sur Planet Libre.

Articles similaires