Comcast.pypi

comcast.pypi

一个用于配置最小 pypi-server 的角色

角色变量

  • pypi_server_version:'要安装和使用的 pypiserver wheel 的版本。默认值: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:'默认值:{{ 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

这将使 pypi-server 在 http://localhost:8080 上运行,并且没有存储任何包。

  1. 克隆一个 Python 源代码库
git clone https://github.com/getanewsletter/BeautifulSoup4.git
  1. 在你的主目录中创建/修改 .pypirc 文件,并在使用认证时添加 htaccess_usernamehtaccess_password 凭据。

.pypirc 文件应该类似于:

注意:如果使用剧本默认的 htaccess_username 和 htaccess_password,则凭据应与 playbook.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

这应该将 Python 包上传到 .pypirc 文件中指定的 pypi-server,使用 [local] 块中指定的凭据。

测试下载:

在成功上传包后,可以执行以下命令以测试从本地 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