Skip to content

Workstation Linux

Guide de configuration d’une workstation Linux (Fedora) pour un environnement DevOps — réseau VLAN, outils, shell et gestion de la VM PBS via KVM/libvirt.


Configurer le DNS sur la connexion VLAN pour résoudre les noms internes :

Terminal window
nmcli con mod "<NOM_CONNEXION>" ipv4.dns "<DNS_IP>"
nmcli con mod "<NOM_CONNEXION>" ipv4.ignore-auto-dns yes
nmcli con mod "<NOM_CONNEXION>" ipv4.dns-search "<YOUR_DOMAIN>"
nmcli con up "<NOM_CONNEXION>"

Exposer un VLAN dédié sur la workstation pour la connectivité de la VM PBS :

Terminal window
# Bridge principal
nmcli con add type bridge con-name "br0" ifname "br0" \
ipv4.method disabled ipv6.method disabled bridge.stp no
# VLAN backup attaché au bridge
nmcli con add type vlan con-name "BACKUP" ifname "vlan<BACKUP_VLAN_ID>" \
dev <PHYSICAL_INTERFACE> id <BACKUP_VLAN_ID> \
ipv4.method disabled ipv6.method disabled \
master "br0" slave-type bridge
nmcli con up "br0"
nmcli con up "BACKUP"

Installé via JaKooLit dotfiles. Ne modifier que les fichiers dans ~/.config/hypr/UserConfigs/ — les fichiers configs/ sont écrasés lors des mises à jour.

~/.config/hypr/monitors.conf
monitor = <MONITOR_NAME>, <RESOLUTION>@<REFRESH_RATE>, 0x0, <SCALE>, vrr, 2
# Exemple ultrawide 49"
monitor = DP-1, 5120x1440@240, 0x0, 1.07, vrr, 2
~/.config/hypr/UserConfigs/WindowRules.conf
windowrule = no_blur true, match:focus false
# Kitty : blur actif même inactif
windowrule = no_blur false, match:class kitty, match:focus false
windowrule = opacity 1.0 0.92, match:class kitty
~/.config/hypr/UserConfigs/UserDecorations.conf
gaps_in = 6
gaps_out = 12
border_size = 1
rounding = 10
dim_inactive = true
dim_strength = 0.1

~/.config/kitty/kitty.conf
font_family JetBrainsMono Nerd Font
font_size 16.0

Terminal window
# oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Powerlevel10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# Plugins
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
Terminal window
plugins=(git dnf docker ansible zsh-autosuggestions zsh-syntax-highlighting)

Navigation

Terminal window
alias ls='lsd'
alias l='ls -l'
alias la='ls -a'
alias lla='ls -la'
alias lt='ls --tree'
alias ..='cd ..'
alias ...='cd ../..'
alias c='clear'

Git

Terminal window
alias g='git'
alias gs='git status'
alias ga='git add'
alias gc='git commit -m'
alias gp='git push'
alias gl='git log --oneline --graph --decorate'
alias gd='git diff'

Docker

Terminal window
alias d='docker'
alias dc='docker compose'
alias dcu='docker compose up -d'
alias dcd='docker compose down'
alias dcl='docker compose logs -f'
alias dps='docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"'

Ansible

Terminal window
alias ap='ansible-playbook'
alias apv='ansible-playbook --vault-password-file ~/.vault_pass'
alias ai='ansible-inventory --list'

Système

Terminal window
alias update='sudo dnf update -y'
alias ports='ss -tulnp'
alias myip='ip -br a'
alias v='nvim'

Terminal window
# Terraform
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
sudo dnf install terraform
# Ansible
sudo dnf install ansible
# lsd (ls amélioré)
sudo dnf install lsd
# fzf
sudo dnf install fzf
# topgrade (mise à jour globale)
cargo install topgrade

Terminal window
# Bridge et VLAN backup up (requis pour PBS)
ip link show br0
ip link show vlan<BACKUP_VLAN_ID>
# VM PBS démarrée
virsh list --all

Si le bridge est down :

Terminal window
nmcli con up "br0"
nmcli con up "BACKUP"