{"id":20641819,"url":"https://github.com/valtri/cesnet-jenkins_node","last_synced_at":"2026-05-08T03:04:29.718Z","repository":{"id":57665058,"uuid":"45946004","full_name":"valtri/cesnet-jenkins_node","owner":"valtri","description":"Jenkins Node Puppet Module","archived":false,"fork":false,"pushed_at":"2019-10-23T17:42:30.000Z","size":35,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-25T02:41:49.045Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Puppet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/valtri.png","metadata":{"files":{"readme":"README.markdown","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-11-10T23:01:00.000Z","updated_at":"2019-10-23T17:42:32.000Z","dependencies_parsed_at":"2022-09-26T20:31:14.886Z","dependency_job_id":null,"html_url":"https://github.com/valtri/cesnet-jenkins_node","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valtri%2Fcesnet-jenkins_node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valtri%2Fcesnet-jenkins_node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valtri%2Fcesnet-jenkins_node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valtri%2Fcesnet-jenkins_node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/valtri","download_url":"https://codeload.github.com/valtri/cesnet-jenkins_node/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242692348,"owners_count":20170228,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T16:06:45.586Z","updated_at":"2025-12-24T03:52:38.740Z","avatar_url":"https://github.com/valtri.png","language":"Puppet","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jenkins Node Puppet Module\n\n[![Build Status](https://travis-ci.org/valtri/cesnet-jenkins_node.svg?branch=master)](https://travis-ci.org/valtri/cesnet-jenkins\\_node) [![Puppet Forge](https://img.shields.io/puppetforge/v/cesnet/jenkins_node.svg)](https://forge.puppetlabs.com/cesnet/jenkins\\_node)\n\n#### Table of Contents\n\n1. [Module Description - What the module does and why it is useful](#module-description)\n2. [Setup - The basics of getting started with jenkins\\_node](#setup)\n    * [What jenkins\\_node affects](#what-jenkins_node-affects)\n    * [Setup requirements](#setup-requirements)\n    * [Beginning with jenkins\\_node](#beginning-with-jenkins_node)\n3. [Usage - Configuration options and additional functionality](#usage)\n4. [Reference - An under-the-hood peek at what the module is doing and how](#reference)\n    * [Module Parameters (`jenkins_node` class)](#parameters)\n5. [Limitations - OS compatibility, etc.](#limitations)\n6. [Development - Guide for contributing to the module](#development)\n\n## Module Description\n\nJenkins node setup for building packages in chroot environment using mock or pbuilder.\n\n## Setup\n\n### What jenkins\\_node affects\n\n* Packages: Java, build tools\n* Sudo: pbuilder under *jenkins* user, cleanups\n* Files:\n * config files for dput, mini-dinstall\n * user rpm macros\n * credentials (gpg, ssh)\n * build scripts checkout\n * helper *~jenkins/.puppet-\\** files\n* SELinux setup\n* cron:\n * refresh chroot images\n\n### Setup Requirements\n\ngnupg directory with key needs to be prepared locally at each Jenkins node or at the puppet master.\n\n## Usage\n\n    class{'jenkins_node':\n      gpg_dir      =\u003e [\n        \"puppet:///extra_files/${::fqdn}/gnupg\",\n        \"puppet:///extra_files/cluster-${::cluster}/gnupg\",\n      ],\n      gpg_identity =\u003e 'Jenkins Builder \u003cjenkins@emian.zcu.cz\u003e',\n      gpg_keyid =\u003e '64fa8786',\n      gpg_keys =\u003e {\n        '64fa8786' =\u003e 'http://scientific.zcu.cz/repos/jenkins-builder.asc',\n      },\n    }\n\n### SSH keys\n\nSSH keys must be specified separately. For example:\n\n    ssh_authorized_key{'root@myriads.zcu.cz':\n      user =\u003e 'jenkins',\n      type =\u003e 'ssh-dss',\n      key =\u003e 'AAAA...',\n    }\n\n\u003ca name=\"reference\"\u003e\u003c/a\u003e\n## Reference\n\n### Classes\n\n* [**`jenkins_node`**](#class-jenkins_node): Jenkins Node\n\n### Resources\n\n* `jenkins_node::gpgkey_rpm` (internal): Import GPG key into rpm\n\n\u003ca name=\"class-jenkins_node\"\u003e\u003c/a\u003e\n###`jenkins_node` class\n\n\u003ca name=\"parameters\"\u003e\u003c/a\u003e\n#### Parameters\n\n#####`homedir`\n\nJenkins user home directory. Default: '/var/lib/jenkins'.\n\n#####`gpg_dir`\n\nGnuPG config directory with key pair. Default: undef.\n\nNote, it is passed directly to source of *file* type.\n\n#####`gpg_identity`\n\ngnupg identity in the form of \"Name \u0026lt;email\\_address\u0026gt;\". Default: \"Jenkins Builder \u0026lt;jenkins@${::fqdn}\u0026gt;\".\n\nUsed for rpm.\n\n#####`gpg_keyid`\n\nGPG key ID. Default: undef.\n\n#####`gpg_keys`\n\nHash of GPG key ID and GPG key URL pairs. Default: undef.\n\nExample:\n\n    gpg_keys =\u003e {\n      '64fa8786' =\u003e 'http://scientific.zcu.cz/repos/jenkins-builder.asc'\n    }\n\n#####`jenkins_principals`\n\nArray of Kerberos principals to authenticate to Jenkins node into *jenkins* user. Default: undef.\n\n#####`parameters`\n\nHash of parameters for build scripts. Default: undef.\n\n#####`platforms`\n\nList of supported platforms. Default: (autodetect).\n\n#####`refresh_enable`\n\nEnable creating and refreshing chroot images. Default: true.\n\n#####`refresh_hour`\n#####`refresh_minute`\n#####`refresh_month`\n#####`refresh_monthday`\n#####`refresh_weekday`\n\nParameters for the refresh image cron job. Default: 0, 0, *, *, 0.\n\n\u003ca name=\"limitations\"\u003e\u003c/a\u003e\n##Limitations\n\n### RHEL 5\n\nRHEL 5 platform is not supported.\n\nIt is possible to build for RHEL 5 though:\n\n* any other RedHat-like platform can be used for the build node (it is used mock tool)\n* there is limit on the GPG key size (see below)\n\n### Build platforms\n\nSome build platforms can be collocated on the single node, but each \"OS family\" need its own machine.\n\nBuild \"OS families\":\n\n* Debian\n* Ubuntu\n* Fedora/EPEL\n\nDifferent GPG key:\n\n* separated build machine must be used when different GPG key is needed for some platform\n\n\u003ca name=\"development\"\u003e\u003c/a\u003e\n##Development\n\n* Repository: [https://github.com/valtri/cesnet-jenkins\\_node](https://github.com/valtri/cesnet-jenkins_node)\n* Tests: see *.travis.yml*\n* Email: František Dvořák \u0026lt;valtri@civ.zcu.cz\u0026gt;\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaltri%2Fcesnet-jenkins_node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvaltri%2Fcesnet-jenkins_node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaltri%2Fcesnet-jenkins_node/lists"}