Comcast.pypi

comcast.pypi

Rola do provisionowania minimalnego serwera pypi

Zmienne Roli

  • pypi_server_version: 'Wersja pakietu pypiserver do zainstalowania i użycia. Domyślnie: 1.2.0.'
  • pypi_user: 'Użytkownik, który uruchamia usługę pypi-server. Zostanie utworzony, jeśli nie istnieje. Domyślnie: pypi.'
  • pypi_group: 'Grupa, do której należy użytkownik pypi_user. Domyślnie: pypi.'
  • pypi_server_port: 'Port, na którym będzie nasłuchiwał pypi-server. Domyślnie: 7974.'
  • pypi_home_dir: 'Katalog domowy użytkownika pypi. Domyślnie: /srv/pypi.'
  • pypi_work_dir: 'Katalog roboczy pypi-server. Domyślnie: {{ pypi_home_dir }}.'
  • pypi_packages_directory: 'Katalog, który będzie przechowywał przesyłane pakiety Pythona. Domyślnie: {{ pypi_work_dir }}/packages.'
  • pypi_log_file: 'Plik logu, do którego będzie pisał pypi-server. Domyślnie: {{ pypi_work_dir }}/pypi-server.log.'
  • pypi_init_script_dir: 'Katalog, w którym będzie przechowywany skrypt inicjujący pypi-server (tylko sys-v). Domyślnie: /etc/init.d.'
  • pypi_server_pid_file: 'Lokalizacja pliku .pid. Domyślnie: {{ pypi_work_dir }}/pypi.pid.'
  • pypi_requirements_template: 'Szablon zawierający wymagane pakiety dla pypi-server. Domyślnie: templates/pypi-server-requirements.txt.j2.'
  • pypi_server_authenticate: Lista działań oddzielona przecinkami, aby uwierzytelnić klienta, np.: download,list,update. Domyślnie: update.
  • htaccess_dir: 'Lokalizacja wygenerowanego pliku .htaccess. Domyślnie: {{ pypi_home_dir }}.'
  • enable_anonymous_auth: 'Wartość logiczna, która określa, czy używać uwierzytelniania za pomocą nazwy użytkownika/hasła do przesyłania na pypi-server. Uwaga: Włączenie tego nie jest zalecane, ponieważ pozwala każdemu na przesyłanie artefaktów do pypi. Domyślnie: false.'
  • htaccess_username: 'Nazwa użytkownika do użycia przy uwierzytelnianiu do pypi-server (używana tylko wtedy, gdy enable_anonymous_auth jest false). Domyślnie: test.'
  • htaccess_password: 'Hasło do użycia przy uwierzytelnianiu do pypi-server (używane tylko wtedy, gdy enable_anonymous_auth jest false). Domyślnie: test.'

Zależności

Brak

Przykład Playbooka

Zaleca się dodanie przykładu, jak użyć roli (na przykład z przekazanymi zmiennymi jako parametry):

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

Testowanie

Do przetestowania tej roli wymagane są następujące narzędzia.

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

Tworzenie środowiska testowego:

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

Uruchom testy:

molecule test

Testuj na konkretnej platformie:

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

Testuj przesyłanie:

Każdy pakiet Pythona może być użyty do testowania przesyłania. W tym przypadku użyto BeautifulSoup4 jako przykład.

  1. Uruchom lokalny serwer pypi
molecule converge

To powinno zostawić pypi-server działający na http://localhost:8080 bez przechowywanych pakietów.

  1. Sklonuj repozytorium źródłowe Pythona
git clone https://github.com/getanewsletter/BeautifulSoup4.git
  1. Utwórz/zmodyfikuj plik .pypirc w swoim katalogu domowym i dodaj dane logowania htaccess_username i htaccess_password, jeśli używasz uwierzytelniania.

Plik .pypirc powinien wyglądać podobnie do tego:

Uwaga: Jeśli używasz domyślnych wartości playbooka dla htaccess_username i htaccess_password, dane logowania powinny zgadzać się z tym, co jest w pliku playbook.yml

[distutils]
index-servers =
  local

[local]
repository: http://localhost:8080
username: <htaccess_username>
password: <htaccess_password>
  1. Prześlij pakiet Pythona

Z katalogu źródłowego Pythona wykonaj następujące polecenie.

python setup.py sdist upload -r local

To powinno przesłać pakiet Pythona do pypi-server określonego w pliku .pypirc za pomocą danych logowania określonych w bloku [local].

Testuj pobieranie:

Aby przetestować pobieranie pakietów z lokalnego pypi-server, można wykonać poniższe polecenie po pomyślnym przesłaniu pakietu. Po przesłaniu przykładu, beautifulsoup4 można pobrać w następujący sposób:

Zmień version_number w poniższym przykładzie, aby pasował do wersji przesłanego pakietu.

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

Licencja

Apache 2.0

Informacje o autorze

O projekcie

A role to run a minimal pypi-server

Zainstaluj
ansible-galaxy install Comcast.pypi
Licencja
apache-2.0
Pobrania
15.6k
Właściciel
Comcast brings together the best in media and technology to create the world's best entertainment and online experiences