Comcast.pypi

comcast.pypi

最小限のpypi-serverをプロビジョニングするためのロール

ロール変数

  • pypi_server_version: 'インストールして使用するpypiserverホイールのバージョン。デフォルト: 1.2.0。'
  • pypi_user: 'pypi-serverサービスを実行するユーザー。このユーザーは存在しない場合に作成されます。デフォルト: pypi。'
  • pypi_group: 'pypi_userが所属するグループ。デフォルト: pypi。'
  • pypi_server_port: 'pypi-serverがリッスンするポート。デフォルト: 7974。'
  • pypi_home_dir: 'pypiユーザーのホームディレクトリ。デフォルト: /srv/pypi。'
  • pypi_work_dir: 'pypi-serverの作業ディレクトリ。デフォルト: {{ pypi_home_dir }}。'
  • pypi_packages_directory: 'アップロードされたPythonパッケージを保存するディレクトリ。デフォルト: {{ pypi_work_dir }}/packages。'
  • pypi_log_file: 'pypi-serverが書き込むログファイル。デフォルト: {{ pypi_work_dir }}/pypi-server.log。'
  • pypi_init_script_dir: 'pypi-serverの初期化スクリプトを保存するディレクトリ(sys-vのみ)。デフォルト: /etc/init.d。'
  • pypi_server_pid_file: 'プロセスIDの場所。デフォルト: {{ pypi_work_dir }}/pypi.pid。'
  • pypi_requirements_template: 'pypi-serverに必要なパッケージのリストのテンプレート。デフォルト: templates/pypi-server-requirements.txt.j2。'
  • pypi_server_authenticate: クライアントを認証するためのアクションのカンマ区切りリスト、例: download,list,update。デフォルト: update
  • htaccess_dir: '生成された.htaccessファイルの場所。デフォルト: {{ pypi_home_dir }}。'
  • enable_anonymous_auth: 'pypi-serverへのアップロードにユーザー名/パスワード認証を使用するかどうかを決定するブール値。注意: これを有効にすると、誰でもpypiにアーティファクトをアップロードできるため、お勧めしません。デフォルト: false。'
  • htaccess_username: 'pypi-serverに認証する際に使用するユーザー名(enable_anonymous_authがfalseのときのみ使用)。デフォルト: test。'
  • htaccess_password: 'pypi-serverに認証する際に使用するパスワード(enable_anonymous_authがfalseのときのみ使用)。デフォルト: test。'

依存関係

なし

例プレイブック

変数をパラメーターとして渡す方法の例もあります:

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

テスト

このロールをテストするために必要なツールは以下です。

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

テスト環境の作成:

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

テストの実行:

molecule test

特定のプラットフォームでのテスト:

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

テストアップロード:

任意のPythonパッケージを使用してアップロードをテストできます。この場合、BeautifulSoup4が例として使用されます。

  1. ローカルpypiサーバーを立ち上げる
molecule converge

これにより、http://localhost:8080でpypi-serverが実行され、パッケージは0個になります。

  1. Pythonソースリポジトリをクローンする
git clone https://github.com/getanewsletter/BeautifulSoup4.git
  1. ホームディレクトリに.pypircファイルを作成または変更し、認証を使用している場合はhtaccess_usernamehtaccess_passwordを追加します。

.pypircファイルは以下のようになります:

注: プレイブックのデフォルトのhtaccess_usernameおよびhtaccess_passwordを使用する場合は、認証情報がプレイブック.ymlの内容と一致している必要があります。

[distutils]
index-servers =
  local

[local]
repository: http://localhost:8080
username: <htaccess_username>
password: <htaccess_password>
  1. Pythonパッケージをアップロードする

Pythonのソースコードリポジトリから以下のコマンドを実行します。

python setup.py sdist upload -r local

これにより、.pypircファイルに指定されたpypi-serverに、[local]ブロックで指定された認証情報を使用してPythonパッケージがアップロードされます。

ダウンロードのテスト:

ローカルpypi-serverからパッケージをダウンロードするテストは、パッケージを正常にアップロードした後に以下のコマンドを実行すると行えます。アップロード例に従い、beautifulsoup4を以下のようにダウンロードできます:

アップロードされたパッケージのバージョンに合わせてversion_numberを変更してください。

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

ライセンス

Apache 2.0

著者情報

プロジェクトについて

A role to run a minimal pypi-server

インストール
ansible-galaxy install Comcast.pypi
ライセンス
apache-2.0
ダウンロード
15.6k
所有者
Comcast brings together the best in media and technology to create the world's best entertainment and online experiences