Forge Home

teamcity

Puppet module to install and configure Teamcity

10,958 downloads

7,811 latest version

4.6 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Support the Puppet Community by contributing to this module

You are welcome to contribute to this module by suggesting new features, currency updates, or fixes. Every contribution is valuable to help ensure that the module remains compatible with the latest Puppet versions and continues to meet community needs. Complete the following steps:

  1. Review the module’s contribution guidelines and any licenses. Ensure that your planned contribution aligns with the author’s standards and any legal requirements.
  2. Fork the repository on GitHub, make changes on a branch of your fork, and submit a pull request. The pull request must clearly document your proposed change.

For questions about updating the module, contact the module’s author.

Version information

  • 2.0.0 (latest)
  • 1.1.1
  • 1.1.0
  • 1.0.1
  • 1.0.0
released Mar 2nd 2016
This version is compatible with:
  • , , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'grundic-teamcity', '2.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add grundic-teamcity
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install grundic-teamcity --version 2.0.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

grundic/teamcity — version 2.0.0 Mar 2nd 2016

Build Status

Overview

Transformation This Puppet module installs and configures TeamCity build agent (https://www.jetbrains.com/teamcity).

A TeamCity Build Agent is a piece of software which listens for the commands from the TeamCity server and starts the actual build processes. It is installed and configured separately from the TeamCity server. An agent can be installed on the same computer as the server or on a different machine (the latter is a preferred setup for server performance reasons).

Usage

Here is an example how to use this module:

include '::teamcity'

Here is sample of usage with some parameters:

class {'::teamcity':
  agent_name            => 'sample-build-agent',
  manage_user           => true,
  manage_group          => true,
  custom_properties     => {
      'system.teamcity.idea.home' => '%system.agent.home.dir%/tools/idea'
  },
  launcher_wrapper_conf => {
    'wrapper.app.parameter.11' => '-Dfile.encoding=UTF-8'
  }
}

Also you can parametrize class from hiera:

teamcity::agent_name: sample-build-agent
teamcity::agent_dir: /var/tainted/build-agent
teamcity::custom_properties:
  "system.teamcity.idea.home": "%system.agent.home.dir%/tools/idea"

##Reference

##Classes

  • teamcity::params: Default configuration parameters
  • teamcity::agent: Main class for installation and configuration.
  • teamcity::agent::config: Internal class for managing configuration
  • teamcity::agent::install: Handles package installation.
  • teamcity::agent::service: Handles service status.

###Parameters

####agent_name Build agent name, that will be displayed on Teamcity server. By defaults set to hostname.

####agent_user User name, which will be used to run and configure build agent. Defaults to teamcity.

####agent_user_home If user is managed, set it's home dir. Defaults to $agent_dir.

####manage_agent_user_home Manage whether to create home dir for user. Defaults to false.

####agent_group Name of group to be used for build agent. Defaults to teamcity.

####manage_user Whether to create user for build agent. Defaults to false.

####manage_group Whether to create group for build agent. Defaults to false.

####server_url Root url of Teamcity server. It will be used in agent's config. Defaults to http://builder.

####archive_name Name of archive that should be downloaded from server_url. Defaults to buildAgent.zip.

####download_url Calculated parameter, that is used to download build agent distributive. Defaults to ${server_url}/update/${archive_name}.

####agent_dir Installation path, where build agent will reside. Defaults to /opt/build-agent.

####service_ensure Required service status. Defaults to running.

####service_enable Should the service be enabled. Defaults to true.

####service_provider This parameter determines how service would be executed. Depending on operating system there could be one or more choices. For modern Linux distributions systemd would be used (Ubuntu 15, CentOS 7), for more old ones init would be set. For Windows you can select two possibilities for agent run: service or standalone. If set to service, then agent is executed as regular windows service. In standalone mode the shortcut is created in Startup folder of specified user. This mode is required in some cases to overcome service's shortcomings (it could interact with desktop, so, it could not for example create Direct3d device).

####teamcity_agent_mem_opts String for configuring additional java parameters for build agent.

####custom_properties Hash of custom properties, that will be applied to conf/buildAgent.properties

####launcher_wrapper_conf Hash of custom properties, that will be applied to launcher/conf/wrapper.conf

Development

Clean host

sudo service build-agent stop; sudo userdel --force --remove teamcity; sudo rm -rf /etc/init.d/build-agent /lib/systemd/system/build-agent.service /opt/build-agent/