#xlrelease
####Table of Contents
##Overview
A module that takes care of the installation and configuration regarding XL Release by Xebialabs
##Module Description This Module is geared toward the installation and configuration of Xebialabs XL-Release. It will take care of the installation of xl-release on linux based systems as well as doing a lot of the standard configuration required to setup a production ready instance of xl-release.
##Setup
###Setup Requirements
This module requires the following:
- pluginsync enabled
- module puppetlabs-stdlib installed
- module puppetlabs-concat installed
###Beginning with [puppet-xlrelease]
##Usage
###basic installation
class{xlrelease:
install_java => true,
install_type: 'download'
xlr_download_user: '<your download user>'
xlr_download_password: '<your download password'
xlr_licsource: 'https://dist.xebialabs.com/customer/licenses/download/xl-release-license.lic'
}
this will install a basic instance of xl-release at /opt/xl-release/xl-release-server which will respond on port 5516.
###ldap configuration class { 'xlrelease': install_java => true, install_type => 'download', xlr_download_user => '', xlr_download_password => '', xlr_custom_license_source => 'https://dist.xebialabs.com/customer/licenses/download/v3/xl-release-license.lic', ldap_server_url => 'ldap://localhost:1389/', ldap_manager_dn => 'cn=admin,dc=example,dc=com', ldap_manager_password => 'secret', ldap_user_search_base => 'dc=example,dc=com', ldap_user_search_filter => '(&(uid={0})(objectClass=inetOrgPerson))', ldap_group_search_base => 'ou=groups,dc=example,dc=com', ldap_group_search_filter => '(memberUid={0})', }
###adding configuration adding a xl-deploy server to the configuration
xlrelease_xld_server{'default':
properties => { 'url' => 'http://your.xld.instance:4516/<context_root>',
'username' => 'your xld user',
'password' => 'your xld password'
}
}
adding a jenkins server to the configuration
xlrelease_config_item{'jenkins_default':
type => 'jenkins.Server',
properties => { username: "jenkins user name"
title: "title in xlr"
proxyHost: <optional proxy host .. null for no proxy>
proxyPort: <optional proxy port .. null for no port>
password: "jenkins user password"
url: 'http://your_jenkins_host_goes_here:and_the_port_here'
}
}
adding a git repo to the configuration
xlrelease_config_item{'your_git_repo':
type => 'git.Repository',
properties => { username: "git user name"
title: "title in xlr"
password: "git user password"
url: 'http://url.to.git/repo'
}
}
adding a xl-deploy server to the configuration from a different system using puppet this code could be used in a manifest when installing a xl-deploy server using puppet
xlrelease_xld_server{'default':
properties => { 'url' => "http://${fqdn}:4516/<context_root>",
'username' => 'your xld user',
'password' => 'your xld password'
}
rest_url => 'http://user:password@your.xl-release.com:5516/<something>'
}
adding a jenkins server to the configuration from a different system using puppet this code could be used in a manifest when installing a jenkins server using puppet
xlrelease_config_item{'jenkins_default':
type => 'jenkins.Server',
rest_url => 'http://user:password@your.xl-release.com:5516/<something>',
properties => { username: "jenkins user name"
title: "title in xlr"
proxyHost: <optional proxy host .. null for no proxy>
proxyPort: <optional proxy port .. null for no port>
password: "jenkins user password"
url: 'http://your_jenkins_host_goes_here:and_the_port_here'
}
}
adding a git repo to the configuration form a different system using puppet
xlrelease_config_item{'your_git_repo':
type => 'git.Repository',
rest_url => 'http://user:password@your.xl-release.com:5516/<something>',
properties => { username: "git user name"
title: "title in xlr"
password: "git user password"
url: 'http://url.to.git/repo'
}
}
###using hiera
basic installation
---
xlrelease::install_java: true
xlrelease::install_type: 'download'
xlrelease::xlr_download_user: 'get one'
xlrelease::xlr_download_password: 'not telling you that'
xlrelease::xlr_licsource: 'https://dist.xebialabs.com/customer/licenses/download/xl-release-license.lic'
adding a xl-deploy server to the configuration the module commes equiped with a hash parameters for use with hiera
---
xlrelease::xlr_xldeploy_hash:
'default':
properties:
url: "http://your.xld.instance:4516/<context_root>"
username: "your xld user"
password: "your xld password"
adding a jenkins server and a git repo to the configuration
---
xlrelease::xlr_config_item_hash:
'jenkins1':
type: 'jenkins.Server'
title: 'jenkins1'
properties:
username: "jenkins user"
title: "title in xlr"
proxyHost: <optional proxy host .. null for no proxy>
proxyPort: <optional proxy host .. null for no proxy>
password: "jenkins user password"
url: 'http://your_jenkins_host_goes_here:and_the_port_here'
'git_test1':
type: 'git.Repository'
title: 'git_test1'
properties:
username: 'git user name'
password: 'title in xlr'
url: 'http://url.to.git/repo'
title: 'title in xlr'
##Reference
####Public classes
xlrelease
#####os_user
the user that will be used to run xlr and installed on the os by the module (unless it's already there)
default: xlrelease
#####os_group
the group that will be used to run xlr and installed on the os by the module (unless it's already there)
default: xlrelease
#####tmp_dir
specifies a temporary file storage space for the module to store downloaded stuff
default: /var/tmp
#####xlr_version
specifies the version of xlr to install
default : 4.5.1
#####xlr_basedir
specifies the base installation directory for xlr
default: /opt/xl-release
#####xlr_serverhome
specifies the xlrelease server home directory
default: /opt/xl-release/xl-release-server
#####xlr_licsource
specifies where the xl-release license can be obtained
default: no help there .. sorry
#####xlr_repopath
specifies the path to the xlr repository on the filesystem
either specify a full path prefixed with file:/// or a directory relative to the server home
default: repository
#####xlr_initrepo
specifies if we should initialize the repo upon installation
default: true
#####xlr_http_port
specifies the port xlr will respond to
default: 5516
#####xlr_http_bind_address
specifies the address the instance binds to
default: 0.0.0.0 (listens to all incomming traffic)
#####xlr_http_context_root
specifies the context root xlr will respond on
default: /
#####xlr_importable_packages_path
specifies the path to the imporatble packages
either specify a full path prefixed with file:/// or a directory relative to the server home
default: importablePackages
#####xlr_ssl
specifies if the module should setup ssl traffic to the server
default: false
#####xlr_download_user
specifies the xlr download user account (can be obtaind from xebialabs)
default: undef
#####xlr_download_password
specifies the xlr download user password (can be obtained form http://www.xebialabs.com)
default: undef
#####xlr_download_proxy_url
specifies a proxy url if one is needed to obtain a direct internet connection
default: undef
#####xlr_rest_user
specifies the restuser to be used for interfacing from the module to the xlr instance
default: admin
#####xlr_rest_password
specifies the restusers password
default: xebialabs
#####xlr_admin_password
specifies the admin password xlr will be setup with
default: xebialabs
#####java_home
specifies the java_home which will be used to run xlr
default: 'RedHat' : '/usr/lib/jvm/jre-1.7.0-openjdk.x86_64'
'Debian' : '/usr/lib/jvm/java-7-openjdk-amd64'
#####install_java
specifies if java should be installed as part of this modules duties
#####install_type
specifies the type of installation method where gonna use:
default: download
choices:
download: download source from xebialabs.com (preffered)
puppetfiles: get the source from a specified puppet files location
#####puppetfiles_xlrelease_source
specifies the source location of the xlr installation for use with a puppetfiles installation type
#####custom_download_server_url
specify a custom download url (other than the standard xebialabs one provided by the module)
#####xlr_xldeploy_hash
allows for the specification of multiple xl-deploy instances in a hash format (see instructions above)
#####xlr_config_item_hash
allows for the specifiaction of multiple xl-release configuration items in a hash format (see instructions above)
#####ldap_server_url
ldap url to connect to
#####ldap_manager_dn
principal to perform the initial bind to the LDAP server
#####ldap_manager_password
credentials to perform the initial bind to the LDAP server
#####ldap_user_search_base
ldap filter to use as a basis for searching for users
#####ldap_user_search_filter
ldap filter to determine the LDAP dn for the user who is logging in
#####ldap_group_search_base
ldap filter to use as a basis for searching for groups
#####ldap_group_search_filter
ldap filter to determine the group memberships of the user
####types and provider pairs xlrelease_xld_server
this resource can be used to configure a xl-deploy instance in a xlr instance
#####type
the type of ci to configure in xlr (no point in changing this on this resource !!!!)
default : 'xlrelease.DeployitServerDefinition'
#####properties
the properties the should be configured in xld
'url': the url to reach the xldeploy server on
'username': the username of the xldeploy server
'password': the password to go along with the username
#####rest_url
a url to reach the external xlr server on (which is optional)
use this if u are using this resource from a different server other than the xlr server
default: undef
xlrelease_config_item
this resource can be used to influence a configuration item in an xlr instance
#####type the type of ci to configure in xlr posiblities: jenkins.Server, git.Repository (amongst others ... this has to be valid in xlr) #####properties the properties the should be configured in xld (dependent on the type) #####rest_url a url to reach the external xlr server on (which is optional) use this if u are using this resource from a different server other than the xlr server default: undef
##Limitations
###os compatibility
- Debian (all recent versions)
- Ubuntu (all recent versions) 12.02 and 14.02 supported
- Redhat (6&7 supported)
- CentOS (6&7 supported)
###xlrelease compatibility versions 4.0.13 and 4.5.1 tested ##Development
- No real rules yet, but a test set will be setup pretty soon.
- Pull requests will be evaluated and if they make sense they will be incorporated in the module
##Release Notes/Contributors/Etc Optional
###Maintainers
- Wian Vos
###Contributors
- Wian Vos
** help wanted **