OpenStack-Ansible repo_build

Ansible role that builds a repository of Git repositories, Python wheels, and virtualenvs.

Default variables

# Additional options passed to pip during package installation.
# A common use is with the '--cert' argument for internally signed
# SSL certificates.
pip_install_options: ""

# Set the package install state for distribution packages
# Options are 'present' and 'latest'
repo_build_package_state: "latest"

# Use OpenStack's upper-constraints
repo_build_use_upper_constraints: true

# A list of overrides to apply to OpenStack's upper constraints
# Use these with caution as you're implementing a change to the
# package set which OpenStack has tested its releases with!
repo_build_upper_constraints_overrides: []

repo_build_service_user_name: "nginx"
repo_build_service_group_name: "www-data"
repo_build_base_path: "/var/www/repo"

repo_build_global_links_path: "/var/www/repo/links"
repo_build_release_path: "/var/www/repo/os-releases"
repo_build_dir: "/tmp/openstack-builder"
repo_build_output: "/tmp/openstack-wheel-output"
repo_build_git_dir: "/var/www/repo/openstackgit"
repo_build_pool_dir: "/var/www/repo/pools"

repo_build_release_tag: "untagged"

# Toggle whether git repositories should be cloned selectively or not
repo_build_git_selective: "{{ true if (repo_build_wheel_selective | bool and repo_build_venv_selective | bool) else false }}"

# Toggle whether wheels should be built selectively or not
repo_build_wheel_selective: "{{ true if repo_build_venv_selective | bool else false }}"

# Toggle whether venvs should be built selectively or not
repo_build_venv_selective: yes

# Optionally set this to change the default index from pypi to an alternative
#repo_build_pip_default_index: "https://pypi.python.org/simple"

# Optionally set this to a list of extra indexes to be used when building wheels
#repo_build_pip_extra_indexes:
#  - "https://pypi.python.org/simple"

# Optionally set this to a list of packages which must always have the wheel
# compiled from source. This will ensure that a pre-compiled wheel is not
# downloaded from any of the indexes.
#repo_build_pip_no_binary:
#  - libvirt-python

# TODO(odyssey4me): Deprecate this var for Mitaka & mark for removal
#                   in Newton.
# repo_build_pip_extra_index: "https://pypi.python.org/simple"

# Toggle the use of Ubuntu Cloud Archive
repo_build_uca_enable: True
# Ubuntu Cloud Archive mirror URL
uca_apt_repo_url: "http://ubuntu-cloud.archive.canonical.com/ubuntu"

repo_build_timeout: 120
repo_build_concurrency: "{{ (((ansible_processor_vcpus|default(1)) | int) > 4) | ternary(8, 4) }}"
repo_build_venv_build_dir: "/tmp/openstack-venv-builder"
repo_build_venv_dir: "/var/www/repo/venvs"
repo_build_venv_pip_install_options: >
  --timeout 120
  --find-links {{ repo_build_release_path }}/{{ repo_build_release_tag }}
  --no-index
  --log /var/log/repo/repo_venv_builder.log
repo_build_venv_command_options: >
  {{ virtualenv_bin }}
  --always-copy
  --extra-search-dir {{ repo_build_release_path }}/{{ repo_build_release_tag }}
  --never-download
repo_pip_packages:
  - requests
  - urllib3
  - wheel
  - virtualenv
  - virtualenv-tools
  - cython

repo_build_store_pip_sources: false

Required variables

None.

Example playbook

- name: Set up repo builds
  hosts: repo_all
  user: root
  roles:
    - { role: "repo_build", tags: [ "repo-build" ] }

Table Of Contents

Project Source

This Page