Page MenuHomePhabricator

Write a diskimage-builder element to run puppet
Closed, ResolvedPublic


Following discussions with @zeljkofilipin and @dduvall, we need a diskimage-builder element to execute puppet when creating the image.

@hashar wrote a thin wrapper with . One can fetch that patch on integration-dev.integration.eqiad.wmflabs which has all the required packages.

Then install diskimage 1.47 (and potentially other requirements):

pip install --user -rdib/requirements.txt
export PATH=~/local/bin/

diskimage-builder uses debootstrap to creates a base Debian jessie system. That is rather long but cacheable using the DIB_DEBIAN_USE_DEBOOTSTRAP_CACHE env variable. So to build an image:

cd dib

OpenStack has a puppet element already . You can clone it and then point diskimage-builder to it using the ELEMENTS_PATH variable.

git clone

# hack to insert the 'puppet' element
ELEMENTS_PATH=project-config/nodepool/elements DIB_DEBIAN_USE_DEBOOTSTRAP_CACHE=1 ./

It is all hardcoded for OpenStack usage though. I have poked upstream to have the element upstreamed to diskimage-builder though I haven't insisted.

We probably want our own element in integration/config.git /dib/ based on . Maybe name it wikimedia-puppet.

Event Timeline

hashar raised the priority of this task from to Needs Triage.
hashar updated the task description. (Show Details)
hashar added subscribers: gerritbot, dduvall, zeljkofilipin and 2 others.
hashar triaged this task as High priority.
hashar moved this task from Backlog to In-progress on the Continuous-Integration-Scaling board.
hashar set Security to None.

Change 234975 had a related patch set uploaded (by Hashar):
(WIP) dib: wikimedia-puppet element (WIP)

I have a working dib element to run puppet out of operations/puppet.git though it doesn't install much it at least brings us the apt configuration and basic python packages from contint::packages::python

Change 234975 merged by jenkins-bot:
nodepool: wikimedia-puppet element for dib

Bulk of the job has been completed. It currently just apply contint::packages::python.