Story #3716
Updated by bmbouter over 6 years ago
h3. Motivation
1. "Installation of Pulp":https://docs.pulpproject.org/en/3.0/nightly/installation/instructions.html#pypi-installation is complicated and could be made much easier with an Ansible installer.
2. Clustered based installs are also very complicated. Typically users want to install some mixture of Pulp services on different hosts. Doing this consistently is time consuming and error prone. Ansible could install in clusered environments very well.
h3. Usage
The installer will live as 1 role named 'pulp3' and published via the 'pulp' user on Ansible Galaxy. That will cause it to be available "here":https://galaxy.ansible.com/pulp/pulp3/
h3. Features
* Installs any mixture of webserver, workers, resource manager, streamer+squid, Redis, or Postgres on one or more host in the inventory
* Installs systemd units for services installed
* Allows a choice of Nginx or Apache (defaults to nginx)
* Allows for custom settings.py file provided by the user
* Provides sparse settings.py by default
* Generic plugin installation as specified by Ansible variables. Any plugin that only requires a pip install command and the migrations run will work.
* Idempotent
h3. Assumptions
This assumes that the installing the plugin will bring all of it's necessary dependencies including pulpcore.plugin and pulpcore itself. Specifically plugins are recommended to depend on pulpcore.plugin. That would bring in dependencies as follows:
Using Ansible variables, the Ansible installer will pip install <code>pulp_ansible</code> for example which will cause the installation of these packages: pulp_ansible ---> pulpcore.plugin ----> pulpcore ----> pulpcore.common