www-infrastructure-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sam Ruby <ru...@intertwingly.net>
Subject Re: Planet at Apache
Date Wed, 13 Jul 2016 15:55:32 GMT
On Wed, Jul 13, 2016 at 10:10 AM, Nick Kew <niq@apache.org> wrote:
> Sam:
>
>> The general way in which changes are made to project VMs is that pull
>> requests are submitted against infrastructure-puppet and reviewed and
>> merged by infrastructure staff:
>
> I see.
>
>> If you are so inclined, I also am working on a tool that will help you
>> deploy a VM (such as comdev-vm) on a machine you host.  This enables
>> you to test out your changes:
>
> OK, I had imagined "apt-get install planet-venus" created
> a local playpen for running it, and that a source install
> from planetplanet did the same for hacking it.  How much
> difference does the VM environment affect that?

Wrong question :-)

Puppet in a nutshell: you describe the state you want the machine in
question to be in, and puppet makes it happen.

For example, you want planet-venus installed as a package?  Here's
what you would type:

  package { 'planet-venus':
     ensure => installed
  }

Or suppose you wanted to check out the source instead:

  vcsrepo { '/home/applanet/git/venus':
    ensure   => latest,
    provider => git,
    source   => 'https://github.com/rubys/venus.git',
  }

Other things you will want to do (create an applanet user, create the
'/home/applanet/git' directory, add cronjobs, configuring a vhost with
apache httpd) are done similarly.  If there are ordering dependencies,
you can express them too using puppet.

Here's the quick reference for puppet:

https://docs.puppet.com/puppet/latest/reference/type.html

Things like vcsrepro are provided by third party modules.

>> I'm quite willing to set up planet for others to maintain, though even
>> better would be helping teach others how to set things up for
>> themselves.
>
> Thanks.  That sounds like an offer I can't possibly refuse!
> Two learning curves (Planet and ASFInfra) for the price of one.

It is more than two, but on the plus side you have people who can
answer your questions and point you in the right direction.

> I shall be sure to check out all your links within this week.

I'd recommend starting with
https://github.com/rubys/infrastructure-playpen.  Setting up a new
virtual machine for the first time will take about 20 minutes.  Once
done, you can "vagrant ssh" into that machine and look around.

Next, you are going to want to create an 'applanet' module in
https://github.com/apache/infrastructure-puppet/tree/deployment/modules.
Your puppet code will go into
infrastructure-puppet/modules/applanet/manifests/init.pp.

Finally, you will need to add the name of your module (applanet) to
infrastructure-puppet/data/nodes/comdev-vm.apache.org.yaml.  This goes
in the list of classes at the top of the file.  If you keep your
module self contained, moving planet to a different vm would be as
simple as adding that one line to the desired VM.  More likely,
however, is that your Apache vhost definition will go into the
comdev-vm.apache.org.yaml file, and those lines would also have to be
moved too.

Applying your changes will take about two minutes.  This is mostly a
function of the complexity of the ASF standard configuration.  I've
puppetized my development machines and server, and applying changes
takes about 20 seconds for my setup.

> --
> Nick Kew

- Sam Ruby

Mime
View raw message