Pulp 3 Ansible Installer
A collection of roles to install or upgrade Pulp 3. Can also reconfigure or add plugins to an existing install.
The Pulp 3 Ansible Installer consists of a collection of roles. Each role installs and configures a component of Pulp. The roles are not currently available on Ansible Galaxy; to run the Pulp 3 Ansible installer, the pulp_installer git repository must be cloned or downloaded.
This version of the installer, 3.4.0, installs Pulp 3.4.0 specifically.
If run against an older version of Pulp 3, it will upgrade it to 3.4.0.
The control node must have Python 3 and Ansible (>= 2.8) installed.
The managed node
must be one of these currently supported operating systems:
* CentOS 7
* Debian Buster (needs
allow_world_readable_tmpfiles = True in ansible.cfg)
* Fedora 30 or later
Ansibles Python interpreter must have the package installed:
* firewall (if firewalld should be configured; you can disable that with
Each role documents all the variables that it uses in its own README. Some variables are
used by multiple roles. In that case, they are be documented in their primary role and mentioned in
shared_variables section the other roles.
Most variables have sane defaults but a few are required. See
the minimal set of required variables.
These roles can be used against any managed node and are highly configurable. Knowledge of ansible basics will be helpful, but even if you are new to Ansible, this section will get you started, or you can try the Vagrant installations to bypass the Ansible boilerplate.
First, you will need to configure ssh between your control node and your managed node. When you can ssh into the managed node without a password, you are ready to move to the next step.
Next, add the managed node's hostname or ip address to
It may be helpful to ensure that Ansible can communicate with the managed node.
ansible all -m ping -u <managed_node_username>
Using the example playbook
The playbook has external requirements which should be installed from ansible-galaxy.
ansible-galaxy install -r requirements.yml
You should now be able to run the example playbook.
Some of the roles used in the playbook use root privalages on the managed node, so when prompted, you will need to provide the password for the managed node user.
ansible-playbook playbooks/example-use/playbook.yml -u <managed_node_username> --ask-become-pass
To configure a custom install, you will need to set configuration variables. In the simplest case, they can be set in the playbook. See the ansible docs for more flexible idiomatic alternatives.
The tests can be run as they are on travis with tox, or they can run with various options using molecule directly.
Requirements: Install Docker, and add yourself to the group that is authorized to administer containers, and log out and back in to make the permissions change take effect. The authorized group is typically the "docker" group:
gpasswd --add "$(whoami)" docker
NOTE: Docker containers can differ from bare-metal or VM OS installs. They can have different packages installed, they can run different kernels, and so on.
- Install tox. This can be done through the system package manager or into a virtualenv:
python3 -m venv ~/.venvs/pulp_installer pip install --upgrade pip pip install tox
tox. If you only have a subset of the supported Python interpreters available, specify which environments to exercise:
tox -e py36
It is recommended that you do so with
pip in a virtualenv.
2. Run molecule commands.
Test all scenarios on all hosts.
molecule test --all
Test a specific scenario.
molecule test --scenario-name source
Use debug for increased verbosity.
molecule --debug test --all
Create and provision, but don't run tests or destroy.
molecule converge --all
pulp_installer is equipped with the following roles:
- pulp: installs Pulp 3 from PyPi or source and provides basic config.
- pulp_content: install, configure, and set the state of pulp content app.
- pulp_database: optionally install a database, then configure for Pulp.
- pulp_redis: install and start Redis, and install RQ in the Pulp virtualenv.
- pulp_resource_manager: install, configure, and set the state of the pulp resouce manager.
- pulp_webserver: install, configure, start, and enable a web server.
- pulp_workers: install, configure, and set the state of pulp workers.
- pulp_devel: installs useful tools and adds some config files for a Pulp 3 development environment.