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é lorsque enable_anonymous_auth est false). Par défaut : test.'
  • htaccess_password: 'Mot de passe à utiliser lors de l'authentification au pypi-server (uniquement utilisé lorsque enable_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.

  1. Virtualbox
  2. Vagrant
  3. Python 2.7
  4. virtualenv

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.

  1. 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.

  1. Cloner un dépôt source Python
git clone https://github.com/getanewsletter/BeautifulSoup4.git
  1. Créer/modifier le fichier .pypirc dans votre répertoire personnel et ajouter les identifiants htaccess_username et htaccess_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 et htaccess_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>
  1. 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

Apache 2.0

Informations sur l'auteur

À propos du projet

A role to run a minimal pypi-server

Installer
ansible-galaxy install Comcast.pypi
Licence
apache-2.0
Téléchargements
15.6k
Propriétaire
Comcast brings together the best in media and technology to create the world's best entertainment and online experiences