/puppet-bamboo_agent

A Puppet module for managing Bamboo agents

Primary LanguageRuby

bamboo_agent

Fork of [kayakco/bamboo_agent] module. Supports now ubuntu14 and multiple bamboo agents on different users on the same machine.

A Puppet module for managing Bamboo agents.

It can:

  • Install multiple agents side-by-side on a node
  • Ensure agents are running / started up after a reboot
  • Set properties in an agent's wrapper.conf
  • Manage agent capabilities

Examples

Install a single Bamboo agent in /usr/local/bamboo.

class { 'bamboo_agent':
  server_url => 'http://your.bamboo.server:8085',
}

Install two Bamboo agents in /home/bamboo.

class { 'bamboo_agent':
  server_url  => 'http://your.bamboo.server:8085',
  agents      => [1,2],
  install_dir => '/home/bamboo',
}

Advanced Examples

Install two Bamboo agents. Give agent 1 extra heap space by setting the wrapper.java.maxmemory property in wrapper.conf.

class { 'bamboo_agent':
  server_url => 'http://your.bamboo.server:8085',
  agents     => {
    '1' => {
      'wrapper_conf_properties' => {
         'wrapper.java.maxmemory' => '4096',
      }
     },
    '2' => {},
  }
}

Install two Bamboo agents. Give the second agent some custom capabilities.

class { 'bamboo_agent':
  server_url => 'http://your.bamboo.server:8085',
  agents     => {
    '1' => {},
    '2' => {
      'manage_capabilities' => true,
      'capabilities'        => {
         'system.builder.command.Bash' => '/bin/bash',
         'hostname'                    => $::hostname,
         'os'                          => $::operatingsystem,
      }
    }
  }
}

Install six bamboo agents. Give them all the hostname and Bash capabilities from the previous example, as well as a custom capability called reserved. Make reserved default to false, but true for agent 2.

class { 'bamboo_agent':
  server_url           => 'http://your.bamboo.server:8085',
  agent_defaults       => {
    'manage_capabilities' => true,
  },
  default_capabilities => {
    'system.builder.command.Bash' => '/bin/bash',
    'hostname'                    => $::hostname,
    'reserved'                    => false,
  },
  agents => {
    '1' => {},
    '2' => {
      'capabilities' => { 'reserved' => true }
    },
    '3' => {},
    '4' => {},
    '5' => {},
    '6' => {},
  }
}

See init.pp and agent.pp for more details.

Notes

Capabilities are configured using the bamboo-capabilities.properties file

It is strongly recommended to use Hiera automatic parameter lookup to configure agents. Below is the final example from above, translated into Hiera configuration format:

---
bamboo_agent::server_url: http://your.bamboo.server:8085
bamboo_agent::agent_defaults:
  manage_capabilities: true
bamboo_agent::default_capabilities:
  "system.builder.command.Bash": /bin/bash
  hostname: "%{::hostname}"
  reserved: false
bamboo_agent::agents
  1:
  2:
    capabilities:
      reserved: true
  3:
  4:
  5:
  6: