Aller au contenu principal

Déploiement de Debian 11

· 2 minutes de lecture
ornanovitch

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