Ici on n'a que votre IP, votre pseudo et votre adresse mail que nous ne traitons pas.
Quand vous êtes enregistrés, une seule requête permet de vous afficher les messages que vous n'avez pas lus.
Primtux8 est arrivée! Rendez-vous ici
Vous pouvez désormais vous inscrire librement en cliquant sur "S'enregistrer".

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Créer un serveur de cache apt pour les parcs utilisant primtux
#26
Bon ça avance.
Première chose : je n'ai toujours pas séparer le serveur du client... je le ferai plus tard.

C'est sur le git, branche devel, fichier acn-v2.py
https://github.com/CyrilleBiot/scripts/b.../acn-v2.py

Donc version 2
Coté serveur
Installation du serveur et de cron-apt pour automatiser les update
Configuration automatique de cron-apt : scan des repo à la recherche des update de sécurité et création d'un fichier ne contenant que les entrées sécurité
config de cron-apt pour utiliser ces update de sécurité et les installer automatiquement (que celles de sécurité, c'est du stable, ça ne devrait pas poser de soucis)
Les mises à jour se font dans la nuit à 4h

Coté client
Possibilité de choisir un port d'écoute différente du 3142 en cas d'install customisée
Installation de cron-apt pour auto les mises à jour de sécurité

Amélioration diverses
Fix des soucis dans la fonction de reconnaissance de la distribution
Split de la fonction d'installation de paquet
Amélioration à droite et à gauche

Tests
Pas l'école , c'est mercredi. Testé avec ce que j'ai sous la main
- DEBIAN SID : OK pas de soucis (par contre pas d'update de securité sous SID..)
- Mint 18 : OK pas de soucis
- ubuntu qui traine : pas de soucis

Voici les conf apportées (plus value ?) en terme de config
- config du proxy d'ACN
- écriture source.list de securité
- écriture d'un fichier de conf spéfique pour cron-apt


Code :
[== Undefined ==]
libres09@libres09-Latitude-E6410 ~ $ ls -l  /etc/apt/apt.conf.d/00aptproxyANC  && cat /etc/apt/apt.conf.d/00aptproxyANC
-rw-r--r-- 1 root root 49 févr.  5 18:26 /etc/apt/apt.conf.d/00aptproxyANC
Acquire::http::Proxy "http://192.168.0.20:3142";

libres09@libres09-Latitude-E6410 ~ $ ls -l  /etc/apt/sources.list.d/s  && cat /etc/apt/sources.list.d/security-primtuxACN.list
security-primtuxACN.list              stephane_magnenat-xenial-xenial.list  

libres09@libres09-Latitude-E6410 ~ $ ls -l  /etc/apt/sources.list.d/security-primtuxACN.list  && cat /etc/apt/sources.list.d/security-primtuxACN.list
-rw-r--r-- 1 root root 137 févr.  5 18:26 /etc/apt/sources.list.d/security-primtuxACN.list
# Security Update. For Primtux Apt-cacher-ng.
deb http://security.ubuntu.com/ubuntu/ xenial-security main restricted universe multiverse


libres09@libres09-Latitude-E6410 ~ $ ls -l  /etc/cron-apt/action.d/5-primtuxACN-security && cat /etc/cron-apt/action.d/5-primtuxACN-security
-rw-r--r-- 1 root root 238 févr.  5 18:26 /etc/cron-apt/action.d/5-primtuxACN-security
upgrade -y -o APT::Get::Show-Upgraded=true
OPTIONS="-o quiet=1 -o APT::Get::List-Cleanup=false -o Dir::Etc::SourceList=/etc/apt/sources.list.d/security-primtuxACN.list -o Dir::Etc::SourceParts=\"/dev/null\""
MAILTO="root"
MAILON="always"
All you need : #!/bin/bash
Répondre
#27
Ok.

En revanche, va falloir supprimer "def installNmapModule(distrib)".
C'est à ton système de paquet (apt) de gérer les dépendances, pas à ton soft.
pip ça doit rester un outil pour du dev, pas pour les utilisateurs : c'est le meilleur moyen de flinger une distrib et d'avoir des bugs non reproductibles parce que t'as des libs avec des versions diff non compatibles.
En plus, pip va prendre la version la plus récente donc si au moment ou t'as créer ton script t'es sur la v1.2 et que dans 1 an, y'a la v2.0 qui sort, ben il va utiliser cette version.
Enfin, si tu gères pip3, il faudra l'inclure dans les dépendances du paquet debian : ça fait doublon et ça va télécharger une dépendance inutile.

Je pense que ça part d'un bon sentiment mais en voulant trop bien faire, tu risques d'entrainer plus de soucis que d'en résoudre.
Répondre
#28
Oui tout as fait tu soulèves un soucis auquel je me suis heurté.
Le hic c'est que sur mon PC, si j'installe python-nmap via apt sans par la suite faire un pip3 install nmap, je n'arrive pas à faire un import nmap dans python (module not found...)...
D'où la fonction
Donc je suis bien d'accord, mais je ne sais trop comment remédier à cela.
Si tu as la solution pour régler cela, ce serait nickel Wink
thx pour l'interet
All you need : #!/bin/bash
Répondre
#29
Comme ça, je dirais que t'as du perdre quelque chose sur ton PYTHONPATH : une variable global qui va indiquer à ton interpréteur ou chercher les dépendances.
Il faut que tu ais /usr/lib/python3/dist-packages dans le PYTHONPATH pour que ça fonctionne.

En réalité, quand on dev en python, on utilise virtualenv ou pyenv pour avoir des dépendances indépendantes de son système.
Dans cet env, tu configures tes dépendances via un fichier requirements.txt avec des versions précises : un exemple rapide.
Du coup, pip va se caler sur ces versions.

Sinon, y'a aussi docker qui est vraiment sympa : tu peux bosser sur une distrib "neuves" et vérifier que ton soft marche sur plusieurs versions d'ubuntu par exemple.
Répondre
#30
PythonPATH
Ok je regarde cette piste
(pour l'instant j'utilise des virtualenv...)
Je vais regarder ce fameux fichier

Je vais jeter un oeil sur docker (d'habitude c'est plutot des virtualbox ou des schroot)

Et je vire asap installNmapModule() Wink

Un peu débordé ces jours ci....
All you need : #!/bin/bash
Répondre
#31
Pas de prob.

Je te conseil le mode opératoire :
1. pour la phase de dev => virtualenv avec des libs équivalentes à la distrib cible. (donc pas besoin de retoucher le PYTHONPATH)
2. le jour ou tu crées ton paquet deb, tu recettes ton softs avec les déps installé par dpkg.

docker, c'est un outil complémentaire qui peut être pratique pour le dev mais pas non plus indispensable.
Prend ton temps pour apprendre à t'en servir, évalue quand ça te sert vraiment...
Répondre
#32
Voilà j'ai créé une page sur le wiki
https://wiki.primtux.fr/doku.php/apt-cacher-ng-cron-apt
All you need : #!/bin/bash
Répondre
#33
Alors, merci tout d'abord d'avoir pris le temps d'écrire de la doc.

Mon avis :

1. Je suis pas fan des wget et installation via un dépôt git, il va falloir rapidement passer sur
un paquet debian.

2. un paquet debian va simplifier drôlement la doc : pas de recommandation selon si on est sur une base debian ou ubuntu ni les dépendances nécessaires.

3. je sais pas pourquoi tu t'acharnes à proposer un script serveur :

Pour moi, la doc peut se résumer à :
Code :
apt-get install apt-cacher-ng
et votre serveur de cache est opérationnel et écoute sur le port 3142.

A la rigueur, tu peux proposer juste un script complémentaire pour mettre à jour le port ou activer un cron.

4. Je te déconseille de recommander un installation à partir d'une branche GIT.
Une branche, ça peut être instable. Le mieux c'est d'avoir des tags et de pointer vers une version précise.
Répondre
#34
Faudra regarder si ctparental n'est pas aussi sur le 3142, d'ailleurs on le voit souvent celui-là, il y a une explication? Pourquoi 3142 et pas 4589?
Répondre
#35
Autre points :
- tu peux ne mettre QUE les commandes à lancer et non les résultats et les préfix de ton shell.
Je trouve que ça embrouille : l'utilisateur (novice) ne distingue pas bien quelles actions il doit mener.
- le script à la fin ne sert à rien.

Je pense dans l'ensemble que tu veux trop bien faire. L'intention est plus que bonne, le résultat est plus mitigé.
Il faut que tu arrives à synthétiser.
Si tu veux plus détailler, tu peux toujours renvoyer sur une FAQ par exemple directement dans ton dépôt git.
Répondre
#36
OK ok, je revois ça asap.
Sinon l'install côté serveur n'installe pas que apt-cacher-ng mais également cron-apt et des fichiers de conf spécifiques.
Je mets la page du wiki en attente . Je la ré écriirai plus tard
All you need : #!/bin/bash
Répondre
#37
Bon ben je me réponds à moi-même... ctparental semble utiliser 8888 et 8080, le ssh sous 8022, 54 en ipv6. Sous dansguardian et tinyproxy c'était 8888 pour le proxy et 8080 poour dansguardian. Ça paraît peut-être débile comme question mais on ne sait jamais...
Répondre
#38
si tu veux je peux changer le port 3142 pour un autre si ça risque de poser pb. Je rajoute alors au TODO Wink
All you need : #!/bin/bash
Répondre
#39
Non justement là c'est bon, touche plus! De toute manière dans les tests d'intégration si ça ne va pas c'est juste un numéro à changer. Ton soft est hyper-important pour répondre aux détracteurs avec leurs kwartz. Bon je fais mon chiant la prochaine étape ça sera l'installation du même soft sur plusieurs postes en même temps...
Répondre
#40
OK steph, le paquet debian est quasi fini. Je viens de finir le man.
Journée chargée demain, peut être demain soir si tout va bien.
All you need : #!/bin/bash
Répondre
#41
paquet deb dispo sur la branche devel. Premier jet à l'arrache. Testé sous debian sid. Passe. ++
All you need : #!/bin/bash
Répondre
#42
La question sur les ports n'est jamais "débile" Steph : c'est toujours un peu le nerd de la guerre.

T'as des ports qui sont standardisés par l'IANA (les 1024 premiers en tout cas) donc en général il faut une raison en béton pour changer ces derniers.
Pour le reste, c'est assez ouvert.

Après quelques recherches, le port 3142 est quand même réservé à apt-cacher donc vaut mieux laisser tel quel.
Rien n'empêche en revanche de se faire une page wiki de mémo avec les différents ports potentiellement utilisés pour éviter des blagues de softs qui peuvent rentrer en conflit.

@cyril : désolé d'encore te solliciter.
Je pense que l'idéal serait de créer un dépôt git à part pour ton soft.
Serait-t-il également possible de mettre les sources de ton paquet debian et le process de compil dans un README.md ?
L'idée c'est vraiment d'avoir un paquet reproductible que l'on peut compiler chacun de notre côté.

Tu peux t'inspirer de https://github.com/mothsART/fluxboxlauncher
Répondre
#43
oui pas de soucis, mothsart
Juste que là entre les coupures d'électricité et le vrai taf et la vie à coté, je pars un peu dans tous les sens Wink
Mais c'est noté et je fais ça asap Wink

et @cyril : désolé d'encore te solliciter.
Pas de soucis, ça me fait du bien de travailler en équipe et d'avoir des retours même si je semble ronconner de temps et temps Wink
All you need : #!/bin/bash
Répondre
#44
No pression : t'as pas de deadline.
Justement, j'essai de te répondre tôt pour t'éviter de faire et refaire.
Et oui, plus on est nombreux et plus les règles communes et les échanges sont importants.

Si il faut répartir ton travail, tu peux aussi découper les besoins et j'en ferais une partie.
Répondre
#45
Bsr,
Comme demandé un git à part
https://github.com/CyrilleBiot/acn-py

Les paquets debian et les sources (source et debian).

Je vois le reste asap
All you need : #!/bin/bash
Répondre
#46
Bon une page wiki plus light https://wiki.primtux.fr/doku.php/apt-cac...e_cron-apt
All you need : #!/bin/bash
Répondre
#47
Bel effort ! Je regarde ça à tête reposé dans les jours qui viennent.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)