Comcast.pypi

comcast.pypi

Eine Rolle zum Bereitstellen eines minimalen pypi-Servers

Rollenvariablen

  • pypi_server_version: 'Die Version des pypiserver-Wheels, die installiert und verwendet werden soll. Standard: 1.2.0.'
  • pypi_user: 'Der Benutzer, der den pypi-server-Dienst ausführt. Er wird erstellt, wenn er nicht existiert. Standard: pypi.'
  • pypi_group: 'Die Gruppe, der der pypi_user angehört. Standard: pypi.'
  • pypi_server_port: 'Der Port, auf dem der pypi-server lauschen wird. Standard: 7974.'
  • pypi_home_dir: 'Das Home-Verzeichnis des pypi-Benutzers. Standard: /srv/pypi.'
  • pypi_work_dir: 'Das Arbeitsverzeichnis des pypi-Servers. Standard: {{ pypi_home_dir }}.'
  • pypi_packages_directory: 'Das Verzeichnis, in dem hochgeladene Python-Pakete gespeichert werden. Standard: {{ pypi_work_dir }}/packages.'
  • pypi_log_file: 'Die Protokolldatei, in die der pypi-server schreiben wird. Standard: {{ pypi_work_dir }}/pypi-server.log.'
  • pypi_init_script_dir: 'Das Verzeichnis, das das Init-Skript für den pypi-server speichert (nur sys-v). Standard: /etc/init.d.'
  • pypi_server_pid_file: 'Der Speicherort der PID-Datei. Standard: {{ pypi_work_dir }}/pypi.pid.'
  • pypi_requirements_template: 'Vorlage, die die erforderlichen Pakete für den pypi-server auflistet. Standard: templates/pypi-server-requirements.txt.j2.'
  • pypi_server_authenticate: Komma-getrennte Liste von Aktionen zur Authentifizierung eines Clients, z. B.: download,list,update. Standard: update.
  • htaccess_dir: 'Der Speicherort der generierten .htaccess-Datei. Standard: {{ pypi_home_dir }}.'
  • enable_anonymous_auth: 'Ein boolescher Wert, der bestimmt, ob die Benutzername/Passwort-Authentifizierung für Uploads zum pypi-server verwendet werden soll. Hinweis: Dies zu aktivieren wird nicht empfohlen, da es jedem erlaubt, Artefakte nach pypi hochzuladen. Standard: false.'
  • htaccess_username: 'Benutzername, der bei der Authentifizierung zum pypi-server verwendet wird (nur verwendet wenn enable_anonymous_auth auf false gesetzt ist). Standard: test.'
  • htaccess_password: 'Passwort, das bei der Authentifizierung zum pypi-server verwendet wird (nur verwendet wenn enable_anonymous_auth auf false gesetzt ist). Standard: test.'

Abhängigkeiten

Keine

Beispiel Playbook

Ein Beispiel, wie Sie Ihre Rolle verwenden können (zum Beispiel mit Übergabe von Variablen als Parameter) ist immer hilfreich für die Benutzer:

    - hosts: servers
      roles:
         - role: comcast.pypi

Testen

Die folgenden Tools sind erforderlich, um diese Rolle zu testen.

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

Testumgebung erstellen:

virtualenv --python=$(which python2.7) .venv
source .venv/bin/activate
pip install -r test-reqs.txt

Tests ausführen:

molecule test

Tests gegen eine bestimmte Plattform:

molecule test --platform centos/7
molecule test --platform debian/jessie64

Uploads testen:

Jedes Python-Paket kann verwendet werden, um den Upload zu testen. In diesem Fall wird BeautifulSoup4 als Beispiel verwendet.

  1. Lokalen pypi-Server starten:
molecule converge

Dies sollte den pypi-server unter http://localhost:8080 mit 0 verfügbaren Paketen laufen lassen.

  1. Ein Python-Quell-Repository klonen:
git clone https://github.com/getanewsletter/BeautifulSoup4.git
  1. Erstellen/modifizieren Sie die .pypirc-Datei in Ihrem Home-Verzeichnis und fügen Sie die htaccess_username und htaccess_password Anmeldedaten hinzu, falls Sie eine Authentifizierung verwenden.

Die .pypirc-Datei sollte ungefähr so aussehen:

Hinweis: Wenn Sie die Standardwerte des Playbooks für den htaccess_username und htaccess_password verwenden, sollten die Anmeldedaten mit denen in der playbook.yml übereinstimmen.

[distutils]
index-servers =
  local

[local]
repository: http://localhost:8080
username: <htaccess_username>
password: <htaccess_password>
  1. Python-Paket hochladen:

Führen Sie den folgenden Befehl im Python-Quellcode-Repository aus.

python setup.py sdist upload -r local

Dies sollte das Python-Paket an den im .pypirc-Datei angegebenen pypi-server mit den im [local] Block angegebenen Anmeldedaten hochladen.

Download testen:

Um Pakete vom lokalen pypi-server herunterzuladen, kann der folgende Befehl nach einem erfolgreichen Upload eines Pakets ausgeführt werden. Nach dem Upload-Beispiel kann beautifulsoup4 wie folgt heruntergeladen werden:

Ändern Sie die version_number im Beispiel unten, um mit der Version des Paket zu übereinstimmen, die hochgeladen wurde.

pip install --extra-index-url http://localhost:8080/ beautifulsoup4==<version_number>

Lizenz

Apache 2.0

Autoreninformationen

Über das Projekt

A role to run a minimal pypi-server

Installieren
ansible-galaxy install Comcast.pypi
GitHub Repository
Lizenz
apache-2.0
Downloads
15.6k
Besitzer
Comcast brings together the best in media and technology to create the world's best entertainment and online experiences