Skip to content

Puppet TeamCity server and agent module

Notifications You must be signed in to change notification settings

shazadbrohi/puppet-teamcity

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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'],
 }

 class { 'teamcity::server::plugin':
    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'],
 }
 
 class { 'teamcity::server::plugin':
    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

About

Puppet TeamCity server and agent module

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Puppet 57.0%
  • HTML 32.6%
  • Shell 10.4%