Comcast.pypi
comcast.pypi
Un rôle pour provisionner un serveur pypi minimal
Variables du rôle
pypi_server_version
: 'La version du paquet pypiserver à installer et à utiliser. Par défaut :1.2.0
.'pypi_user
: 'L'utilisateur exécutant le service pypi-server. Il sera créé s'il n'existe pas. Par défaut :pypi
.'pypi_group
: 'Le groupe dont fait partie pypi_user. Par défaut :pypi
.'pypi_server_port
: 'Le port sur lequel le pypi-server écoutera. Par défaut :7974
.'pypi_home_dir
: 'Le répertoire personnel de l'utilisateur pypi. Par défaut :/srv/pypi
.'pypi_work_dir
: 'Le répertoire de travail du pypi-server. Par défaut :{{ pypi_home_dir }}
.'pypi_packages_directory
: 'Le répertoire qui stockera les paquets Python téléchargés. Par défaut :{{ pypi_work_dir }}/packages
.'pypi_log_file
: 'Le fichier journal sur lequel le pypi-server écrira. Par défaut :{{ pypi_work_dir }}/pypi-server.log
.'pypi_init_script_dir
: 'Le répertoire qui stockera le script d'initialisation du pypi-server (uniquement pour sys-v). Par défaut :/etc/init.d
.'pypi_server_pid_file
: 'L'emplacement du fichier .pid. Par défaut :{{ pypi_work_dir }}/pypi.pid
.'pypi_requirements_template
: 'Modèle listant les paquets requis pour le pypi-server. Par défaut :templates/pypi-server-requirements.txt.j2
.'pypi_server_authenticate
: Liste séparée par des virgules des actions pour authentifier un client, ex. :download,list,update
. Par défaut :update
.htaccess_dir
: 'L'emplacement du fichier.htaccess
généré. Par défaut :{{ pypi_home_dir }}
.'enable_anonymous_auth
: 'Une valeur booléenne qui détermine s'il faut utiliser l'authentification par nom d'utilisateur/mot de passe pour les téléchargements vers le pypi-server. Note : Activer ceci n'est pas recommandé car cela permettra à quiconque de télécharger des artefacts vers pypi. Par défaut :false
.'htaccess_username
: 'Nom d'utilisateur à utiliser lors de l'authentification au pypi-server (uniquement utilisé lorsqueenable_anonymous_auth
est false). Par défaut :test
.'htaccess_password
: 'Mot de passe à utiliser lors de l'authentification au pypi-server (uniquement utilisé lorsqueenable_anonymous_auth
est false). Par défaut :test
.'
Dépendances
Aucune
Exemple de Playbook
Inclure un exemple de comment utiliser votre rôle (par exemple, avec des variables passées en paramètres) est toujours utile pour les utilisateurs :
- hosts: servers
roles:
- role: comcast.pypi
Tests
Les outils suivants sont nécessaires pour tester ce rôle.
Créer un environnement de test :
virtualenv --python=$(which python2.7) .venv
source .venv/bin/activate
pip install -r test-reqs.txt
Exécuter les tests :
molecule test
Tester sur une plateforme spécifique :
molecule test --platform centos/7
molecule test --platform debian/jessie64
Tester les téléchargements :
Tout paquet Python peut être utilisé pour tester le téléchargement. Dans ce cas, BeautifulSoup4 est utilisé comme exemple.
- Mettre en place un serveur pypi local
molecule converge
Cela devrait laisser le pypi-server en cours d'exécution sur http://localhost:8080
avec 0 paquets stockés.
- Cloner un dépôt source Python
git clone https://github.com/getanewsletter/BeautifulSoup4.git
- Créer/modifier le fichier
.pypirc
dans votre répertoire personnel et ajouter les identifiantshtaccess_username
ethtaccess_password
si vous utilisez l'authentification.
Le fichier .pypirc
devrait ressembler à ceci :
Remarque : Si vous utilisez les valeurs par défaut du playbook pour
htaccess_username
ethtaccess_password
, alors les identifiants doivent correspondre à ceux du playbook.yml
[distutils]
index-servers =
local
[local]
repository: http://localhost:8080
username: <htaccess_username>
password: <htaccess_password>
- Télécharger un paquet Python
À partir du dépôt de code source Python, exécutez la commande suivante.
python setup.py sdist upload -r local
Cela devrait télécharger le paquet Python sur le pypi-server spécifié dans le fichier .pypirc
en utilisant les identifiants spécifiés dans le bloc [local]
.
Tester le téléchargement :
Pour tester les téléchargements de paquets à partir du serveur pypi local, la commande ci-dessous peut être exécutée après avoir téléchargé un paquet avec succès. En suivant l'exemple de téléchargement, beautifulsoup4 peut être téléchargé comme suit :
Modifiez
version_number
dans l'exemple ci-dessous pour correspondre à la version du paquet qui a été téléchargé.
pip install --extra-index-url http://localhost:8080/ beautifulsoup4==<version_number>
Licence
Informations sur l'auteur
ansible-galaxy install Comcast.pypi