Version information
This version is compatible with:
- , ,
Start using this module
Add this module to your Puppetfile:
mod 'neillturner-teamcity', '2.0.0'
Learn more about managing modules with a PuppetfileDocumentation
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