rundeck
: Class to manage installation and configuration of Rundeck.rundeck::cli
: Class to manage installation and configuration of Rundeck CLI.
rundeck::config
: This class is called from rundeck to manage the configuration.rundeck::config::framework
: This private class is called from rundeck::config used to manage the framework properties of rundeck.rundeck::config::jaas_auth
: This private class is called from rundeck::config used to manage jaas authentication for rundeck.rundeck::config::ssl
: This private class is called from rundeck::config used to manage the ssl properties if ssl is enabled.rundeck::install
: This class is called from rundeck for install.rundeck::service
: This class is called from rundeck to manage service.
rundeck::config::aclpolicyfile
: This define will create a custom acl policy file.rundeck::config::plugin
: This define will install a rundeck plugin.rundeck::config::project
: This define will manage projects and jobs.rundeck::config::secret
: This define will manage secrets in key storage.
Rundeck::Auth_config
: Rundeck authentication config type.Rundeck::Db_config
: Rundeck database config type.Rundeck::Job
: Rundeck job type.Rundeck::Key_storage_config
: Rundeck key storage config type.Rundeck::Loglevel
: Rundeck log level type.Rundeck::Mail_config
: Rundeck mail config type.Rundeck::Project
: Rundeck project type.Rundeck::Scm
: Rundeck scm type.
Class to manage installation and configuration of Rundeck.
The following parameters are available in the rundeck
class:
override_dir
repo_config
manage_repo
package_ensure
manage_home
user
group
manage_user
manage_group
user_id
group_id
admin_policies
api_policies
manage_default_admin_policy
manage_default_api_policy
grails_server_url
clustermode_enabled
execution_mode
api_token_max_duration
java_home
jvm_args
quartz_job_threadcount
auth_config
database_config
feature_config
framework_config
grails_config
gui_config
mail_config
security_config
preauthenticated_config
key_storage_config
key_storage_encrypt_config
root_log_level
app_log_level
audit_log_level
webhook_plugins_log_level
execution_cleanup_log_level
jaas_log_level
config_template
override_template
realm_template
log_properties_template
rss_enabled
server_web_context
ssl_enabled
ssl_port
ssl_certificate
ssl_private_key
key_password
keystore
keystore_password
truststore
truststore_password
service_name
service_ensure
service_logs_dir
service_notify
service_config
service_script
manage_cli
cli_version
cli_user
cli_password
cli_token
cli_projects
Data type: Stdlib::Absolutepath
An absolute path to the overrides directory. Examples/defaults for yumrepo can be found at RedHat.yaml, and for apt at Debian.yaml
Data type: Hash
A hash of repository attributes for configuring the rundeck package repositories. Examples/defaults for yumrepo can be found at RedHat.yaml, and for apt at Debian.yaml
Data type: Boolean
Whether to manage the package repository.
Default value: true
Data type: String[1]
Ensure the state of the rundeck package, either present, absent or a specific version.
Default value: 'installed'
Data type: Boolean
Whether to manage rundeck home dir.
Default value: true
Data type: String[1]
The user that rundeck is installed as.
Default value: 'rundeck'
Data type: String[1]
The group permission that rundeck is installed as.
Default value: 'rundeck'
Data type: Boolean
Whether to manage user
(and enforce user_id
if set).
Default value: false
Data type: Boolean
Whether to manage group
(and enforce group_id
if set).
Default value: false
Data type: Optional[Integer]
If you want to have always the same user id. Eg. because of a NFS share.
Default value: undef
Data type: Optional[Integer]
If you want to have always the same group id. Eg. because of a NFS share.
Default value: undef
Data type: Array[Hash]
Admin acl policies.
Default value:
[
{
'description' => 'Admin, all access',
'context' => { 'project' => '.*' },
'for' => {
'resource' => [{ 'allow' => '*' }],
'adhoc' => [{ 'allow' => '*' }],
'job' => [{ 'allow' => '*' }],
'node' => [{ 'allow' => '*' }],
},
'by' => [{ 'group' => ['admin'] }],
},
{
'description' => 'Admin, all access',
'context' => { 'application' => 'rundeck' },
'for' => {
'project' => [{ 'allow' => '*' }],
'resource' => [{ 'allow' => '*' }],
'storage' => [{ 'allow' => '*' }],
},
'by' => [{ 'group' => ['admin'] }],
},
]
Data type: Array[Hash]
Apitoken acl policies.
Default value:
[
{
'description' => 'API project level access control',
'context' => { 'project' => '.*' },
'for' => {
'resource' => [
{ 'equals' => { 'kind' => 'job' }, 'allow' => ['create', 'delete'] },
{ 'equals' => { 'kind' => 'node' }, 'allow' => ['read', 'create', 'update', 'refresh'] },
{ 'equals' => { 'kind' => 'event' }, 'allow' => ['read', 'create'] },
],
'adhoc' => [{ 'allow' => ['read', 'run', 'kill'] }],
'job' => [{ 'allow' => ['read', 'create', 'update', 'delete', 'run', 'kill'] }],
'node' => [{ 'allow' => ['read', 'run'] }],
},
'by' => [{ 'group' => ['api_token_group'] }],
},
{
'description' => 'API Application level access control',
'context' => { 'application' => 'rundeck' },
'for' => {
'project' => [{ 'match' => { 'name' => '.*' }, 'allow' => ['read'] }],
'resource' => [{ 'equals' => { 'kind' => 'system' }, 'allow' => ['read'] }],
'storage' => [{ 'match' => { 'path' => '(keys|keys/.*)' }, 'allow' => '*' }],
},
'by' => [{ 'group' => ['api_token_group'] }],
},
]
Data type: Boolean
Whether to manage the default admin policy.
Default value: true
Data type: Boolean
Whether to manage default api policy.
Default value: true
Data type: Stdlib::HTTPUrl
Sets grails.serverURL
so that Rundeck knows its external address.
Default value: "http://${facts['networking']['fqdn']}:4440"
Data type: Boolean
Wheter to enable cluster mode.
Default value: false
Data type: Enum['active', 'passive']
Set the execution mode to 'active' or 'passive'.
Default value: 'active'
Data type: String[1]
Set the token max duration.
Default value: '30d'
Data type: Optional[Stdlib::Absolutepath]
Set the home directory of java.
Default value: undef
Data type: String
Extra arguments for the JVM.
Default value: '-Xmx1024m -Xms256m -server'
Data type: Integer
The maximum number of threads used by Rundeck for concurrent jobs.
Default value: 10
Data type: Rundeck::Auth_config
Hash of properties for configuring Rundeck JAAS Authentication
Default value:
{
'file' => {
'auth_flag' => 'required',
'jaas_config' => {
'file' => '/etc/rundeck/realm.properties',
},
'realm_config' => {
'admin_user' => 'admin',
'admin_password' => 'admin',
'auth_users' => [],
},
},
}
Data type: Rundeck::Db_config
Hash of properties for configuring the Rundeck Database
Default value: { 'url' => 'jdbc:h2:file:/var/lib/rundeck/data/rundeckdb' }
Data type: Hash
A hash of rundeck features.
Default value: {}
Data type: Hash
Hash of properties for configuring the Rundeck Framework This hash will be merged with the Rundeck defaults
Default value: {}
Data type: Hash
A hash of the rundeck grails configuration.
Default value: {}
Data type: Hash
Hash of properties for customizing the Rundeck GUI
Default value: {}
Data type: Rundeck::Mail_config
A hash of the notification email configuraton.
Default value: {}
Data type: Hash
A hash of the rundeck security configuration.
Default value: {}
Data type: Hash
A hash of the rundeck preauthenticated configuration.
Default value: {}
Data type: Rundeck::Key_storage_config
An array with hashes of properties for customizing the Rundeck Key Storage
Default value: [{ 'type' => 'db', 'path' => 'keys' }]
Data type: Array[Hash]
An array with hashes of properties for customizing the Rundeck Key Storage converter
Default value: []
Data type: Rundeck::Loglevel
The log4j root logging level to be set for Rundeck.
Default value: 'info'
Data type: Rundeck::Loglevel
The log4j logging level to be set for the Rundeck application.
Default value: 'info'
Data type: Rundeck::Loglevel
The log4j logging level to be set for the Rundeck autorization.
Default value: 'info'
Data type: Rundeck::Loglevel
The log4j logging level to be set for the Rundeck plugin webhooks.
Default value: 'info'
Data type: Rundeck::Loglevel
The log4j logging level to be set for the Rundeck execution cleanup.
Default value: 'info'
Data type: Rundeck::Loglevel
The log4j logging level to be set for the Rundeck jaas security.
Default value: 'info'
Data type: String[1]
The template used for rundeck-config properties. Needs to be in epp format.
Default value: 'rundeck/rundeck-config.properties.epp'
Data type: String[1]
The template used for rundeck profile overrides. Needs to be in epp format.
Default value: 'rundeck/profile_overrides.epp'
Data type: String[1]
The template used for jaas realm properties. Needs to be in epp format.
Default value: 'rundeck/realm.properties.epp'
Data type: String[1]
The template used for log properties. Needs to be in epp format.
Default value: 'rundeck/log4j2.properties.epp'
Data type: Boolean
Boolean value if set to true enables RSS feeds that are public (non-authenticated)
Default value: false
Data type: Optional[String[1]]
Web context path to use, such as "/rundeck". http://host.domain:port/server_web_context
Default value: undef
Data type: Boolean
Enable ssl for the rundeck web application.
Default value: false
Data type: Stdlib::Port
Ssl port of the rundeck web application.
Default value: 4443
Data type: Stdlib::Absolutepath
Full path to the SSL public key to be used by Rundeck.
Default value: '/etc/rundeck/ssl/rundeck.crt'
Data type: Stdlib::Absolutepath
Full path to the SSL private key to be used by Rundeck.
Default value: '/etc/rundeck/ssl/rundeck.key'
Data type: Optional[String[1]]
The password used to protect the key in keystore.
Default value: undef
Data type: Stdlib::Absolutepath
Full path to the java keystore to be used by Rundeck.
Default value: '/etc/rundeck/ssl/keystore'
Data type: String[1]
The password for the given keystore.
Default value: 'adminadmin'
Data type: Stdlib::Absolutepath
The full path to the java truststore to be used by Rundeck.
Default value: '/etc/rundeck/ssl/truststore'
Data type: String[1]
The password for the given truststore.
Default value: 'adminadmin'
Data type: String[1]
The name of the rundeck service.
Default value: 'rundeckd'
Data type: Enum['stopped', 'running']
State of the rundeck service.
Default value: 'running'
Data type: Stdlib::Absolutepath
The path to the directory to store service related logs.
Default value: '/var/log/rundeck'
Data type: Boolean
Wheter to notify and restart the rundeck service if config changes.
Default value: true
Data type: Optional[String[1]]
Allows you to use your own override template instead to config rundeckd init script.
Default value: undef
Data type: Optional[String[1]]
Allows you to use your own override template instead of the default from the package maintainer for rundeckd init script.
Default value: undef
Data type: Boolean
Whether to manage rundeck cli config and resource with the rundeck class or not.
Default value: true
Data type: String[1]
Ensure the state of the rundeck cli package, either present, absent or a specific version.
Default value: 'installed'
Data type: String[1]
Cli user to authenticate.
Default value: 'admin'
Data type: String[1]
Cli password to authenticate.
Default value: 'admin'
Data type: Optional[String[8]]
Cli token to authenticate.
Default value: undef
Data type: Hash[String, Rundeck::Project]
Cli projects config.
Default value: {}
Class to manage installation and configuration of Rundeck CLI.
class { 'rundeck::cli':
manage_repo => false,
url => 'https://rundeck01.example.com',
bypass_url => 'https://rundeck.example.com',
token => 'very_secure',
projects => {
'MyProject' => {
'update_method' => 'set',
'config' => {
'project.description' => 'This is My rundeck project',
'project.disable.executions' => 'false',
},
},
'TestProject' => {
'config' => {
'project.description' => 'This is a rundeck test project',
'project.disable.schedule' => 'false',
},
},
},
}
The following parameters are available in the rundeck::cli
class:
Data type: Hash
A hash of repository attributes for configuring the rundeck cli package repositories. Examples/defaults for yumrepo can be found at RedHat.yaml, and for apt at Debian.yaml
Data type: Boolean
Whether to manage the cli package repository.
Default value: true
Data type: Boolean
Wheter to notify the cli connection check if rundeck service changes.
Default value: false
Data type: String[1]
Ensure the state of the rundeck cli package, either present, absent or a specific version.
Default value: 'installed'
Data type: Stdlib::HTTPUrl
Rundeck instance/api url.
Default value: 'http://localhost:4440'
Data type: Stdlib::HTTPUrl
Rundeck external url to bypass. This will rewrite any redirect to $bypass_url as $url
Default value: 'http://localhost:4440'
Data type: String[1]
Cli user to authenticate.
Default value: 'admin'
Data type: String[1]
Cli password to authenticate.
Default value: 'admin'
Data type: Optional[String[8]]
Cli token to authenticate.
Default value: undef
Data type: Hash[String, Rundeck::Project]
Cli projects config. See example for structure and rundeck::config::project for available params.
Default value: {}
This define will create a custom acl policy file.
rundeck::config::aclpolicyfile { 'myPolicyFile':
acl_policies => [
{
'description' => 'Admin, all access',
'context' => { 'project' => '.*' },
'for' => {
'resource' => [{ 'allow' => '*' }],
'adhoc' => [{ 'allow' => '*' }],
'job' => [{ 'allow' => '*' }],
'node' => [{ 'allow' => '*' }],
},
'by' => [{ 'group' => ['admin'] }],
},
{
'description' => 'Admin, all access',
'context' => { 'application' => 'rundeck' },
'for' => {
'project' => [{ 'allow' => '*' }],
'resource' => [{ 'allow' => '*' }],
'storage' => [{ 'allow' => '*' }],
},
'by' => [{ 'group' => ['admin'] }],
},
],
}
The following parameters are available in the rundeck::config::aclpolicyfile
defined type:
Data type: Array[Hash]
An array of hashes containing acl policies. See example.
Data type: Enum['present', 'absent']
Set present or absent to add or remove the acl policy file.
Default value: 'present'
Data type: String[1]
The user that rundeck is installed as.
Default value: 'rundeck'
Data type: String[1]
The group permission that rundeck is installed as.
Default value: 'rundeck'
Data type: Stdlib::Absolutepath
The rundeck configuration directory.
Default value: '/etc/rundeck'
This define will install a rundeck plugin.
rundeck::config::plugin { 'rundeck-hipchat-plugin-1.0.0.jar':
source => 'http://search.maven.org/remotecontent?filepath=com/hbakkum/rundeck/plugins/rundeck-hipchat-plugin/1.0.0/rundeck-hipchat-plugin-1.0.0.jar',
}
The following parameters are available in the rundeck::config::plugin
defined type:
Data type: String[1]
The http source or local path from which to get the plugin.
Data type: Enum['present', 'absent']
Set present or absent to add or remove the plugin.
Default value: 'present'
Data type: String[1]
The user that rundeck is installed as.
Default value: 'rundeck'
Data type: String[1]
The group permission that rundeck is installed as.
Default value: 'rundeck'
Data type: Stdlib::Absolutepath
Directory where plugins will be installed.
Default value: '/var/lib/rundeck/libext'
Data type: Optional[Stdlib::HTTPUrl]
Get the plugin trough a proxy server.
Default value: undef
This define will manage projects and jobs.
rundeck::config::project { 'MyProject':
config => {
'project.description' => 'My test project',
'project.disable.schedule' => 'false',
},
}
rundeck::config::project { 'MyProject':
config => {
'project.description' => 'My test project',
'project.disable.schedule' => 'false',
},
jobs => {
'MyJob1' => {
'path' => '/etc/myjob1',
'format' => 'yaml',
},
'MyJob2' => {
'path' => '/etc/myjob2',
'format' => 'xml',
},
'DeleteJob1' => {
'ensure' => 'absent',
'path' => '/etc/testjob1',
'format' => 'yaml',
},
},
}
rundeck::config::project { 'MyProject':
config => {
'project.description' => 'My test project',
'project.disable.schedule' => 'false',
},
scm_config => {
'import' => {
'type' => 'git-import',
'config' => {
'strictHostKeyChecking' => 'yes',
'gitPasswordPath' => 'keys/example-access-token',
'format' => 'xml',
'dir' => '/var/lib/rundeck/projects/MyProject/ScmImport',
'branch' => 'master',
'url' => 'https://[email protected]/example/example.git',
'filePattern' => '*.xml',
'useFilePattern' => 'true',
'pathTemplate' => "\${job.id}.\${config.format}",
'importUuidBehavior' => 'preserve',
'sshPrivateKeyPath' => '',
'fetchAutomatically' => 'true',
'pullAutomatically' => 'true',
},
},
},
}
The following parameters are available in the rundeck::config::project
defined type:
Data type: Enum['absent', 'present']
Whether or not the project should be present.
Default value: 'present'
Data type: Hash[String, String]
Configuration properties for a project.
Default value:
{
'project.description' => "${name} project",
'project.label' => $name,
'project.disable.executions' => 'false',
'project.disable.schedule' => 'false',
'project.execution.history.cleanup.batch' => '500',
'project.execution.history.cleanup.enabled' => 'true',
'project.execution.history.cleanup.retention.days' => '60',
'project.execution.history.cleanup.retention.minimum' => '50',
'project.execution.history.cleanup.schedule' => '0 0 0 1/1 * ? *',
'project.jobs.gui.groupExpandLevel' => '1',
}
Data type: Enum['set', 'update']
set: Overwrite all configuration properties for a project. Any config keys not included will be removed. update: Modify configuration properties for a project. Only the specified keys will be updated.
Default value: 'update'
Data type: Hash[String, Rundeck::Job]
Rundeck jobs related to a project.
Default value: {}
Data type: String[1]
The user that rundeck is installed as.
Default value: 'rundeck'
Data type: String[1]
The group permission that rundeck is installed as.
Default value: 'rundeck'
Data type: Stdlib::Absolutepath
Directory where some project config will be stored.
Default value: '/var/lib/rundeck/projects'
Data type: Optional[Rundeck::Scm]
A hash of name value pairs representing properties for the scm.json file.
Default value: undef
This define will manage secrets in key storage.
rundeck::config::secret { 'keys/mysecret':
content => 'very_secure_password',
}
The following parameters are available in the rundeck::config::secret
defined type:
Data type: Variant[String, Sensitive[String]]
The secret content.
Data type: Enum['absent', 'present']
Whether or not the secret should be present.
Default value: 'present'
Data type: Enum['password', 'privateKey', 'publicKey']
The type of the secret.
Default value: 'password'
Data type: String[1]
The path in rundeck key storage.
Default value: $name
Data type: String[1]
The user that rundeck is installed as.
Default value: 'rundeck'
Data type: String[1]
The group permission that rundeck is installed as.
Default value: 'rundeck'
Data type: Stdlib::Absolutepath
The directory on filesystem where the secret files are stored.
Default value: '/var/lib/rundeck/keystorage'
Type: Ruby 3.x API
''
''
Returns: Any
Rundeck authentication config type.
Alias of
Struct[{
Optional['file'] => Hash[String, Any],
Optional['ldap'] => Hash[String, Any],
Optional['pam'] => Hash[String, Any],
}]
Rundeck database config type.
Alias of
Struct[{
'url' => String,
Optional['driverClassName'] => String,
Optional['username'] => String,
Optional['password'] => Variant[String[8], Sensitive[String[8]]],
Optional['dialect'] => String,
Optional['properties.validationQuery'] => String,
}]
Rundeck job type.
Alias of
Struct[{
'path' => Stdlib::Absolutepath,
'format' => Enum['yaml', 'xml', 'json'],
Optional['ensure'] => Enum['absent', 'present'],
}]
Rundeck key storage config type.
Alias of
Array[Struct[{
'type' => String,
'path' => String,
Optional['removePathPrefix'] => Boolean,
Optional['config'] => Hash,
}]]
Rundeck log level type.
Alias of Enum['all', 'debug', 'error', 'fatal', 'info', 'off', 'trace', 'warn']
Rundeck mail config type.
Alias of
Struct[{
Optional['host'] => String,
Optional['port'] => Integer,
Optional['username'] => String,
Optional['password'] => Variant[String[8], Sensitive[String[8]]],
Optional['props'] => Array[Hash],
Optional['default.from'] => String,
Optional['default.to'] => String,
Optional['disabled'] => Boolean,
}]
Rundeck project type.
Alias of
Struct[{
Optional['ensure'] => Enum['absent', 'present'],
Optional['config'] => Hash[String, String],
Optional['update_method'] => Enum['set', 'update'],
Optional['jobs'] => Hash[String, Rundeck::Job],
}]
Rundeck scm type.
Alias of
Variant[Struct[{
'import' => Struct[{
'type' => String[1],
'config' => Hash[String[1], String],
}],
Optional['export'] => Struct[{
'type' => String[1],
'config' => Hash[String[1], String],
}],
}], Struct[{
'export' => Struct[{
'type' => String[1],
'config' => Hash[String[1], String],
}],
Optional['import'] => Struct[{
'type' => String[1],
'config' => Hash[String[1], String],
}],
}]]