Aster

Aster is a programming language that's designed to make configuration management more fun.

Example

server web
  default-instance-vars
    var username root
    var ssh-port 22

  configure
    run upgrade-ubuntu.sh
    exec sudo reboot
    exec sudo apt-get install nginx
    run create-admin-user.aster
    config-set username admin
    config-set ssh-port 2222
    upload sample.conf /etc/conf

  add-remote-file-runner .rb
    exec `which ruby`

  file hostname.rb
    require 'rubygems'
    puts `hostname`.strip

  file database.yml
    ---
    production:
      adapter: mysql2
      username: root
      password: 00000000

  file sample.conf xml
    <xml>
      <var val="test" />
    </xml>

  function hostname
    exec-script hostname.ruby

create-server-instance web
  configure-instance {{instance.id}}

Install

gem install aster

Usage

Aster is not a configuration management application. Right now it is an experimental language that supports other languages embedded within .aster files.