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 wennenable_anonymous_auth
auf false gesetzt ist). Standard:test
.'htaccess_password
: 'Passwort, das bei der Authentifizierung zum pypi-server verwendet wird (nur verwendet wennenable_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.
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.
- Lokalen pypi-Server starten:
molecule converge
Dies sollte den pypi-server unter http://localhost:8080
mit 0
verfügbaren Paketen laufen lassen.
- Ein Python-Quell-Repository klonen:
git clone https://github.com/getanewsletter/BeautifulSoup4.git
- Erstellen/modifizieren Sie die
.pypirc
-Datei in Ihrem Home-Verzeichnis und fügen Sie diehtaccess_username
undhtaccess_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>
- 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
Autoreninformationen
ansible-galaxy install Comcast.pypi