Aller au contenu principal

Déploiement de Debian 11

· 2 minutes de lecture
ornanovitch
co-fondateur de la FELINN

Comment nous avons mis à niveau tous nos containers LXC vers Debian Bullseye

astuce

Avant toute chose, si jamais le container à migrer est une Debian "complexe" (beaucoup de services, de configurations spécifiques etc.), ne pas hésiter à garder la note de mise à niveau officielle ouverte dans un coin.

  1. zfs set sync=disabled tank/data/subvol-{ID}-disk-0 (désactiver les écritures synchrones pour booster APT)
  2. pct snapshot {ID} pre_upgrade
  3. pct enter {ID}
  4. apt purge etckeeper
  5. apt update && apt full-upgrade
  6. find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error' | xargs rm -v (nettoyage /etc)
  7. sed -i 's/ftp/deb/g' /etc/apt/sources.list (se brancher sur les nouveaux CDN)
  8. sed -i 's/buster/bullseye/g' /etc/apt/sources.list && sed -i 's/bullseye\/updates/bullseye-security/g' /etc/apt/sources.list
  9. vérifier les sources tierces si des changements sont nécessaires (buster -> bullseye) dans /etc/apt/sources.list.d/
  10. apt update
  11. apt upgrade --without-new-pkgs
  12. apt full-upgrade
  13. apt autoremove
  14. si besoin et s'il n'est pas fourni par APT, mettre à jour le service manuellement
  15. git init /etc
  16. entrer
    string=$'[remote "origin"]\\
    url = https://git.felinn.org/FELINN/{service}.felinn.org.git\\
    fetch = +refs/heads/*:refs/remotes/origin/*\\
    [branch "main"]\\
    remote = origin\\
    merge = refs/heads/main'
    puis sed -i '$a\'"${string}"'' /etc/.git/config
  17. nvim /etc/.gitignore
  18. adapter le gitignore à partir de cet exemple :
    *

    !.gitignore
    !*/
    !zsh/zshrc
    !git/config
    !php/8.0/fpm/php.ini
    !php/8.0/fpm/pool.d/www.conf
    !mysql/mariadb.conf.d/50-server.cnf
    !nginx/sites-available/talk.felinn.org.conf
    !flarum/*
  19. cd /etc && git add . && git commit -m "end etckeeper // post upgrade"
  20. git branch main && git switch main
  21. git push (ne marchera pas si main existe déjà, auquel cas autoriser force push sur la branche dans Gitlab puis utiliser git push --force)
  22. reboot
  23. vérifier que tout fonctionne
  24. pct delsnapshot {ID} pre_upgrade
  25. zfs inherit sync tank/data/subvol-{ID}-disk-0