If you have a basic knowledge of Ansible, you can use the pulp_installer
to automate the installation of Pulp 3. The pulp_installer
is a collection of Ansible roles hosted on Ansible Galaxy. Each Ansible role installs and configures a component of Pulp. If you run the pulp_installer
on an existing Pulp 3 deployment, it will upgrade it to the latest version. You can also use the pulp_installer
to add or reconfigure plugins for an existing Pulp installation.
Note that to install Pulp 3 using pulp_installer
’s collection of Ansible roles hosted on Ansible Galaxy, you must use Ansible 2.9 or higher.
For information about system requirements, recommended workflows and instructions on how to install Pulp 3 using the Ansible pulp_installer
, see the Pulp installer documentation.
Pulp’s Mike did a demo of running the installer at PulpCon 2021
Quickstart Guide
For a more comprehensive overview of how the Ansible Installer works, as well as a description of workflows, see the the Pulp installer documentation.
Installation
Enter the following command to install everything you need from Ansible Galaxy:
ansible-galaxy collection install pulp.pulp_installer
Using the example playbook
Some of the roles used in the playbook use root privileges on the managed node, so when prompted, you must provide the password for the managed node user.
ansible-playbook playbooks/example-use/playbook.yml -u <managed_node_username> --ask-become-pass -i <managed_node_hostname>,
To configure a custom installation, you must set configuration variables. In the simplest case, they can be set in the playbook. See the Ansible docs for more flexible idiomatic alternatives.
Example Playbook for Installing Plugins
The following example is an Ansible playbook that you can use for installing pulp_container
and pulp_rpm
.
You can learn more about the variables on the roles section
1 - Install the pulp_installer
collection:
ansible-galaxy collection install pulp.pulp_installer
2 - Install the geerlingguy.postgresql
role:
ansible-galaxy install geerlingguy.postgresql
3 - Write the following playbook:
vim install.yml
---
- hosts: all
force_handlers: True
vars:
pulp_settings:
secret_key: << YOUR SECRET HERE >>
content_origin: "http://"
pulp_default_admin_password: << YOUR PASSWORD HERE >>
pulp_install_plugins:
# galaxy-ng: {}
# pulp-2to3-migration: {}
# pulp-ansible: {}
# pulp-certguard: {}
pulp-container: {}
# pulp-cookbook: {}
# pulp-deb: {}
# pulp-file: {}
# pulp-gem: {}
# pulp-maven: {}
# pulp-npm: {}
# pulp-python: {}
pulp-rpm: {}
roles:
- pulp.pulp_installer.pulp_all_services
environment:
DJANGO_SETTINGS_MODULE: pulpcore.app.settings
4 - Run the playbook:
ansible-playbook install.yml -u <managed_node_username> --ask-become-pass