Introducing a Puppet Module for Setting up Kallithea

Robert Rauch robert.rauch at gns-systems.de
Wed Aug 26 13:11:08 UTC 2015



Am 26.08.2015 um 14:03 schrieb Thomas De Schampheleire:
> On Wed, Aug 26, 2015 at 1:56 PM, Mads Kiilerich <mads at kiilerich.com> wrote:
>> On 08/26/2015 01:16 PM, Robert Rauch wrote:
>>>
>>> Dear all,
>>>
>>> During the last months, I have been working on a Puppet Module for
>>> setting up and manging Kallithea on various Platforms (see
>>> https://github.com/rauchrob/puppet-kallithea). What this module
>>> basically does is
>>>
>>> 1. setup Python/virtualenv (using another Puppet module),
>>> 2. create a virtualenv for Kallithea,
>>> 3. initialize and manage the Kallithea ini-configuration file,
>>> 4. initialize Kallitheas database and
>>> 5. setup a `kallithea` system service, enable and start it.
>>>
>>> Since this is currently the only Kallithea module on PuppetForge, it
>>> seems natural to bundle any further efforts in this direction,
>>> eventually making this module 'officially supported' by the Kallithea
>>> community in the near future. This would probably help Kallithea by
>>>
>>> * simplifying the whole installation Process and
>>> * making Kallithea visible to a bigger audience.
>>>
>>> Please have a look at it, if you like. Any Feedback is appreciated.
>>
>>
>> That sounds great - thanks!
>>
>> For us who don't know puppet, can you give a very short
>> completely-for-dummies description of exactly what to install, what to run
>> and where to look? Perhaps something like
>> http://docs.kallithea-scm.org/en/latest/contributing.html#getting-started .
>>
>> Is this something you ultimately would like to see upstreamed or should the
>> docs mention it? Either way, contributions would be appreciated ;-)
>>
> 
> See also somewhat related issue :
> https://bitbucket.org/conservancy/kallithea/issues/142/doc-its-possible-to-deploy-kallithea-using
> 
> In the past, people also suggested Docker or Vagrant.
> 
> Do you have a good view on how Puppet compares to PEX to Docker to Vagrant?

Well, whereas Docker and Vagrant basically allow you to create Systems,
the scope of Puppet is managing an already existing System. Although you
could provide Docker or Vagrant images with a ready-to-use
Kallithea-Instance, Puppet Modules have many advantages:

* they are small (compared to whole system images)
* they can be applied to existing Systems
* if the modules are well-crafted, you really don't have to worry
  whether you are running on a Debian, CentOS or Ubuntu
* they allow specifying parameters, which affects what the module does,
  without having the end user know *how* the module does it. For
  example, the Kallithea Module has parameters for specifying some of
  the variables during database initialization (like the admin email,
  initial passwords, path to repositories etc.) and provides ways to do
  arbitrary manipulations on Kallitheas ini-configuration file.

Unfortunately I have never heard of PEX before. According to what I have
just read, its scope is providing executables for Python apps.

However, Puppet is really about managing a system or a big number of
systems as a whole. Assume you are running a highly available Kallithea
Service spread over a cluster of worker nodes. With Puppet, I could
dynamically add or remove cluster nodes without worrying about
synchronizing the Kallithea configuration, updating the node balancers
config, firewall rules etc.

Robert


More information about the kallithea-general mailing list