/pallet

Automates controlling and provisioning cloud server instances. DevOps for the JVM.

Primary LanguageClojure

Pallet is used to provision and maintain servers on cloud and virtual machine infrastructure, and aims to solve the problem of providing a consistently configured running image across a range of clouds. It is designed for use from the Clojure REPL, from clojure code, and from the command line.

  • reuse configuration in development, testing and production.
  • store all your configuration in a source code management system (eg. git), including role assignments.
  • configuration is re-used by compostion; just create new functions that call existing crates with new arguments. No copy and modify required.
  • enable use of configuration crates (recipes) from versioned jar files.

It uses jclouds to gain portable access to different cloud providers.

Documentation is available.

Support

On the mailing list, or #pallet on freenode irc.

Usage

The main documentation is on the PalletOps site.

There is a (somewhat dated) introductory screencast, showing a basic node configuration, and starting and stopping a node.

Quickstart

See the basic usage example in the pallet-examples basic project. Other examples show usage for infrastructure automation, application deployment and cloudops.

For general help getting started with Clojure, see this guide.

Installation

Pallet is distributed as a jar, and is available in the sonatype repository.

Installation is with maven or your favourite maven repository aware build tool.

lein/cake project.clj

:dependencies [[org.cloudhoist/pallet "0.6.7"]
               [org.cloudhoist/pallet-crates-all "0.5.0"]]
:repositories {"sonatype"
               "http://oss.sonatype.org/content/repositories/releases"
               "sonatype-snapshots"
               "http://oss.sonatype.org/content/repositories/snapshots"}

maven pom.xml

<dependencies>
  <dependency>
    <groupId>org.cloudhoist</groupId>
    <artifactId>pallet</artifactId>
    <version>0.6.7</version>
  </dependency>
  <dependency>
    <groupId>org.cloudhoist</groupId>
    <artifactId>pallet-crates-all</artifactId>
    <version>0.5.0</version>
  </dependency>
<dependencies>

<repositories>
  <repository>
    <id>sonatype</id>
    <url>http://oss.sonatype.org/content/repositories/releases</url>
  </repository>
  <repository>
    <id>sonatype-snapshots</id>
    <url>http://oss.sonatype.org/content/repositories/snapshots</url>
  </repository>
</repositories>

See also

chef, and puppet are other infrastructure automation tools.

License

Licensed under EPL

Contributors

Copyright 2010, 2011, 2012 Hugo Duncan.