Refactor #2789

Make a clearer separation between Ansible and Vagrant

Added by over 4 years ago. Updated over 2 years ago.

Start date:
Due date:
% Done:


Estimated time:
Platform Release:
Sprint Candidate:
Dev Environment, Pulp 2


These changes will make the development environment easier to work with, especially for non-Vagrant users.

  • Rather than setting playbook variables in the Vagrantfile, Vagrant users should modify playbooks directly.
  • Add an example playbook for Ansible users
  • roles should be more granular
  • remove unnecessary/dead code and yml
  • default to a minimal install
  • Variables should have clear definitions and defaults

Associated revisions

Revision cd4abc09 View on GitHub
Added by over 4 years ago

Separate roles, flatten variables


#1 Updated by bmbouter over 4 years ago

I want to make a case to have Vagrant stop installing plugins or even knowing about them. Vagrant installing plugins creates several problems:

1) A contributor rarely needs more than 1 plugin yet they have to wait for N plugins to install at vagrant up time. This makes Vagrant up take significantly longer without a good reason. The core devs have many plugins checked out so core devs are the most affected.

2) The maintenance of maintaining Ansible machinery to perform plugin installation takes effort which doesn't make sense to me considering you can install any plugin you want with 1 or dnf command. Also it's more flexible to install it manually because there are multiple ways to install a plugin.

3) Plugins that don't have 'Vagrant support' need additional work from a plugin author which we could avoid entirely. This would let the plugin development process have less friction and steps. For example, pulp_deb recently had to "add vagrant support". Plugin authors should not have to do that. All plugins should just be manually installed after Vagrant is done.

4) Currently Vagrant auto-detects the checkouts which is great for core devs, but for a new contributor who didn't check out the plugins correctly their Vagrant box comes out broken. We see this problem on IRC now and then, and it could be avoided with this adjustment also. Vagrant would not run migrations anymore and would not start Pulp, so when the new contributor's checkouts aren't right their box core would finish installing and everything would be fine even though their checkouts are not correct. They would still need to install the plugin which is their next step in all cases anyway.

I'm hoping that for Pulp3 we can have the Vagrant env only install core and have any contributor manually install the plugin they want. Specifically the manual parts would be three commands:

1) Install with pip,, or rpm
2) Run migraitons
3) start services with `pstart`

Also the installer for Core would no longer:
1) run migrations
2) start pulp services (only the message bus and mongodb would be auto-started)

#2 Updated by over 4 years ago

  • Status changed from ASSIGNED to MODIFIED

#3 Updated by bmbouter over 4 years ago

  • Tags Dev Environment added

#4 Updated by bmbouter over 4 years ago

  • Subject changed from [dev env] Make a clearer separation between Ansible and Vagrant to Make a clearer separation between Ansible and Vagrant

We have a tag for dev environment so I'm removing from the title.

#5 Updated by pcreech about 4 years ago

  • Platform Release set to 2.14.0

#6 Updated by pcreech about 4 years ago

  • Status changed from MODIFIED to 5

#7 Updated by pcreech about 4 years ago

  • Status changed from 5 to CLOSED - CURRENTRELEASE

#8 Updated by bmbouter over 2 years ago

  • Tags Pulp 2 added

Please register to edit this issue

Also available in: Atom PDF