teamcity

Module to manage teamcity installations

neillturner

neillturner

10,918 downloads

6,821 latest version

4.2 quality score

Version information

  • 2.0.0 (latest)
  • 1.0.5
  • 1.0.4
  • 1.0.3
  • 1.0.2
  • 1.0.1
released Feb 11th 2016
This version is compatible with:
  • RedHat
    ,
    CentOS
    ,
    OracleLinux

Start using this module

Documentation

neillturner/teamcity — version 2.0.0 Feb 11th 2016

Puppet TeamCity module

The TeamCity puppet module downloads and installs the latest version of TeamCity. Also allows plugins to be installed.

Tested on CentOS 6.x.

Minimal TeamCity::Server - Usage:

 class { 'oraclejava::jdk7_rpm': }
 
 class { 'teamcity::server':
    require => Class['oraclejava::jdk7_rpm'],
 }

 teamcity::server::plugin { 'node':
    plugin_url       => 'http://teamcity.jetbrains.com/guestAuth/repository/download/bt434/.lastSuccessful/jonnyzzz.node.zip',
    plugin_zip_file  => 'jonnyzzz.node.zip',
    require          => Class['teamcity::server'],
 }

This stanza does not include a default build agent; see below. Memory options are configured to be the production values, so you'll need around 750 MiB for the server's runtime.

TeamCity::Agent - Usage:

When installing the agent, you first need a TeamCity server up and running, I run mine at the A-name 'tc'. This is in the defaults of teamcity::agent, so if you have a different name for your TeamCity server, I suggest you override it in hiera:

---
teamcity::agent::server_url: http://192.168.33.31:8111

Besides, that, here's a sample configuration profile that uses the TeamCity Agent class:

 class { 'oraclejava::jdk7_rpm': }
 
 class { 'teamcity::agent':
    require => Class['oraclejava::jdk7_rpm'],
 }

Complex TeamCity::Server - Usage:

Install via an http proxy and configure port, directories etc

 class { 'oraclejava::jdk7_rpm':
      download_url  => 'https://edelivery.oracle.com/otn-pub/java/jdk/7u67-b01/jdk-7u67-linux-x64.rpm',
      wget_opts   => "-e use_proxy=yes -e http_proxy=10.99.99.99:3128  -e https_proxy=10.99.99.99:3128",
  }

 class { 'teamcity::server':
    team_city_version => '8.1.4',
    data_dir          => '/data/teamcity-server',
    plugin_dir        => '/data/teamcity-server/plugins'
    db_type           => 'mysql',
    port              => '8000', 
    address           => 'myteamcityurl.com',
    wget_opts         => "-e use_proxy=yes -e http_proxy=10.99.99.99:3128",
    http_proxy_host   => '10.99.99.99',
    http_proxy_port   => '3128',
    https_proxy_host  => '10.99.99.99',
    https_proxy_port  => '3128',
    require           => Class['oraclejava::jdk7_rpm'],
 }
 
 teamcity::server::plugin { 'node':
    plugin_url       => 'https://teamcity.jetbrains.com/guestAuth/repository/download/bt434/.lastSuccessful/jonnyzzz.node.zip',
    plugin_zip_file  => 'jonnyzzz.node.zip',
    wget_opts        => "-e use_proxy=yes -e http_proxy=10.99.99.99:3128 -e https_proxy=10.99.99.99:3128",
    require          => Class['teamcity::server'],
 }

It's worth noting that if you change the folders in the agent-class to be outside of their default you're going to have to hack Catalina and a range of other software you haven't touched before, to make it work. Simply, I couldn't, despite spending about 3 hours on it, so just go with the default folders.

You'll need about 400 MiB minimum for each agent you want to run on a node.

License

MIT

Good reading

http://plone.lucidsolutions.co.nz/software-development/continuous-integration/teamcity/howto-install-jetbrains-teamcity-v6.5.1-on-centos-v5.x