Compare commits

...

708 Commits

Author SHA1 Message Date
R. Tyler Croy 2bc2e32777
Change to a new host and username for rating app 2016-04-17 18:18:09 -07:00
R. Tyler Croy f93ac5a41d Merge pull request #381 from jenkins-infra/ldap-for-puppet
Need to whitelist puppet
2016-04-17 18:03:21 -07:00
Kohsuke Kawaguchi cf55369e82 Need to whitelist puppet 2016-04-17 17:47:01 -07:00
Kohsuke Kawaguchi b1a807b780 Merge pull request #379 from jenkins-infra/l10n
[INFRA-638] l10n.jenkins.io takes over l10n.jenkins-ci.org
2016-04-17 16:55:51 -07:00
Kohsuke Kawaguchi f5952f8e1d Merge pull request #378 from jenkins-infra/container-names
set container names appropriately
2016-04-17 16:48:12 -07:00
Kohsuke Kawaguchi 9023cb171f Consistent use of trailing period 2016-04-17 16:47:02 -07:00
Kohsuke Kawaguchi 996206ae14 Merge pull request #377 from jenkins-infra/ldap_cert
[INFRA-1] ordering between config & openldap module
2016-04-17 16:39:43 -07:00
Kohsuke Kawaguchi b3ac9220b1 [INFRA-638] l10n.jenkins.io takes over l10n.jenkins-ci.org
new VM takes over the service previously hosted on cucumber
2016-04-17 16:38:47 -07:00
Kohsuke Kawaguchi 2bbc8b8230 set container names appropriately
This helps with datadog monitoring as dashboard can show proper names
2016-04-17 16:33:54 -07:00
Kohsuke Kawaguchi dad7b18f0d
[INFRA-1] ordering between config & openldap module
Directory creation requires an user, so those settings have to happen
between the installation and the service execution, IIUC.

This is way more puppet than I'm comfortable with.
2016-04-17 16:29:26 -07:00
R. Tyler Croy af418f3a9c Merge pull request #375 from jenkins-infra/ldap_cert
[INFRA-1] deploy LDAPS
2016-04-17 16:26:52 -07:00
Kohsuke Kawaguchi 3b769605ed Deploy SSL certs & run slapd with it 2016-04-17 16:10:55 -07:00
R. Tyler Croy 6445870b50 Merge pull request #374 from jenkins-infra/l10n
New image that creates indirection in /srv/l10n
2016-04-17 16:10:40 -07:00
Kohsuke Kawaguchi ff05321028 New image that creates indirection in /srv/l10n 2016-04-17 15:35:20 -07:00
R. Tyler Croy e74aa97cba Merge pull request #371 from jenkins-infra/rtyler-patch-1
Zed's dead baby
2016-04-17 12:54:03 -07:00
R. Tyler Croy ee422e22b4 Zed's dead baby
The tombstone profile will fail once things are removed. Only removing the profile frrom the role and not the files themselves so I can quickly get this out while doing other work lcoally
2016-04-17 12:23:27 -07:00
R. Tyler Croy 5474ff6093
Introduce ldap.jenkins.io certificates 2016-04-17 11:37:41 -07:00
Kohsuke Kawaguchi ca5149ae9c Merge pull request #369 from jenkins-infra/l10n
[INFRA-638] l10n moving to another machine take 2
2016-04-17 11:20:28 -07:00
Kohsuke Kawaguchi ce0b4acb43 1007 was colliding
20xx are used by other service accounts.
2016-04-17 11:03:52 -07:00
Kohsuke Kawaguchi a34b8ced18 apparently you cannot tell service to be absent
See https://docs.puppet.com/puppet/latest/reference/type.html#service-attribute-ensure
2016-04-17 11:02:28 -07:00
R. Tyler Croy 9bb8e24468 Merge pull request #367 from jenkins-infra/check-command
Added a command that runs tests locally more quickly
2016-04-17 10:10:21 -07:00
Kohsuke Kawaguchi 39565388ef Adding a note, though fixture setup time is already discussed in README 2016-04-17 09:24:46 -07:00
Kohsuke Kawaguchi bf2e472f1f Added a command that runs tests locally more quickly 2016-04-17 08:47:09 -07:00
R. Tyler Croy 3f25333780 Merge pull request #366 from jenkins-infra/l10n
[INFRA-638] moving off l10n service from okra into new host
2016-04-17 08:47:08 -07:00
Kohsuke Kawaguchi f6b1da325b moving off l10n service from okra into new host 2016-04-17 08:40:21 -07:00
R. Tyler Croy 0e1c2b41a2 Merge pull request #364 from rtyler/mirrorbrain-dns-635
Add new A records for l10n. pkg. mirrors and ci.jenkins.io
2016-04-17 08:26:26 -07:00
R. Tyler Croy d38c3fe432
Add new A records for l10n. pkg. mirrors and ci.jenkins.io
References INFRA-518, INFRA-635, INFRA-638
2016-04-17 08:08:43 -07:00
Kohsuke Kawaguchi e9bcb0ede4 Merge pull request #362 from jenkins-infra/rating
New version that serves all PHPs over HTTPS
2016-04-16 23:50:41 -07:00
Kohsuke Kawaguchi cb20a7c643 New version that serves all PHPs over HTTPS 2016-04-16 23:41:30 -07:00
Kohsuke Kawaguchi 28ffbb936c Merge pull request #360 from jenkins-infra/rating
This file needs to be readable from apache
2016-04-16 23:16:57 -07:00
Kohsuke Kawaguchi f69ac68248 This file needs to be readable from apache
... that processes rating app.
2016-04-16 23:09:43 -07:00
Kohsuke Kawaguchi f78b286679 Merge pull request #358 from jenkins-infra/rating
wrong port mapping
2016-04-16 22:59:58 -07:00
Kohsuke Kawaguchi f0c18c0f28 wrong port mapping 2016-04-16 22:44:53 -07:00
Kohsuke Kawaguchi a5b355cce5 Merge pull request #356 from jenkins-infra/rating
Looks like I need this entry to be able to get the cert
2016-04-16 22:28:03 -07:00
Kohsuke Kawaguchi 92bb3c9b18 Looks like I need this entry to be able to get the cert 2016-04-16 22:20:24 -07:00
Kohsuke Kawaguchi 02a05d0f91 Merge pull request #354 from jenkins-infra/reorder
Perform lint first to speed up the check
2016-04-16 22:09:35 -07:00
Kohsuke Kawaguchi 2467204d69 Merge pull request #353 from jenkins-infra/rating
Exposing rating app to http
2016-04-16 22:09:25 -07:00
Kohsuke Kawaguchi a94133d3d2 Expose over HTTPS
... so that when used from https://jenkins.io/ it doesn't cause a
browser to issue unsafe script warning
2016-04-16 22:00:17 -07:00
Kohsuke Kawaguchi b155cb6195 Perform lint first to speed up the check
lint runs far more quickly
2016-04-16 21:57:55 -07:00
Kohsuke Kawaguchi f5a07d3421 Exposing rating app to http 2016-04-16 21:44:18 -07:00
Kohsuke Kawaguchi 98924ba986 Merge pull request #350 from jenkins-infra/l10n
[INFRA-638] expose l10n service over HTTP
2016-04-16 21:07:22 -07:00
Kohsuke Kawaguchi 0842b6b539 Merge pull request #351 from jenkins-infra/rating
[INFRA-636] New version with correct URL
2016-04-16 21:06:45 -07:00
Kohsuke Kawaguchi 580d74d479 Merge branch 'staging' into l10n 2016-04-16 21:01:02 -07:00
Kohsuke Kawaguchi 9c1c812580 New version with correct URL 2016-04-16 21:00:12 -07:00
Kohsuke Kawaguchi 99a6daea2e Merge pull request #349 from jenkins-infra/ratings
CORS in rating app
2016-04-16 20:50:42 -07:00
Kohsuke Kawaguchi c9a933750d Expose l10n service through apache 2016-04-16 20:47:47 -07:00
Kohsuke Kawaguchi 0edda6f0b9 Expose l10n.jenkins.io 2016-04-16 20:44:02 -07:00
Kohsuke Kawaguchi c91f285839
[INFRA-636] http://rating.jenkins.io/ 2016-04-16 20:38:44 -07:00
Kohsuke Kawaguchi 529e639f5e
CORS in rating app 2016-04-16 20:33:06 -07:00
R. Tyler Croy 8a464026cf Merge pull request #347 from jenkins-infra/ratings
The name of the node is 'ratings' unlike the name of the app, which i…
2016-04-16 20:17:47 -07:00
Kohsuke Kawaguchi ab84e14467
The name of the node is 'ratings' unlike the name of the app, which is 'rating'
(sigh)
2016-04-16 20:06:26 -07:00
Kohsuke Kawaguchi 2ce54fa457 Merge pull request #346 from jenkins-infra/psql
For convenience, make postgres client available on the host
2016-04-16 20:04:57 -07:00
Kohsuke Kawaguchi 22ad0845f9 For convenience, make postgres client available on the host 2016-04-16 19:55:03 -07:00
R. Tyler Croy 99484a76cd Merge pull request #342 from jenkins-infra/INFRA-636
[INFRA-636] manage rating app
2016-04-16 19:45:05 -07:00
R. Tyler Croy 250612d5db Merge branch 'staging' into INFRA-636 2016-04-16 19:37:33 -07:00
R. Tyler Croy b8d589b0b7 Merge pull request #343 from jenkins-infra/l10n
uid needs to be fixed to number
2016-04-16 19:37:27 -07:00
R. Tyler Croy e7867acf43 Merge branch 'staging' into l10n 2016-04-16 19:23:08 -07:00
R. Tyler Croy cb52747c61 Merge pull request #344 from rtyler/ldap-cert-validation
Add a CNAME for DNS-based certificate validation
2016-04-16 19:23:01 -07:00
R. Tyler Croy 5df1ca8e4b
docker::run{username} must be a string 2016-04-16 18:03:36 -07:00
R. Tyler Croy 7ac3786ff6
Correct some minor puppet-lint errors 2016-04-16 18:01:22 -07:00
R. Tyler Croy f47ed3fac6
Add a CNAME for DNS-based certificate validation
[FIX INFRA-640]
2016-04-16 17:58:52 -07:00
Kohsuke Kawaguchi 67421b92e0 uid needs to be fixed to number
... because docker tries to resolve this username inside the container,
not outside
2016-04-16 17:55:28 -07:00
Kohsuke Kawaguchi 4e0afaab53 [INFRA-636] manage rating app 2016-04-16 17:43:08 -07:00
R. Tyler Croy 4a26a36461 Merge pull request #340 from rtyler/ldap-a-record
Add an A record for ldap.jenkins.io
2016-04-16 17:25:35 -07:00
R. Tyler Croy 40d871e2c3
Add an A record for ldap.jenkins.io 2016-04-16 17:17:15 -07:00
R. Tyler Croy 50cf40bae0 Merge pull request #339 from rtyler/unclogged-the-puppets
Express the proper relationship to the Package[httpd] resource
2016-04-16 17:16:58 -07:00
R. Tyler Croy 2bfa8e3695
Express the proper relationship to the Package[httpd] resource
The 'apache2' package is installed on Ubuntu by puppetlabs/apache but the resource
in the catalogue is actually Package[httpd]. Likely for convenience-sake inside
of the apache module.
2016-04-16 17:04:50 -07:00
R. Tyler Croy 283bc29157 Merge pull request #337 from rtyler/ldap-vagrant
Vagrant-based testing of our ldapserver role
2016-04-16 15:12:18 -07:00
R. Tyler Croy 88b5524a5d
Update the vagrant bootstrapping to pull a more recent puppet from apt.puppetlabs.com 2016-04-16 15:02:42 -07:00
R. Tyler Croy d47b783ab6
Add a basic serverspec file for the ldapserver role 2016-04-16 15:02:35 -07:00
R. Tyler Croy 2b18768117
Make our assumption that slapd will listen on a unix socket explicit
Based on comments from #334
2016-04-16 15:02:35 -07:00
R. Tyler Croy 47913474e5
Properly bail out from creating vagrant nodes for roles which have no serverspec
Really, everything should have serverspec, but sometimes we just don't :(
2016-04-16 15:02:31 -07:00
R. Tyler Croy 2a723fd8ec Merge pull request #335 from jenkins-infra/l10n-server
[INFRA-638] Adding a managed l10n server
2016-04-16 14:49:14 -07:00
Kohsuke Kawaguchi 031f2ac949 Merge branch 'staging' into l10n-server 2016-04-16 14:21:18 -07:00
Kohsuke Kawaguchi 4cbb2abcd2 [INFRA-638] Adding a managed l10n server 2016-04-16 14:06:38 -07:00
R. Tyler Croy da8e489afd Merge pull request #334 from rtyler/ldap-ssl
Enable the appropriate interfaces for the openldap server
2016-04-16 13:44:41 -07:00
R. Tyler Croy 911bfd287e
Enable the appropriate interfacez for the openldap server 2016-04-16 13:25:26 -07:00
R. Tyler Croy 3b192a14e6 Merge pull request #330 from rtyler/ldap-coalescing
Merge profile::openldap into profile::ldap
2016-04-16 11:21:45 -07:00
R. Tyler Croy 90b15cd933
A node with the certname `ldap` running ldap? How delightfully absurd
[FIX INFRA-1]
2016-04-16 10:58:31 -07:00
R. Tyler Croy 604b8d376a
Remove the kale role
When we move into The Cloud (tm) our machines will finally stop being pets and
start being cattle.
2016-04-16 10:58:02 -07:00
R. Tyler Croy ed89719c27
Merge profile::openldap work into profile::ldap 2016-04-16 10:57:44 -07:00
R. Tyler Croy cefe375164
Correct a type and pull down the right camptocamp/openldap module for tests 2016-04-16 10:57:44 -07:00
Spencer Krum 6241ad483b
Setup openldap server via puppet
This uses the camptocamp openldap module. It defines a new host called
kale since cucumber is likely not the new host for holding an ldap
server.

New hiera keys:

ldap_rootpw (string)

New depenedencies:

libaugeas-ruby (for camptocamp/openldap)
2016-04-16 10:57:42 -07:00
R. Tyler Croy 214e6f6f2d Merge pull request #332 from jenkins-infra/galapagos
Add a build more cross-platform support for profile::buildslave
2016-04-16 09:29:44 -07:00
R. Tyler Croy 9dd80c4356
Allow ruby management on build nodes to be disabled for Mac OS X 2016-04-16 09:20:59 -07:00
R. Tyler Croy a1006fac41
Introduce a Mac buildnode role.
This is the first role that doesn't have a vegetable associated with it. As we
move towards more of a cloud-based infrastructure, our roles need to slowly
morph into the roles for a node instead of our "pet" machines we have right now.

This commit makes provisioning Docker on a profile::buildslave optional, since
Mac OS X is not going to run docker.

[FIX INFRA-601]
2016-04-16 09:20:51 -07:00
R. Tyler Croy 5a06659090 Merge pull request #329 from jenkins-infra/ldap-reset-script
Adding an ops script that resets LDAP password en mass
2016-04-16 07:16:54 -07:00
Kohsuke Kawaguchi 9b13a4d355 tab messup 2016-04-15 19:51:14 -07:00
Kohsuke Kawaguchi 41d5a4a96e Adding an ops script that resets LDAP password en mass 2016-04-15 19:36:24 -07:00
Kohsuke Kawaguchi 5bef9bf7c4 Merge pull request #328 from jenkins-infra/new-osuosl-key
SSH key pair to be used to push bits into OSUOSL master mirror
2016-04-15 19:35:36 -07:00
Kohsuke Kawaguchi 3df9f94047 SSH key pair to be used to push bits into OSUOSL master mirror 2016-04-15 17:03:37 -07:00
R. Tyler Croy fac16f1015 Merge pull request #325 from jenkins-infra/galapagos
Upgrade to a new accounts module which purges unmanaged ssh keys
2016-04-12 15:14:09 -07:00
R. Tyler Croy 21dc75b56a
Upgrade our internal testing version of Puppet to 4 to match production 2016-04-12 15:00:26 -07:00
R. Tyler Croy e478268262
Upgrade to a new accounts module which purges unmanaged ssh keys 2016-04-12 14:33:24 -07:00
R. Tyler Croy 511a67e4bb Merge pull request #323 from rtyler/new-ssh-key
New ssh key for danielbeck
2016-04-12 13:08:28 -07:00
R. Tyler Croy 93f76121c1
New ssh key for danielbeck 2016-04-12 12:48:02 -07:00
R. Tyler Croy 03731e87c5 Merge pull request #321 from rtyler/new-account-app
Deploy a new account app with fewer remote calls
2016-04-08 13:00:25 -07:00
R. Tyler Croy b113b7e484
Deploy a new account app with fewer remote calls
See jenkins-infra/account-app#93
2016-04-08 12:50:05 -07:00
R. Tyler Croy e537fb0c84 Merge pull request #319 from jenkins-infra/galapagos
Support for Darwin-based systems
2016-04-07 22:10:09 -07:00
R. Tyler Croy a62585f3df
Roll out the updated puppet.jenkins.io A record 2016-04-07 21:59:31 -07:00
R. Tyler Croy 3e52b8a66a
Bump to a more Darwin-friendly version of the accounts module 2016-04-07 21:55:07 -07:00
R. Tyler Croy d37cf7a3f6
Make sure the base profile provisions on OS X properly
This is next to impossible to test outside of running on an /actual/ Mac
attached to an /actual/ Puppet master right now. So this is a first stab at
things to run in a user specified environment

References INFRA-601
2016-04-07 21:55:07 -07:00
R. Tyler Croy 6af01c2d84
Remove out-dated client specific yaml 2016-04-07 21:55:07 -07:00
R. Tyler Croy 1941bacb58
Remove old r10k_options hiera data 2016-04-07 21:55:07 -07:00
R. Tyler Croy 0874dd9b30
We're in the future now, no need to be explicit about this!
In fact, with PE 2016.1.1 this causes a warning on every puppet run. =_=
2016-04-07 18:34:22 -07:00
R. Tyler Croy 26fda08b4d Merge pull request #318 from rtyler/irc4
Upgrade to a puppet4 compatible puppet-irc module
2016-04-07 17:50:49 -07:00
R. Tyler Croy 9c9f4e3b31
Upgrade to a puppet4 compatible puppet-irc module 2016-04-07 17:41:30 -07:00
R. Tyler Croy 033027fd08 Merge pull request #317 from rtyler/how-many-gem-modules-are-there
Use the appropriate puppetserver_gem module for managing PE gems
2016-04-07 17:29:58 -07:00
R. Tyler Croy 2aa8c159ca
Use the appropriate puppetserver_gem module for managing PE gems 2016-04-07 17:23:19 -07:00
R. Tyler Croy ea51cce71e Merge pull request #316 from rtyler/manage-r10k
Re-introduce basic r10k management into jenkins-infra
2016-04-07 17:02:21 -07:00
R. Tyler Croy 5c4210e34c
Re-introduce basic r10k management into jenkins-infra
This is already manually set up on the PE 2016.1.1 machine, this simply ensures
that the configuration is managed and updated in the future
2016-04-07 16:56:19 -07:00
R. Tyler Croy c7d3f6dac4 Merge pull request #315 from rtyler/new-keys-module
Update to a new jenkins-keys module which properly uses the puppetserver_gem provider on PE 2016.1.1
2016-04-07 16:56:02 -07:00
R. Tyler Croy cea6ff9d76
Update to a new jenkins-keys module which properly uses the puppetserver_gem provider on PE 2016.1.1 2016-04-07 16:48:09 -07:00
R. Tyler Croy 60c2e7aa33 Merge pull request #313 from rtyler/pe2016_hiera
Reference the right hieradata path for the newer versions of PE
2016-04-07 16:39:25 -07:00
R. Tyler Croy 8cd6ecf998
Reference the right hieradata path for the newer versions of PE 2016-04-07 16:25:03 -07:00
R. Tyler Croy 27fe41857a Merge pull request #312 from rtyler/validate_actually_validates
Ensure that the uid passed into docker::run() is a string
2016-04-06 15:57:37 -07:00
R. Tyler Croy 68eb066479 Merge branch 'staging' into validate_actually_validates 2016-04-06 15:50:44 -07:00
R. Tyler Croy 44e2d6d16b
Ensure that the uid passed into docker::run() is a string
docker::run() uses validate_string($username), and apparently under the Puppet 4
parser this is actually resulting in an error at catalogue compile-time which
should have been happening regardless.

    Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Evaluation Error: Error while evaluating a Function Call, 2002 is not a string.  It looks to be a Fixnum at /etc/puppetlabs/puppet/environments/staging/modules/docker/manifests/run.pp:44:5 on node kelp
    Warning: Not using cache on failed catalog
    Error: Could not retrieve catalog; skipping run

It seems in the legacy Puppet parser $uid was being coerced into a String, which
is goofy. What is this, JavaScript?
2016-04-06 15:44:06 -07:00
R. Tyler Croy 28e9482bf8 Merge pull request #310 from rtyler/dont-believe-the-hyphen
Remove hyphenated class names which are invalid in Puppet 4
2016-04-06 15:22:36 -07:00
R. Tyler Croy eff4cbe3ba
Remove hyphenated class names which are invalid in Puppet 4
I should have caught this earlier, but didn't, woops.
2016-04-06 14:29:42 -07:00
R. Tyler Croy 19494633dd Merge pull request #309 from jenkins-infra/pe_2015.3.3
Prepare for PE 2015.3.3
2016-04-06 09:53:16 -07:00
R. Tyler Croy d8f3fa1fd3
Ensure the `validate` Rake task uses the future parser for Puppet4 compat 2016-04-06 09:06:22 -07:00
R. Tyler Croy db31bf3672
tag is actually a meta-parameter in Puppet and shouldn't be overriden.
<https://docs.puppetlabs.com/puppet/latest/reference/metaparameter.html#tag>
2016-04-05 16:44:45 -07:00
R. Tyler Croy 9f29f33e67
Update the puppet-accont module to be more Puppet 4 compatible 2016-04-05 16:39:09 -07:00
R. Tyler Croy 35bbe3de1a
Enable the future parser to start working towards Puppet 4 2016-04-05 16:24:01 -07:00
R. Tyler Croy cc03dc1517 Merge pull request #307 from rtyler/misc-576-fixes
Misc fixes related to INFRA-576
2016-04-05 11:52:41 -07:00
R. Tyler Croy 5181de42e3
Change the name of the eggplant node to match the new cert name 2016-04-05 11:43:48 -07:00
R. Tyler Croy 5661476f0c
remove the PE Console SMTP server setting for now
This might now longer be necessary, but with 3.8.4 something else is trying to
manage this file, resulting in constant changes on the master
2016-04-05 11:43:42 -07:00
R. Tyler Croy 5de818bf08
Ensure our environment_timeout is set to zero to disable caching 2016-04-05 11:43:41 -07:00
R. Tyler Croy c51b2335ad Merge pull request #305 from jglick/patch-1
IRC bot build 50
2016-04-05 07:37:02 -07:00
Jesse Glick 170b439b45 IRC bot build 50 2016-04-04 18:25:48 -04:00
R. Tyler Croy 2d367ef62c Merge pull request #303 from jenkins-infra/new_pe
Support the new PE master
2016-04-01 11:00:12 -07:00
R. Tyler Croy 78301440a7
Remove the profile::r10k from the puppetmaster role
This r10k webhook is old and crufty, we should update our r10k update mechanism

See also INFRA-27
2016-04-01 10:51:07 -07:00
R. Tyler Croy aaab509ad9
Disable duplicate resource for Service[pe-puppetserver]
The classification for the puppetserver node already has this resource declared,
so we'll just ensure that it's present and running
2016-04-01 10:51:04 -07:00
R. Tyler Croy b5e1a5a5ff
Switch the hostname for the new puppetmaster to reflect reality 2016-04-01 08:49:12 -07:00
R. Tyler Croy 0b65ccfcb3 Merge pull request #301 from jenkins-infra/new_pe
Update site.pp for use on the new Puppet Enterprise host
2016-03-31 17:49:38 -07:00
R. Tyler Croy 5b049632c0
Update site.pp for use on the new Puppet Enterprise host
References INFRA-576
2016-03-31 17:40:09 -07:00
R. Tyler Croy 6cd025a4bd Merge pull request #299 from rtyler/custom-environment-conf
Custom environment conf
2016-03-29 21:37:58 -07:00
R. Tyler Croy b011686e3c Merge branch 'staging' into custom-environment-conf 2016-03-29 21:07:00 -07:00
R. Tyler Croy 988de53e45
Insert our environment.conf directly into the control repo
This will make sure newer versions of PE will properly find our dist/ modules
2016-03-29 19:38:11 -07:00
R. Tyler Croy 28e8c73134 Merge pull request #297 from jenkins-infra/rtyler-patch-1
Incorporate some of the latest account-app changes
2016-03-28 14:50:00 -07:00
R. Tyler Croy d5ad9d378a Incorporate some of the latest account-app changes 2016-03-28 14:36:24 -07:00
R. Tyler Croy 31f47c1db1
Add some RSpec Puppet to verify that we're doing the right thing for datadog/apache integration 2016-03-25 15:18:31 -07:00
R. Tyler Croy 2514d5d8d6 Merge pull request #295 from rtyler/mpm_event
Use a better worker module for Apache when serving the static site
2016-03-25 14:45:27 -07:00
R. Tyler Croy 5c03360f37
Use a better worker module for Apache when serving the static site
I've already made this change in production due to an active site issue (HN hug
of death). This codifies that change for posterity
2016-03-25 14:14:03 -07:00
R. Tyler Croy db9f3a4392 Merge pull request #293 from rtyler/account-app-needs-to-know-jira
Account app needs to know jira
2016-03-24 07:18:30 -07:00
R. Tyler Croy b47722aed9
Make sure the jira-ldap-syncer code has access to LDAP too 2016-03-24 07:11:49 -07:00
R. Tyler Croy b76fb4419f
Upgrade the accountaoo to something that respects our JIRA environment vars 2016-03-24 07:02:46 -07:00
R. Tyler Croy 81fc717da4
Pass JIRA information into the accountapp so it can sync accounts properly 2016-03-24 07:00:27 -07:00
R. Tyler Croy 7cec5ac04d Merge pull request #291 from rtyler/more-tls-plz
One more build, this time with https
2016-03-23 20:43:42 -07:00
R. Tyler Croy 61f1c4fd7d
One more build, this time with https 2016-03-23 20:33:04 -07:00
R. Tyler Croy 5890f85413 Merge pull request #289 from rtyler/new-accountapp-theme
Roll the new account-app with a new look thanks to @kohsuke
2016-03-23 20:06:14 -07:00
R. Tyler Croy 2915a036b2
Roll the new account-app with a new look thanks to @kohsuke 2016-03-23 19:58:23 -07:00
R. Tyler Croy 1c2736720b Merge pull request #287 from rtyler/misc-tidiness
Miscellaneous post-deploy fixens
2016-03-23 19:26:05 -07:00
R. Tyler Croy b2339d579a
Upgrade toe a more recent version of puppetlabs/apache which has good SSL defaults
Basically with 1.8.1 bad versions of SSL are disabled automatically, yey.
2016-03-23 18:54:38 -07:00
R. Tyler Croy a73859faad
Upgrade to an account-app that actually uses the url from its configuration 2016-03-23 18:44:24 -07:00
R. Tyler Croy 55b3ad33b8 Merge pull request #285 from rtyler/off-the-chain
Include the certificate chain to properly serve our TLS content
2016-03-23 18:38:45 -07:00
R. Tyler Croy 400c85423a
Include the certificate chain to properly serve our TLS content
Thanks to @dblessing and @piru for the help identifying this issue and the fix
2016-03-23 18:29:04 -07:00
R. Tyler Croy dff0949428 Merge pull request #283 from rtyler/install-letsencrypt-certs
Pick up the proper SSL certificates from letsencrypt on disk
2016-03-23 17:29:22 -07:00
R. Tyler Croy 53c2427f5e Merge pull request #282 from rtyler/new-accountapp
Upgrade the accountapp container to live at the root of its jetty`
2016-03-23 17:22:21 -07:00
R. Tyler Croy c24867d4d0
Pick up the proper SSL certificates from letsencrypt on disk 2016-03-23 17:21:58 -07:00
R. Tyler Croy c917c47f5e
Upgrade the accountapp container to live at the root of its jetty installation 2016-03-23 17:11:04 -07:00
R. Tyler Croy f7ea728577 Merge pull request #278 from rtyler/accounts-subdomain-613
Puppetize the accounts-app and move it over to eggplant
2016-03-23 16:52:43 -07:00
R. Tyler Croy 12db0ac758
Only request certificates from letsencrypt.org when we're in production
The challenge here is that when we're running in vagrant/serverspec, letsencrypt
won't be able to complete the challenge to verify the authenticity of our
request.
2016-03-23 16:41:03 -07:00
R. Tyler Croy e7cf5756ba
Start preparing the vhosts for jenkins.io switchover
References WEBSITE-51
2016-03-23 16:21:53 -07:00
R. Tyler Croy db02248018
Move the letsencrypt setup out to its own profile for reuse 2016-03-23 16:21:53 -07:00
R. Tyler Croy 708ca3e690
Explicitly invoke hiera() for declaring the letsencrypt class
22:26 < rtyler> danzilio: so if I use a class declaration with explicit calls to hiera() this works
    22:27 < rtyler> danzilio: I believe this is because $email is a param on letsencrypt::config and $server is not
    22:27 < rtyler> so the hiera class param mashing is discarding it

*shrug*
2016-03-23 16:02:20 -07:00
R. Tyler Croy e84e589063
Ensure the vagrant yaml configuration takes highest priority
Otherwise, production values will always show up in testing
2016-03-23 16:02:20 -07:00
R. Tyler Croy cea0a63fd1
Incorporate @danzilio's great letsencrypt module for managing our certificates
The only "hitch" here is that we need to roll DNS entries out ahead of these
vhost changes to make sure that letsencrypt servers can find the right domain
when this hits production
2016-03-23 16:02:20 -07:00
R. Tyler Croy c362395237
Add apache vhosts for serving up accounts.jenkins.io
puppetlabs/apache really does make all this so much easier than doing it
manually. ❤️
2016-03-23 16:02:20 -07:00
R. Tyler Croy 85045442e3
Include apache::mod::proxy* modules in a safer manner
This ensures we don't hit any duplicate resource declaration warnings, which can
happen since apache::vhost with the proxy_pass directive will attempt to declare
a resource for apache::mod::proxy
2016-03-23 16:02:20 -07:00
R. Tyler Croy 01e0c9d0f5
Introduce profile::accountapp with parameters for configuring the account-app container
Fixes INFRA-11, INFRA-613
2016-03-23 16:02:20 -07:00
R. Tyler Croy aa6b25c865
Allow accounts.jenkins.io to access LDAPs 2016-03-23 16:02:20 -07:00
R. Tyler Croy 1b40885c93
Add a basic shared example to ensure a host is running Docker properly 2016-03-23 16:02:06 -07:00
R. Tyler Croy a3d9388141
Create a distinction between SSL enable Apache serverspec and not
Basically if profile::apache-cert isn't included in a role, the Apache instance
will correctly not have any SSL enabled bits.

This updates our serverspec to reflect that appropriately
2016-03-23 16:02:06 -07:00
R. Tyler Croy f2a0f956ba
Create scaffolding and CNAMEs 2016-03-23 16:02:06 -07:00
R. Tyler Croy 4959ec999c Merge pull request #279 from rtyler/accounts
Create CNAMes for accounts.j.io
2016-03-23 15:55:45 -07:00
R. Tyler Croy c14b93fed4
Create CNAMes for accounts.j.io 2016-03-23 15:45:12 -07:00
R. Tyler Croy aaf0cd43fe Merge pull request #276 from rtyler/530
Prune legacy site deployments after a new site deployment completes
2016-03-21 14:08:37 -07:00
R. Tyler Croy 1960ee471c
Prune legacy site deployments after a new site deployment completes
Fixes INFRA-530
2016-03-21 13:53:42 -07:00
R. Tyler Croy 0f4590fe1f Merge pull request #274 from jenkins-infra/no-recursive-dns
Upgrade to the latest bind container which prohibits recursive queries
2016-03-15 16:06:27 -07:00
R. Tyler Croy e104e72cd4
Upgrade to the latest bind container which prohibits recursive queries 2016-03-15 15:34:20 -07:00
Kohsuke Kawaguchi 34ff99f013 Merge pull request #272 from rtyler/infra-6000
Create a new profile for managing a Jenkins master
2016-03-07 18:08:58 -08:00
R. Tyler Croy aab8aa22d6
Create a new profile for managing a Jenkins master
Right now this will obviously only be applied to Cucumber, but hopefully this
allows us to get to the point where we can migrate ci.j.o off that host
entirely

Fixes INFRA-600
2016-03-07 17:48:02 -08:00
R. Tyler Croy 205a3d1768 Merge pull request #270 from rtyler/reduce-cycling-on-kelp
Use the docker::image resource to prevent repeated pulls of 'latest'
2016-03-03 09:12:30 -08:00
R. Tyler Croy 245b5a2678
Use the docker::image resource to prevent repeated pulls of 'latest' tags 2016-03-03 08:14:55 -08:00
R. Tyler Croy e273b98d08 Merge pull request #268 from jenkins-infra/certs
New certificates for JIRA and Confluence
2016-02-28 20:47:08 -08:00
Kohsuke Kawaguchi ed3d9b5e38 New certificates for JIRA and Confluence 2016-02-28 20:38:55 -08:00
Kohsuke Kawaguchi db2c4b6579 Merge pull request #266 from jenkins-infra/demo
Demo instance wave #3
2016-02-25 18:40:37 -08:00
Kohsuke Kawaguchi a12d6976bc demo instance is locked down enough that it can be exposed to public now
I need this for GitHub to be able to deliver a hook
2016-02-25 18:22:03 -08:00
Kohsuke Kawaguchi 49e93eaabe restart demo instance when the definition changes
For example, when the new image is specified
2016-02-25 18:22:03 -08:00
Kohsuke Kawaguchi a7cc3991d8 Merge pull request #264 from jenkins-infra/demo
demo.jenkins-ci.org wave 2
2016-02-25 16:29:48 -08:00
Kohsuke Kawaguchi e10f9f3a84 Fix up tests 2016-02-25 16:24:28 -08:00
Kohsuke Kawaguchi 94975e179c Missed earlier renaming effort 2016-02-25 16:16:56 -08:00
Kohsuke Kawaguchi 9ebb1ae70b Need a newer version
... as this version contains Pipeline as Code
2016-02-25 16:16:47 -08:00
R. Tyler Croy 23ba5df1a1 Merge pull request #262 from jenkins-infra/jenkins2demo
Deploy Jenkins 2.0 demo site
2016-02-25 15:42:34 -08:00
Kohsuke Kawaguchi d6799a230b Renamed to 'demo' based on Tyler's feedback 2016-02-25 15:19:35 -08:00
Kohsuke Kawaguchi 2fa5544a98 Make mod_proxy available by default
Most of the time we use Apache to reverse proxy, so it makes sense to just enable them out of the box all the time.
There's little harm in enabling this mod without using it.
2016-02-25 14:45:57 -08:00
Kohsuke Kawaguchi 8f63cbe91a Wired up to Apache to reverse proxy 2016-02-25 14:45:05 -08:00
Kohsuke Kawaguchi 71a39edada Deploying this on an available box
It could have been anything but kelp looks empty enough
2016-02-25 14:45:05 -08:00
Kohsuke Kawaguchi 81920bfbe9 this is how we do it in Vagrant 1.7+
See https://www.vagrantup.com/docs/providers/basic_usage.html
2016-02-25 14:45:05 -08:00
Kohsuke Kawaguchi ebcfc3ebd8 added a module to launch Jenkins 2 for demonstration 2016-02-25 14:45:05 -08:00
R. Tyler Croy b81e625a6b Merge pull request #260 from daniel-beck/ircbot-build46
Update ircbot
2016-02-24 14:36:50 -08:00
Daniel Beck dcf2e46ed0 Update ircbot 2016-02-24 23:25:09 +01:00
R. Tyler Croy 08d168f537 Merge pull request #259 from larrys/patch-2
Helps if I copy the right public key.
2016-02-24 11:25:28 -08:00
Larry Shatzer, Jr 19db74cb17 Helps if I copy the right public key. 2016-02-24 11:47:05 -07:00
R. Tyler Croy c3d09a6226 Merge pull request #258 from larrys/patch-1
Adding ssh key to lshatzer
2016-02-24 10:39:10 -08:00
Larry Shatzer, Jr 02f545b913 Adding ssh key to lshatzer 2016-02-24 11:29:20 -07:00
R. Tyler Croy 6422b5dcef Merge pull request #256 from rtyler/purge-cabbage
Remove cabbage files as the machine has since passed on
2016-02-20 14:08:33 -08:00
R. Tyler Croy 34519670c3 Merge branch 'staging' into purge-cabbage 2016-02-20 14:06:11 -08:00
R. Tyler Croy 6eb338e87d Merge pull request #255 from rtyler/infra-572
Provision spinach as a proper Jenkins buildslave
2016-02-20 14:06:03 -08:00
R. Tyler Croy c76fb050c0
Remove cabbage files as the machine has since passed on 2016-02-20 14:00:57 -08:00
R. Tyler Croy 76661b3c89
Provision spinach as a proper Jenkins buildslave
Fixes INFRA-572
2016-02-20 13:58:40 -08:00
R. Tyler Croy 6d16ca05d8 Merge pull request #253 from rtyler/infra-390
Fix INFRA-390
2016-02-20 12:59:06 -08:00
R. Tyler Croy b73530c17f
Disable SSLv2/3 for all apache2 hosts
Fixes INFRA-390
2016-02-20 12:48:08 -08:00
R. Tyler Croy f7123deed1 Merge pull request #252 from rtyler/infra-514-fixes
Fixes accompanying INFRA-514
2016-02-20 12:23:29 -08:00
R. Tyler Croy 9a863c40eb
Whoops, can't provision m4.larges outside of a VPC 2016-02-20 12:20:02 -08:00
R. Tyler Croy b65335a841
Upgrade the vagrant-aws testing instances to stock 14.04 AMIs
Now that we're fairly consistent at 14.04.4 all future serverspec testing
should be happening against it.

References INFRA-514
2016-02-20 12:13:02 -08:00
R. Tyler Croy 005992f481
Update the remainder of /usr/sbin/rotatelogs references
References INFRA-514
2016-02-20 11:11:11 -08:00
R. Tyler Croy e11baf4399
Correct the same erroneous apache configuration I saw on archive.jenkins-ci.org
References INFRA-514
2016-02-20 11:11:05 -08:00
R. Tyler Croy 5fbd4c3f76
On the apache2 package distributed with 14.04.4, rotatelogs has moved
I've set up a symbolic link from /usr/sbin/rotatelogs on okra for now to
accomodate this

References INFRA-514
2016-02-20 10:12:40 -08:00
R. Tyler Croy ec0f0e24c9
Fix typo in the archives vhost snippet
The directory "archive.jenkins.org" doesn't actually exist anywhere

References INFRA-514
2016-02-20 10:12:14 -08:00
R. Tyler Croy 5ad462136d Merge pull request #250 from rtyler/more-bits
Add the other IPv6 addresses for our nodes which are running in Rackspace Cloud
2016-02-18 16:48:00 -08:00
R. Tyler Croy ada4468e92
Add the other IPv6 addresses for our nodes which are running in Rackspace Cloud 2016-02-18 16:23:05 -08:00
R. Tyler Croy 5f4656326f Merge pull request #248 from rtyler/package-docker
Turns out rspec-puppet doesn't validate that required resource is in the catalogue
2016-02-18 14:52:02 -08:00
R. Tyler Croy 7cf7908071
Turns out rspec-puppet doesn't validate that required resource is in the catalogue
Fixes INFRA-573
2016-02-18 14:45:37 -08:00
R. Tyler Croy dc3f857029 Merge pull request #247 from rtyler/i-before-e-except-after-c
Ensure the docker group exists before we attempt to great the 'jenkins' user
2016-02-18 14:28:35 -08:00
R. Tyler Croy 566c5c8f4e
Ensure the docker group exists before we attempt to great the 'jenkins' user
Fixes INFRA-573
2016-02-18 14:19:53 -08:00
R. Tyler Croy 915e81bbb7 Merge pull request #245 from rtyler/kelp-dns
Add A and AAAA records for kelp
2016-02-18 13:57:27 -08:00
R. Tyler Croy 549fdf98c0
Add A and AAAA records for kelp
IPv6: http://cloud-3.steamusercontent.com/ugc/539644405494556317/47C2F86059C34ABA50098707C2A959F1E3327B08/
2016-02-18 13:50:15 -08:00
R. Tyler Croy 915bf85abc Merge pull request #244 from rtyler/kelp-is-on-the-way
Provision Kep as a new machine in our rackspace account
2016-02-18 13:44:05 -08:00
R. Tyler Croy 94ef9cbe84
Provision Kep as a new machine in our rackspace account
Cabbage is dead y'all

References INFRA-570
2016-02-18 13:23:52 -08:00
R. Tyler Croy 748ed24948 Merge pull request #242 from rtyler/atlassian-dockerizer
Expand the list of commands atlassian-admins can touch to /usr/bin/docker
2016-02-15 13:50:20 -08:00
R. Tyler Croy 2a1b3b1e01
Expand the list of commands atlassian-admins can touch to /usr/bin/docker
This should ensure that atlassian-admins can inspect and interact with the
containers running atlassian services
2016-02-13 19:16:28 -08:00
R. Tyler Croy 6f50f652c4 Merge pull request #240 from rtyler/new-confluence
Use a confluence container with a proper oomkill script
2016-02-13 08:18:48 -08:00
R. Tyler Croy fcbf26dea6
Use a confluence container with an oomkill script instead 2016-02-12 16:38:13 -08:00
R. Tyler Croy eef6ca7e63 Merge pull request #238 from rtyler/new-confluence
Bump confluence again
2016-02-12 15:19:52 -08:00
R. Tyler Croy 36755c57a9
Bump confluence again 2016-02-12 15:12:00 -08:00
R. Tyler Croy f9c56e3de6 Merge pull request #236 from rtyler/new-confluence
Deploy the newest build of confluence
2016-02-12 14:25:31 -08:00
R. Tyler Croy d6cefca6ed
Deploy the newest build of confluence
Fixes INFRA-383
2016-02-12 13:32:45 -08:00
R. Tyler Croy d683f162bf Merge pull request #234 from rtyler/deploy-site-fix
Handle sorting by the version numbers when selecting an archive
2016-02-12 12:36:04 -08:00
R. Tyler Croy cda74d378f
Handle sorting by the version numbers when selecting an archive to deploy properly 2016-02-12 12:23:35 -08:00
R. Tyler Croy b5ffa99757 Merge pull request #232 from rtyler/firewallfix
Include the properly scoped "root" firewall module
2016-02-11 15:11:06 -08:00
R. Tyler Croy bad6345893
Include the properly scoped "root" firewall module 2016-02-11 14:59:13 -08:00
R. Tyler Croy 69eb9358eb Merge pull request #231 from rtyler/managing-openldap
Start managing slapd inside of jenkins-infra
2016-02-11 13:59:17 -08:00
R. Tyler Croy 6fbbeb9240
Add firewall rules from infra-puppet for managing slapd
This commit also introduces the passing, but basic, serverspec tests for ldap
2016-02-11 13:41:58 -08:00
R. Tyler Croy 080fc8c69a
Incorporate process monitoring for slapd on the profile::ldap module
Fixes INFRA-560
2016-02-09 08:58:17 -08:00
R. Tyler Croy dbe2b7abc1
Ensure we have the diagnostics tools on cucumber now 2016-02-09 08:06:45 -08:00
R. Tyler Croy d45e1b7514
Import management of openldap from infra-puppet into the jenkins-infra code
This should make it easier to add additional monitoring around slapd on
cucumber right now

References INFRA-560
2016-02-09 08:00:26 -08:00
R. Tyler Croy 322277025b Merge pull request #230 from rtyler/minor-zonefile-fix
Correct a warning in our jenkins-ci.org zonefile
2016-02-08 09:30:55 -08:00
R. Tyler Croy e888c073a9
Correct a warning in our jenkins-ci.org zonefile
non-fatal, but about time to fix it

    docker run --rm -v $PWD:/data kohsuke/named-checkzone -k fail jenkins-ci.org dist/profile/files/bind/jenkins-ci.org.zone
    zone jenkins-ci.org/IN: jenkins-ci.org/MX 'gherkin.jenkins-ci.org' is a CNAME (illegal)
    zone jenkins-ci.org/IN: loaded serial 2011122901
2016-02-08 08:59:01 -08:00
R. Tyler Croy 3f4244149f Merge pull request #228 from rtyler/upstreamed-datadog-agent
Upgrade to the datadog_agent module 1.6.0
2016-01-23 00:12:04 -08:00
R. Tyler Croy 0bcab5b305
Upgrade to the datadog_agent module 1.6.0 which contains some of our modifications 2016-01-22 22:39:27 -08:00
Kohsuke Kawaguchi 777c8c153f Merge pull request #226 from jenkins-infra/mailgun
Adding MX record for receiving emails
2016-01-22 11:56:47 -08:00
Kohsuke Kawaguchi fcaf02cdb9 Fixing warning based on named-checkzone 2016-01-22 11:38:04 -08:00
Kohsuke Kawaguchi 7a91d18e42 Adding MX record for receiving emails 2016-01-22 11:35:26 -08:00
R. Tyler Croy 9aadc164ec Merge pull request #225 from rtyler/new-jenkinsfile
New Jenkinsfile that's ready for running the builds
2016-01-20 16:22:27 -08:00
R. Tyler Croy ca3171c4d9
Add dockerfile for building the appropriate jenkins-infra test image 2016-01-20 12:21:47 -08:00
R. Tyler Croy c9ca176870
Introduce more gizmos with parallel() to break the work across nodes 2016-01-20 11:51:57 -08:00
R. Tyler Croy d37ff9e4ad
Take a stab at a fairly simplistic, linear Jenkinsfile for this repo 2016-01-20 11:51:46 -08:00
R. Tyler Croy 80596114b6 Merge pull request #223 from rtyler/manual-serverspec-sucks
Ensure that the Apache installation fronting JIRA has mod_rewrite ena…
2016-01-18 11:11:02 -08:00
R. Tyler Croy e7e449f34d
Ensure that the Apache installation fronting JIRA has mod_rewrite enabled
This type of thing is unfortunately still only caught by manual testing >_<
2016-01-18 10:22:59 -08:00
R. Tyler Croy 9585b9fae9 Merge pull request #222 from rtyler/jira-bots
Add the bot abuse prevention measures to JIRA
2016-01-18 10:17:14 -08:00
R. Tyler Croy 27574ca793
Add the bot abuse prevention measures to JIRA
Since these were deployed on confluence, no sense not to have them on JIRA too
2016-01-18 09:56:37 -08:00
R. Tyler Croy 1ff467d973 Merge pull request #220 from rtyler/old-confluence-container-blergh
Revert "Revert "Revert "Upgrade confluence build to include some sett…
2016-01-17 19:15:53 -08:00
R. Tyler Croy 97cc080077
Revert "Revert "Revert "Upgrade confluence build to include some settings changes"""
This reverts commit a12752195e.

Everything equal it appears that disabling LDAP caching causes Confluence to
become overwhelmed with the inbound requests
2016-01-17 19:00:10 -08:00
R. Tyler Croy f9336602a7 Merge pull request #218 from rtyler/rewrite-foo
Prevent bots from hammering the wiki by nuking them directly from apache
2016-01-17 18:41:21 -08:00
R. Tyler Croy 675e4bdfc7
Prevent bots from hammering the wiki by nuking them directly from apache
Also prevent any bots from hitting /label which is a pretty big spam vector
2016-01-17 18:31:41 -08:00
R. Tyler Croy f223a6986d Merge pull request #216 from rtyler/cleaner-confluence-linking
Cleaner confluence linking
2016-01-17 16:48:46 -08:00
R. Tyler Croy a12752195e
Revert "Revert "Upgrade confluence build to include some settings changes""
This reverts commit 191cc93a8f.

See my previous commit, this was an erroneous rollback on my part
2016-01-17 16:34:34 -08:00
R. Tyler Croy f95c0e6780
Remove hacky hard-coding of IP addresses when binding confluence and confluence-cache together
This took me an awful long time to figure out, the IP addresses used on the
production host didn't really guarantee that they would be there after reboots,
etc.

I had previously misattributed an availability failure of the recent confluence
container tag to be the container, but really it was this hard-coded IP address
which was no longer correct.

By using --link we ensure that the confluence-cache container gets updated with
the appropriate /etc/hosts information to hit confluence:8080
2016-01-17 16:34:29 -08:00
R. Tyler Croy c0ada2e0e1 Merge pull request #214 from rtyler/previous-confluence-cache
Revert "Upgrade confluence build to include some settings changes"
2016-01-17 14:15:50 -08:00
R. Tyler Croy 191cc93a8f
Revert "Upgrade confluence build to include some settings changes"
This reverts commit f13746f814.
2016-01-17 14:07:03 -08:00
R. Tyler Croy c2efca3400 Merge pull request #212 from rtyler/docker-consistency
Ensure that we're consistently running v1.8.1 across the cluster
2016-01-17 13:35:47 -08:00
R. Tyler Croy 0107e79b0a
Ensure that we're consistently running v1.8.1 across the cluster 2016-01-17 13:25:14 -08:00
R. Tyler Croy 6ebd041a0c Merge pull request #210 from rtyler/dockerhub-keys
Dockerhub keys for publishing from buildslaves
2016-01-14 11:47:40 -08:00
R. Tyler Croy 80af12aa73
Install the appropriate dockerhub deployment keys onto our buildslaves 2016-01-14 11:38:42 -08:00
R. Tyler Croy cb0ff4b5db
Refactor the buildslave shared contexts into their own file 2016-01-14 11:38:42 -08:00
R. Tyler Croy 6f19a7fa5d Merge pull request #209 from rtyler/infra-546
Set the hidden configuration "UseRoaming no" to prepare for impending…
2016-01-14 11:18:16 -08:00
R. Tyler Croy 34c2f516d3
Set the hidden configuration "UseRoaming no" to prepare for impending openssh vulnerability
See: http://www.mail-archive.com/misc@openbsd.org/msg144351.html

Fixes INFRA-546
2016-01-14 09:51:21 -08:00
R. Tyler Croy f6531051b3 Merge pull request #208 from jenkins-infra/docker-hub-key
Added a credential for pushing bits to Docker Hub
2016-01-13 22:26:22 -08:00
Kohsuke Kawaguchi e9c8f21e39 Added a credential for pushing bits to Docker Hub 2016-01-13 15:34:44 -08:00
R. Tyler Croy e63b1f12e9 Merge pull request #206 from rtyler/confluence-container-update
Upgrade confluence build to include some settings changes
2016-01-13 13:11:51 -08:00
R. Tyler Croy f13746f814
Upgrade confluence build to include some settings changes
This really needs to come out of the container IMHO, I should need a full
container rebuild for this
2016-01-13 13:00:11 -08:00
R. Tyler Croy d0165eb98e Merge pull request #204 from rtyler/staging
Ensure that the Jenkins buildslave can actually access docker
2016-01-12 16:51:42 -08:00
R. Tyler Croy 6e85943383
Ensure that the Jenkins buildslave can actually access docker
This is related to INFRA-544 but doesn't resolve that particular issue. When I
added `profile::docker` to the buildslave profile, I should have ensured that
the Jenkins user could actually interact with the running docker daemon
2016-01-12 16:36:58 -08:00
R. Tyler Croy b6bf4b96ef Merge pull request #202 from rtyler/infra-544
Ensure the make and build-essential packages are on all buildslaves
2016-01-12 16:20:35 -08:00
R. Tyler Croy 14632f5e5d
Ensure the make and build-essential packages are on all buildslaves
Contrary to my assumption these were not already present everywhere.

Fixes INFRA-544
2016-01-12 16:06:50 -08:00
R. Tyler Croy f6a531412f Merge pull request #200 from rtyler/ircbot-deploy
Ircbot deploy
2016-01-07 11:27:01 -08:00
R. Tyler Croy 69ce2d4003
Prepare ircbot build44 for deployment
This commit also includes a minor refactor to move the container's tag out into
hiera so it can be overwritten on an environment or client basis for easier
management
2016-01-07 10:42:15 -08:00
R. Tyler Croy 354f14d21b
Service jenkins.io requests from the beta site in addition to beta.jenkins.io 2015-12-31 12:30:18 -08:00
R. Tyler Croy e6115c5b48
Add a drupal cname for cucumber while we migrate the site
This will help identify/cross-reference any missing little pieces of content
2015-12-31 08:40:38 -08:00
R. Tyler Croy 6d05dd73a5
Drop github's actual hostkeys, not just the fingerprints onto buildslaves 2015-12-30 16:55:12 -08:00
R. Tyler Croy ac8547d438
Puppet Enterprise disagrees with the whitespaces in these resource names 2015-12-30 12:09:12 -08:00
R. Tyler Croy 3c604d381f Merge pull request #196 from rtyler/infra-529
Add the GitHub SSH host keys to build slaves
2015-12-30 11:40:02 -08:00
R. Tyler Croy a7a42c8c70
Add the GitHub SSH host keys to build slaves
Fixes INFRA-529
2015-12-30 11:30:40 -08:00
R. Tyler Croy 4efb41cbb0 Merge pull request #194 from rtyler/betasite-handling
Add support for deploying the new fancy beta site alongside legacy site
2015-12-28 18:37:04 -08:00
R. Tyler Croy c17af30da9
Add support for deploying the new fancy beta site alongside the legacy site 2015-12-28 18:28:11 -08:00
R. Tyler Croy 6d1d02dc00 Merge pull request #193 from rtyler/infra-527
Manage another previously unmanaged SSH key
2015-12-28 12:52:52 -08:00
R. Tyler Croy 125465fd9b
Introduce a previously unmanaged SSH private key for jenkins build nodes
Fixes INFRA-527
2015-12-28 12:37:53 -08:00
R. Tyler Croy 9728d68cc8
Add serverspec examples for cabbage 2015-12-28 12:25:40 -08:00
R. Tyler Croy b2d157e005 Merge pull request #191 from rtyler/infra-525
Enable hard fails for SPF records
2015-12-23 12:56:25 -08:00
R. Tyler Croy 32cd7b3b82
Enable more hard fails for SPF records
Fixes INFRA-525
2015-12-23 11:38:40 -08:00
R. Tyler Croy 6a687c85d5
TUrns out there's no version of stahnma/epel at 1.1.2
typo'd!
2015-12-23 11:15:46 -08:00
R. Tyler Croy 0064624565
Add a vhost for beta.jenkins.io 2015-12-22 16:20:23 -08:00
R. Tyler Croy e2a09e6e31
Bring some A records into jenkins.io and some basic cnames to get working 2015-12-22 16:17:49 -08:00
R. Tyler Croy 2ab762db9d
Revert "Upgrade to the latest support version of the puppetlabs-apt module"
This reverts commit 71cfdfa6c3.

I completely forgot that the current docker module we're using, and newer
versions of puppetlabs/apt do not play along together well at all. This wasn't
noticed because the AMI I'm using for integration testing has docker already
pre-installed

Conflicts:
	Puppetfile
2015-12-22 15:22:56 -08:00
R. Tyler Croy 8385c51585 Merge pull request #188 from rtyler/jenkins.io-zone
Introduce the basic zone file for jenkins.io into our infrastructure
2015-12-22 15:21:02 -08:00
R. Tyler Croy ace2229a3f
Introduce the basic zone file for jenkins.io into our infrastructure
Fixes INFRA-485
2015-12-22 14:39:58 -08:00
R. Tyler Croy fb7f74e165 Merge pull request #186 from rtyler/module-updates
Various Puppet module updates
2015-12-22 13:47:53 -08:00
R. Tyler Croy e5098a2633
Upgrade epel module, we don't really make much use of RH anymore 2015-12-22 13:21:52 -08:00
R. Tyler Croy 71cfdfa6c3
Upgrade to the latest support version of the puppetlabs-apt module
This is a fairly major bump, but it doesn't appear to contain any backwards
incompatible changes for us
(https://forge.puppetlabs.com/puppetlabs/apt/changelog)
2015-12-22 13:19:13 -08:00
R. Tyler Croy 49839030e0
Update to the latest supported git module
The changelog (https://forge.puppetlabs.com/puppetlabs/git/changelog) doesn't
include anything major in any way shape or form, so yey?
2015-12-22 13:17:49 -08:00
R. Tyler Croy 9a24e4fc1a
Upgrade the inifile module
There's nothing mind-blowing in this changelog
(https://forge.puppetlabs.com/puppetlabs/inifile/changelog) but it's all
relatively minor bugfixes and features so why not
2015-12-22 13:13:05 -08:00
R. Tyler Croy e42e7fe8e7
Upgrade the gcc and ruby modules to include more polite package management
ensure_packages() is always better IMHO
2015-12-22 13:04:32 -08:00
R. Tyler Croy 1d47e05c4d Merge pull request #185 from rtyler/infra-517
Add docker to buildslaves
2015-12-22 12:29:00 -08:00
R. Tyler Croy b74fc16267
Add docker to our build slave profiles
Fixes INFRA-517
2015-12-22 10:57:02 -08:00
R. Tyler Croy 5ff47c4ae1
Upgrade the ntp module 2015-12-22 10:55:36 -08:00
R. Tyler Croy c15ed7dd93
The only way to get the account{} resource to do what you want is to pour over code
It turns out you can pass a string into the $gid parameter and even if you set
it, you still have to tell the module to not create a bloody group for you.
This should finally get the constant churn on the group membership cleaned up

Actually fixes INFRA-513
2015-12-21 18:10:46 -08:00
R. Tyler Croy 6da352c8ab
Rev the puppet-datadog_agent module to mark change events as 'normal' priority 2015-12-21 16:51:02 -08:00
R. Tyler Croy fb93327bf5 Merge pull request #182 from rtyler/pluginsync-master
Switch pluginsync to true for the puppet master configuration
2015-12-21 16:21:07 -08:00
R. Tyler Croy 450c973510
Switch pluginsync to true for the puppet master configuration 2015-12-21 16:01:53 -08:00
R. Tyler Croy f70453405f Merge pull request #181 from rtyler/infra-513
Address INFRA-513 with defined group permissions
2015-12-21 15:49:34 -08:00
R. Tyler Croy 40489ad72e
Ensure consistent group permissions on the site-deployer's files
This change also increases the frequency that the deploy-site script can be
run but to make sure it doesn't step all over itself I've added some locking
logic to make sure only one version of the script is running at a time.

Fixes INFRA-513
2015-12-21 15:13:47 -08:00
R. Tyler Croy 81f4dc22e0
Add a note about our dynamic environment issues 2015-12-21 14:19:31 -08:00
R. Tyler Croy f48d7f2797
Refactor profile::buildslave to use the more polite ensure_packages() function
Using ensure_packages() will make sure that the resource is defined, if nobody
else defines it, the function will define it. This helps prevent conflicts with
modules who brazenly define resources
2015-12-18 13:36:18 -08:00
R. Tyler Croy 03f0dae94c
Refactor the infra-puppet purging code into a separate module so it is not unilaterally applied by base 2015-12-18 13:36:18 -08:00
R. Tyler Croy 2bd098101d
Refactor some common code for management out into a diagnostics profile 2015-12-18 12:16:42 -08:00
R. Tyler Croy 66c7b16a61 Merge pull request #179 from rtyler/prep-for-cucumber
Add a role for cucumber which will allow it to run the puppet agent
2015-12-18 11:15:40 -08:00
R. Tyler Croy b84ccb6fc3
Add a role for cucumber which will allow it to run the puppet agent properly
I'm intentionally excluding the `base` profile since that will include accounts
and all sorts of other stuff which may conflict with the old "infra-puppet"

By excluding profile::base for now, I can start to test the agent properly with
infra-puppet and all that jazz running side-by-side

References INFRA-176
2015-12-18 11:04:27 -08:00
R. Tyler Croy 7909df5b9d
Add DNS record for the beta site
References INFRA-506
2015-12-16 08:21:09 -08:00
R. Tyler Croy 4f2a08f16d Merge pull request #176 from aheritier/feature/htop
Deploy htop package everywhere - http://hisham.hm/htop/ How can you live without it ?
2015-12-16 07:42:16 -08:00
Arnaud Héritier 56a4195407 Deploy htop package everywhere - http://hisham.hm/htop/ 2015-12-16 11:37:03 +01:00
R. Tyler Croy 4bd1cad86c Merge pull request #175 from rtyler/infra-506
Static site hosting!
2015-12-15 18:11:49 -08:00
R. Tyler Croy 11044b6b18
Create profile::staticsite for resources which are needed to serve jenkins.io
This creates a specific user, with an SSH key for deploying, and the
appropriate directory structure for enabling that user to drop files into the
site directory

References INFRA-506
2015-12-15 17:54:04 -08:00
R. Tyler Croy 74aa8e5353
Every machine in the cluster should be using datadog now 2015-12-15 17:54:04 -08:00
R. Tyler Croy 000ce26838
The only thing harder than testing a Puppet Enterprise master is...
Reading the documentation fully before merging code.
2015-12-15 15:41:23 -08:00
R. Tyler Croy a902dc2557
Upgrade to the latest r10k module 2015-12-15 15:41:23 -08:00
R. Tyler Croy 579466e0e0
This is why you shouldn't multitask 2015-12-15 14:42:28 -08:00
R. Tyler Croy a7f6a3c6f5
Eschew using datadog::reports which doesn't cooperate with Puppet Enterprise 2015-12-15 14:03:49 -08:00
R. Tyler Croy 046c642167
The last missing piece for puppet run reports to datadog
I overlooked this in the documentation last week, whoops!
2015-12-15 07:37:21 -08:00
R. Tyler Croy 27900773b9
Use the appropriate user for the reports from datadog
`puppet` doesn't exist in a PE setup, the user is `pe-puppet` instead
2015-12-11 20:19:38 -08:00
R. Tyler Croy 4f5d81a23d
Enable puppet run reports to be fed into datadog 2015-12-11 14:53:46 -08:00
R. Tyler Croy dd21852407 Merge pull request #168 from rtyler/infra-511
Add docker monitoring into datadog
2015-12-11 13:59:11 -08:00
R. Tyler Croy f1a4f9ff2d
Incorporate the docker datadog integration into profile::docker
This should report some basic docker data into our datadog account

References INFRA-511
2015-12-11 13:47:49 -08:00
R. Tyler Croy df52c70e84
Eggplant is behaving as an apache webserver now 2015-12-11 10:55:06 -08:00
R. Tyler Croy 1a27dc9cef
Properly provision the keepalive setting for Apache
This has been causing eggplant provisioning to fail because it's using a newer
version of Apache, which properly fails `apachectl configtest` on an invalid
value for KeepAlive (2.4) whereas the previous version (2.2) gleefully ignored
it.

    tyler@eggplant:~$ apachectl -v
    Server version: Apache/2.4.7 (Ubuntu)
    Server built:   Oct 14 2015 14:20:21
    tyler@eggplant:~$ ^C
    tyler@eggplant:~$ apachectl -v
    Server version: Apache/2.4.7 (Ubuntu)
    Server built:   Oct 14 2015 14:20:21
    tyler@eggplant:~$ apachectl configtest
    AH00526: Syntax error on line 10 of /etc/apache2/apache2.conf:
    KeepAlive must be On or Off
    Action 'configtest' failed.
    The Apache error log may have more information.

    tyler@edamame:~$ apachectl -v
    /usr/sbin/apachectl: 87: ulimit: error setting limit (Operation not permitted)
    Server version: Apache/2.2.22 (Ubuntu)
    Server built:   Mar 19 2014 21:11:15
    tyler@edamame:~$ apachectl configtest
    /usr/sbin/apachectl: 87: ulimit: error setting limit (Operation not permitted)
    Warning: DocumentRoot [/srv/jira/docroot] does not exist
    Warning: DocumentRoot [/srv/jira/docroot] does not exist
    Syntax OK

Turns out this is a subtle, cute, behavior from hiera detailed in https://tickets.puppetlabs.com/browse/MODULES-2147

    This is because when Hieradata gets interpolated, it interprets the words
    'on', 'yes', 'no', 'off' into booleans.
2015-12-11 10:36:35 -08:00
R. Tyler Croy aa62c33f6b
Reduce the verbosity of gem installs 2015-12-10 14:32:41 -08:00
R. Tyler Croy 01a05c30bc
Bump to the latest version of our docker module fork to fix a silly bootstrap problem
With the current rules set up on Okra in production we get:

    Could not set 'present' on ensure: redirection forbidden:
    http://get.docker.io/gpg -> https://get.docker.io/gpg at
    93:/etc/puppetlabs/puppet/environments/production/modules/apt/manifests/key.pp
    Wrapped exception: redirection forbidden: http://get.docker.io/gpg ->
    https://get.docker.io/gpg
2015-12-10 14:31:24 -08:00
R. Tyler Croy fa58d34c5c
Upgrade to the latest forked puppet-irc which has valid Ruby this time >_< 2015-12-09 14:31:22 -08:00
R. Tyler Croy 0a512a1ef3
Begin provisioning eggplant properly 2015-12-09 13:16:21 -08:00
R. Tyler Croy a3fcee8fc1 Merge pull request #163 from jordane/staging
allow bind axfr to oak.osuosl.org (140.211.166.126)
2015-12-09 13:16:11 -08:00
Jordan Evans b61e0c537c allow bind axfr to oak.osuosl.org (140.211.166.126) 2015-12-09 11:10:31 -08:00
R. Tyler Croy 27491f2edb
Update all our gems to stay current 2015-12-09 09:28:35 -08:00
R. Tyler Croy 4df0d57789 Merge pull request #162 from rtyler/serverspec-updates
Serverspec and development environment updates
2015-12-09 08:34:07 -08:00
R. Tyler Croy cafb9dd8ef
Working on a thorough Jenkinsfile for the jenkins-infra build/testing needs 2015-12-08 18:46:35 -08:00
R. Tyler Croy 40263aaf83
Update the README with the latest testing processes 2015-12-08 18:46:21 -08:00
R. Tyler Croy 124ce2cb69
Move the repo once again 2015-12-08 18:46:21 -08:00
R. Tyler Croy bb840b22ad
Include apache, etc on eggplant for future use 2015-12-08 16:33:02 -08:00
R. Tyler Croy ad427025cb
WIP: Jenkinsfile for building/deploying 2015-12-08 16:16:01 -08:00
R. Tyler Croy ca33e232c6
Update references to the apachelogcompressor which now omits the troublesome hyphen 2015-12-08 16:01:55 -08:00
R. Tyler Croy 7c7ca6219c
Make minor modifications such that the serverspec tests work with v2 2015-12-08 16:01:55 -08:00
R. Tyler Croy 00cd3fce2c
Modernize the vagrant/serverspec things a bit 2015-12-08 16:01:55 -08:00
R. Tyler Croy ad1a87d52b
Clean up the zonefile to remove the redundant references to the gherkin name 2015-12-08 10:36:38 -08:00
R. Tyler Croy 22562ff2df
Provision bind on okra to have a third authoritative nameserver 2015-12-08 10:35:32 -08:00
R. Tyler Croy dbd604ed60
Update some role comments with recent upgrades to capabilities 2015-12-08 10:34:21 -08:00
R. Tyler Croy 4453470429
Introduce eggplant to jenkins-infra management 2015-12-08 10:31:29 -08:00
R. Tyler Croy 277ccfadf7
Make both the pe_gem and pe_puppetserver_gem present.
There are still some old modules that need to the `pe_gem` provider to be
installed. All of this will become easier in the next PE server upgrade

References INFRA-502
2015-12-07 09:20:19 -08:00
R. Tyler Croy c72c37c8af
Move to the new jenkins-keys repository organization
This also uses an upgraded module which handles the removal of the pe_gem
provider (see INFRA-502) as well

Fixes INFRA-335
2015-12-07 09:07:08 -08:00
R. Tyler Croy 1c7b60f1fb Merge pull request #158 from rtyler/infra-502
Upgrade the pe_gem provider moduel to the pe_puppetmaster_gem provider
2015-12-01 15:22:44 -08:00
R. Tyler Croy 766b46a119
Upgrade the pe_gem provider moduel to the pe_puppetmaster_gem provider
Fixes INFRA-502

It appears that this module
(https://github.com/puppetlabs/puppetlabs-puppetserver_gem) is what should be
ultimately be used but it appears that under PE 3.7.2 (from my observations)
the $pe_server_version fact is not being implemented which means this branch
won't execute properly:
    <0238cfd785/manifests/params.pp (L18)>
2015-12-01 15:05:41 -08:00
R. Tyler Croy 6e524cbff5 Merge pull request #156 from rtyler/updatezzz
Dependency updates
2015-11-30 08:34:36 -08:00
R. Tyler Croy a16716f569
Upgrade to the latest stdlib module
The newer datadog module requires something newer, and we should be using
something more updated anyways
2015-11-30 08:25:56 -08:00
R. Tyler Croy 4b50d9b0f3
Introduce a zonefile check into our CI scripts
I've manually tested this rake test locally with a broken zone file, and it
errored out appropriately

This is still a heavy-weight way to do this, but better than nothing

Resolves INFRA-283
2015-11-30 08:25:56 -08:00
R. Tyler Croy 7493c97a9a
Upgrade to the latest puppetlabs_spec_helper, no need for our fork 2015-11-13 16:53:08 -08:00
R. Tyler Croy 87c629922d
lint and test compatibility cleanup 2015-11-13 16:53:02 -08:00
R. Tyler Croy be32b646a0
Upgrade puppet-lint and pretty much all the other gems for beaker 2015-11-13 16:52:59 -08:00
R. Tyler Croy 47a65464d1
Upgrade to the latest puppet-irc and datadog modules 2015-11-13 15:08:27 -08:00
R. Tyler Croy 4b305c88cb Merge pull request #154 from jenkins-infra/new-certs
New certificate that adds 'updates.cdn.jenkins-ci.org' as an alias
2015-10-23 10:49:08 -07:00
Kohsuke Kawaguchi 403b8081fd New certificate that adds 'updates.cdn.jenkins-ci.org' as an alias 2015-10-23 10:44:40 -07:00
R. Tyler Croy 3659ab8e5f Merge pull request #152 from daniel-beck/jenkins-meeting
Make robobutler join #jenkins-meeting
2015-08-27 15:32:09 -07:00
Daniel Beck 010f20eddb Make robobutler join #jenkins-meeting 2015-08-28 00:26:42 +02:00
R. Tyler Croy 679fd1d24e Merge pull request #150 from jenkins-infra/better-default-role
Make new servers automatically assume the default role,
2015-08-22 13:58:51 -07:00
Kohsuke Kawaguchi 276db8db04 Make new servers automatically assume the default role,
for example so that you can login as you.
2015-08-05 10:43:44 -07:00
Kohsuke Kawaguchi 1cc0994f00 [FIXED INFRA-298]
deploy_all does not exist any more.
2015-08-05 10:38:38 -07:00
Kohsuke Kawaguchi 4fc734ab84 Added cabbage 2015-08-05 10:23:40 -07:00
Kohsuke Kawaguchi f6a87c9641 Adding a new VM 2015-08-05 10:14:35 -07:00
Kohsuke Kawaguchi 939da12d0c Merge branch 'disable-maintenance' into staging 2015-08-02 10:44:15 -07:00
Kohsuke Kawaguchi 3daf39ee68 Making lint happy 2015-08-02 10:43:49 -07:00
Kohsuke Kawaguchi 6564c6d2cf Fixing a test failure take 3 2015-08-02 10:36:23 -07:00
Daniel Beck b25392d97d Disable maintenance 2015-08-02 19:20:37 +02:00
Kohsuke Kawaguchi cbb5ade786 Fixing a test failure take 2 2015-08-01 19:33:25 -07:00
Kohsuke Kawaguchi 0bd50c6f8f Fixed a test failure in the previous commit 2015-08-01 11:17:03 -07:00
Kohsuke Kawaguchi cd3d1f0ce4 Fixing puppet failures
Accounts are created on every machine, so atlassian-admins group must
also exist everywhere, too.
2015-08-01 06:22:38 -07:00
Kohsuke Kawaguchi e50045765f Activate maintenance screen for Wiki, too 2015-07-31 10:59:24 -07:00
Kohsuke Kawaguchi 8fd54f30ab Apache module doesn't generate 'Listen' instruction
... so adding it manually here.
2015-07-31 10:53:30 -07:00
Kohsuke Kawaguchi 446a99ad26 Activate maintenance screen for JIRA 2015-07-31 10:21:52 -07:00
Christopher Orr edcab5270c
Add SSH public key for orrc. 2015-07-03 08:37:04 -07:00
Kohsuke Kawaguchi d51f4a2c54 Merge pull request #140 from jenkins-infra/issues/atlassian-admins-307
Add atlassian-admins
2015-05-19 18:36:06 -07:00
R. Tyler Croy 9aeefd16b6 Give atlassian-admins to ability to look at some logs and futz with services 2015-05-17 18:20:57 -07:00
R. Tyler Croy 8f6a9b0e04 Introduce the atlassian-admins group
Current has no additional permissions
2015-05-16 13:26:58 -07:00
R. Tyler Croy 0f59f6df8f Ensure we're validating that hosts have HTTP oriented firewall rules in serverspec
This includes some other minor refactorings
2015-05-16 12:24:49 -07:00
R. Tyler Croy 7ea346c8c4 Merge pull request #138 from aheritier/patch-2
Allow aheritier to logon on jenkins servers
2015-05-12 13:32:13 -07:00
Arnaud Heritier fb85fc0964 Allow aheritier to logon on jenkins servers
Discussed on thread http://lists.jenkins-ci.org/pipermail/jenkins-infra/2015-May/000342.html
2015-05-12 22:18:49 +02:00
R. Tyler Croy d4a0926831 Merge pull request #128 from jenkins-infra/INFRA-283
Have Jenkins perform DNS zone file syntax check
2015-05-10 19:13:20 -07:00
Kohsuke Kawaguchi 8534e2ea78 Merge pull request #135 from jenkins-infra/jira-datadog
Datadog monitoring for JIRA
2015-05-05 07:39:43 -07:00
Kohsuke Kawaguchi a141d5885d datadg_agent class must be loaded for Service[$datadog_agent::params::service_name] to resolve. 2015-05-05 07:35:26 -07:00
Kohsuke Kawaguchi feb43ef95b when the file change, restarts datadog agent 2015-05-05 07:25:50 -07:00
Kohsuke Kawaguchi 484bbc0d2d Manage checks for JIRA
And relax the failure window so that sporadic one-off failures won't get reported as alerts
2015-05-05 07:07:55 -07:00
Kohsuke Kawaguchi 24010b3a1f [INFRA-297]
Looks like puppet apache module disables Keep-Alive by default. Resurrect them.
2015-05-04 23:04:18 -07:00
Kohsuke Kawaguchi 02b63c1c32 YAML syntax error 2015-05-04 22:52:39 -07:00
Kohsuke Kawaguchi 05f29321c7 Added one more HTTP check for Confluence 2015-05-04 22:31:12 -07:00
Kohsuke Kawaguchi dd52af2871 Merge pull request #131 from jenkins-infra/codify-datadog
Codifying Datadog checker definitions from fragments
2015-05-04 22:21:29 -07:00
Kohsuke Kawaguchi 0f7d81346a Codifying Datadog checker definitions from fragments 2015-05-04 18:42:14 -07:00
Kohsuke Kawaguchi fb13786233 Merge pull request #129 from jenkins-infra/faster-archives
Increasing the bandwidth of archives server
2015-05-03 22:04:34 -07:00
Kohsuke Kawaguchi c64b4de3b8 DEV@cloud can't do docker, so this can't be a part of CI
And no, I can't install bind9utils on the slave either.
2015-05-03 22:03:04 -07:00
Kohsuke Kawaguchi e52b25d357 Increasing the bandwidth of archives server
We are only using about $600/month out of the allowance from Rackspace,
so we can afford to pay $300/month for archives and still come within
the allownce.
2015-05-03 22:00:24 -07:00
Kohsuke Kawaguchi 6c00f8319d [FIXED INFRA-283]
Added rake task to perform syntax check on DNS zone file, and have
Jenkins test it all the time.
2015-05-03 19:07:37 -07:00
Kohsuke Kawaguchi a24d674943 Fixed a test failure 2015-05-03 08:37:34 -07:00
Kohsuke Kawaguchi 34d17abdc4 Merge pull request #123 from jenkins-infra/jira-6.4.2
Upgrade JIRA to 6.4.2
2015-05-03 08:33:46 -07:00
Kohsuke Kawaguchi 3ffe02ec84 Apache only recognizes *.conf
... so to make this less error prone, create this with the '.conf' extension so that 'ln -s ../sites-available/issues.jenkins-ci.org.maintenance.conf' would create a valid file in the 'sites-enabled' directory.
2015-05-03 08:20:48 -07:00
Kohsuke Kawaguchi b53cb3c6f0 Removing other recurse
See 58c9dcb3a5
2015-05-03 08:09:02 -07:00
Kohsuke Kawaguchi 58c9dcb3a5 recurse tries to manage files in the directory.
I thought it was for creating parent directories recursively. Ouch.
2015-05-03 07:52:51 -07:00
R. Tyler Croy 415e720c68 Remove a puppet module which doesn't exist any more :/
It looks like we don't use it anyways, so...
2015-05-03 07:41:03 -07:00
Kohsuke Kawaguchi e749ba71bf Merge pull request #122 from jenkins-infra/maintenance
Prepare apache conf for maintenance mode
2015-05-03 07:11:18 -07:00
Kohsuke Kawaguchi 0976adae88 Upgrade JIRA to 6.4.2
See notes at
https://github.com/jenkins-infra/jira/blob/master/UPGRADE.md
2015-05-02 22:35:38 -07:00
Kohsuke Kawaguchi e0c5c5df00 Prepare maintenance UI for Confluence as well 2015-05-02 22:29:14 -07:00
Kohsuke Kawaguchi d0ca125df7 Generate apache conf for maintenance screen 2015-05-02 22:28:32 -07:00
R. Tyler Croy 0a154bcf67 Remove puppet_rnu_reports which fail in production
We need a better means of enabling the puppet agent reporting
2015-04-27 14:38:21 -07:00
R. Tyler Croy b424e79c31 Whoops, forgot to enable indexes for the crawler 2015-04-27 11:50:47 -07:00
R. Tyler Croy 12dd840739 Disable redirection from archives to mirrors so we can scan it as a mirror
See https://gist.github.com/kohsuke/2103f6085663391a6c88 for more details
2015-04-27 11:32:55 -07:00
R. Tyler Croy efd91bad1b Run the puppet agent reports from the master 2015-04-26 18:29:45 -07:00
R. Tyler Croy a922ceead8 Enable mcollective agents to connect back to the puppet master 2015-04-26 14:35:56 -07:00
R. Tyler Croy 12ff969b15 Update toe the latest puppet-irc reporter which supports configurable timeouts
This should help get our reports published to the IRC channel more reliably
2015-04-26 13:42:03 -07:00
R. Tyler Croy 2b5603b6d4 Remove comment which is no-longer applicable 2015-04-26 12:10:28 -07:00
R. Tyler Croy c50e0f8578 Turns out the pe-mcollective resource is already declared =_=
This is so incredibly tedious.

    Error: Could not retrieve catalog from remote server: Error 400 on SERVER:
    Duplicate declaration: Service[pe-mcollective] is already declared in file
    /etc/puppetlabs/puppet/environments/staging/dist/profile/manifests/puppetmaster.pp:71;
    cannot redeclare at
    /opt/puppet/share/puppet/modules/puppet_enterprise/manifests/mcollective/service.pp:6
    on node jenkins-puppet.osuosl.org
    Warning: Not using cache on failed catalog
    Error: Could not retrieve catalog; skipping run
2015-04-26 11:32:20 -07:00
R. Tyler Croy f9edf6b721 Upgrade the r10k module to work better with more recent versions of PE
This commit also adds the pe-mcollective service which we'll want
2015-04-26 11:25:53 -07:00
R. Tyler Croy 8a91b3b4f7 Add the Service[pe-puppetserver] resource by default
Since it's apparently not in the master's catalogue automagically
2015-04-26 11:10:24 -07:00
R. Tyler Croy a0b60289a9 On Puppet Enterprise 3.7 we need to notify the pe-puppetserver service 2015-04-25 17:24:37 -07:00
Kohsuke Kawaguchi 790c2787f6 syntax error 2015-04-25 11:56:54 -07:00
Kohsuke Kawaguchi 72ed5b6a62 Merge pull request #109 from jenkins-infra/post-jira-migration
[INFRA-279] welcome to new JIRA on edamame
2015-04-25 11:31:43 -07:00
Kohsuke Kawaguchi 562bb32cae Deploy new JIRA that fixes attachment problems 2015-04-25 11:03:22 -07:00
Kohsuke Kawaguchi 4b2157975a Merge pull request #110 from jenkins-infra/jira-switch-to-prod-db
[INFRA-279] switch JIRA to production DB
2015-04-25 10:44:19 -07:00
Kohsuke Kawaguchi 66c2d9de5f Merge pull request #108 from jenkins-infra/jira-low-ttl
[INFRA-279] DNS TTL reduction for JIRA
2015-04-24 07:23:17 -07:00
Kohsuke Kawaguchi 6d449c8035 [INFRA-279]
Prior to migration, tear down temporary DB and reconfigure JIRA
container to talk to production DB.
2015-04-18 22:10:35 -07:00
Kohsuke Kawaguchi b3045dc0d5 [INFRA-279] When migration is complete, edamame is new issues.jenkins-ci.org 2015-04-18 15:12:22 -07:00
Kohsuke Kawaguchi e1d25a5566 [INFRA-279]
Reduce TTL for issues.jenkins-ci.org in preparation of the migration.
2015-04-18 15:04:06 -07:00
Kohsuke Kawaguchi 0c354e3d71 Merge pull request #106 from jenkins-infra/INFRA-279
[INFRA-279] JIRA migration next step
2015-04-18 14:57:24 -07:00
Kohsuke Kawaguchi 5c98b894b7 Bug fix based on vagrant.
Serverspect test needs to be relaxed a bit, because the JIRA container
will start in the setup UI.
2015-04-18 14:53:46 -07:00
Kohsuke Kawaguchi 27c8271a73 connect to test database instance 2015-04-18 14:44:02 -07:00
Kohsuke Kawaguchi 5ab68e180c This image adds more memory to JIRA 2015-04-18 14:42:43 -07:00
Kohsuke Kawaguchi 27030e4ab4 [INFRA-279]
Next step toward JIRA migration.
Runs the actual JIRA container on edamame, with real LDAP backend but
with fake DB.

This lets us verify more things before we do the production switch over.
2015-04-18 14:05:54 -07:00
R. Tyler Croy b8dad70d23 Open up apache in the firewall if it's installed 2015-04-13 14:05:37 -07:00
R. Tyler Croy 5bab7c06ee Allow puppet agent traffic to pass through to the master
Missed this in the hub-ub on Saturday when we locked down the master. Forgot
that agents don't use port 443 like the web console for accessing catalogues
2015-04-13 08:02:19 -07:00
R. Tyler Croy 4f7965c1d5 Revert "[INFRA-261] As a stop gap measure, going through proxy on eggplant to access MySQL."
This reverts commit 4e914b0024.
2015-04-13 07:05:49 -07:00
R. Tyler Croy 29b40a6486 Allow webhooks from github through too 2015-04-11 20:16:03 -07:00
R. Tyler Croy aa920cd7b4 Wouldn't it be nice to see the dashboard again 2015-04-11 19:46:27 -07:00
Kohsuke Kawaguchi 48790d45e9 Really switch wiki from eggplant to confluence. 2015-04-11 12:01:43 -07:00
Kohsuke Kawaguchi a2b49a7ed8 Enable mod_status and have datadog at it 2015-04-11 11:46:32 -07:00
Kohsuke Kawaguchi 0a611a2a19 Deploy newer confluence image that has more memory allocation in it 2015-04-11 11:35:27 -07:00
Kohsuke Kawaguchi decbd8601e Merge pull request #97 from jenkins-infra/confluence-firewall
Confluence firewall related changes
2015-04-11 11:22:22 -07:00
R. Tyler Croy b2bf30f817 Allow inter container traffic on the docker0 interface 2015-04-11 11:21:29 -07:00
Kohsuke Kawaguchi 032142f32d Go through docker host's internal IP
Hard coding this isn't ideal, but it looks stable enough.
This way hopefully it's less likely to interfere with iptables that are
going to block traffic from outside.

See https://github.com/docker/docker/issues/1143
2015-04-11 11:06:03 -07:00
R. Tyler Croy 15b7f0c722 Open up port 80 and 443 in the Confluence profile
Otherwise, what's the point right
2015-04-11 10:55:29 -07:00
R. Tyler Croy 7712c61720 Ensure all hosts are dropping request to ports not explicitly opened
Caught this while auditing hosts during the confluence migration, oversight on
my part, whoops!
2015-04-11 10:55:00 -07:00
Kohsuke Kawaguchi c142156c34 Revert "Switch wiki from eggplant to confluence."
This reverts commit 28fa537eec.

Not yet ready to switch the production traffic over.
2015-04-11 10:41:33 -07:00
Kohsuke Kawaguchi d388ccc535 container linking doesn't work.
When the backend restarts, the cache doesn't get its new IP.

This is not only a problem during the configuration changes, but automatic restart of Confluence in case it's dead.

So going back to routing requests through the main interface.
2015-04-11 10:39:17 -07:00
R. Tyler Croy 42ebce1b5a Merge pull request #91 from jenkins-infra/confluence-post-migration
DO NOT MERGE YET [INFRA-261] switch wiki to lettuce
2015-04-11 10:26:23 -07:00
Kohsuke Kawaguchi 4e914b0024 [INFRA-261] As a stop gap measure, going through proxy on eggplant to access MySQL. 2015-04-11 10:12:02 -07:00
R. Tyler Croy d87e3686ac Include lettuce and its subnet in the SPF records 2015-04-11 09:43:30 -07:00
Kohsuke Kawaguchi 0eb0ecee30 Merge pull request #90 from jenkins-infra/confluence
[INFRA-261] Production switch-over
2015-04-11 09:36:32 -07:00
Kohsuke Kawaguchi 53fc6cad1b Switching Confluence container to UID/GID=2000
This avoids the conflict with existing UID/GID. See
http://lists.jenkins-ci.org/pipermail/jenkins-infra/2015-April/000297.html
2015-04-06 21:41:27 -07:00
Kohsuke Kawaguchi 28fa537eec Switch wiki from eggplant to confluence. 2015-04-05 22:35:57 -07:00
Kohsuke Kawaguchi 9a689ecb20 [INFRA-261] Production switch-over
This change makes confluence container talks to the production DB, and
shutdowns the temporary mariadb container.
2015-04-05 22:29:06 -07:00
Kohsuke Kawaguchi e745452a86 Confluence container has hard-coded UID/GID.
This isn't ideal, as it gives random user/group access to the data, but there's not much we can do about it, and all the users on the box are more than somewhat trusted anyway.
2015-04-05 21:08:11 -07:00
Kohsuke Kawaguchi 82d119cc76 If confluence changes, make sure to restart confluence-cache as well 2015-04-05 21:01:33 -07:00
Kohsuke Kawaguchi 4a0c76e036 apparently '\n' produces two letters \ and n, not NL. 2015-04-05 21:01:33 -07:00
Kohsuke Kawaguchi 9809d2cf65 Update confluence image
build4 had a bug that it was trying to talk to ldap.jenkins-ci.org via LDAP. build5 fixes that.
2015-04-05 18:31:42 -07:00
Kohsuke Kawaguchi 535b109678 Adding another volume to okra
archives area has grown past 150GB, and it's blocking UC.
2015-04-05 15:31:31 -07:00
Kohsuke Kawaguchi 2bc85d8013 Merge pull request #85 from jenkins-infra/confluence
Confluence migration step 2
2015-04-02 18:01:46 -07:00
Kohsuke Kawaguchi 4f4d9318ff docker::run.command is apparently mandatory. 2015-04-02 08:08:40 -07:00
Kohsuke Kawaguchi 29fc9330e3 This entry is only for mock-webapp.
Confluence won't need it.
2015-04-02 08:06:07 -07:00
Kohsuke Kawaguchi 48999796e7 [INFRA-261] Confluence migration step 2
PR #78 has been deployed in production. Along with a few additional
changes, the virtual host setup has been validated.

As the next step, this change runs a real Confluence instance with real
LDAP, except with a fake database.

This way we can test the behaviour of confluence container.
2015-04-01 23:34:51 -07:00
Kohsuke Kawaguchi 283d705185 Safely feed LDAP password into a container
Passing it as a command line argument would make the password visible to
ps(1), so we need to go via --env-file.

The change in garethr/docker adds this support
2015-04-01 23:18:37 -07:00
Kohsuke Kawaguchi b24d995bf4 Apparently if I didn't specify $port, $name (and not $vhost_name) gets used for <VirtualHost HOSTPORT> part.
Just reinforces my conviction described in
ea76b290c0
2015-04-01 22:33:15 -07:00
Kohsuke Kawaguchi 00d30b67b8 following this guide to try to see why file backup now fails
https://docs.puppetlabs.com/pe/latest/trouble_comms.html

I get "Could not back up ... getaddrinfo: Name or service not known" error
2015-04-01 22:20:37 -07:00
Kohsuke Kawaguchi f48ef71167 Let apache module enable the mod 2015-04-01 21:56:04 -07:00
Kohsuke Kawaguchi 0934ebe5ec JIRA version of ea76b290c0 2015-04-01 21:54:36 -07:00
Kohsuke Kawaguchi 59c17d8f1d SSL module needs to be activated explicitly. 2015-04-01 21:49:44 -07:00
Kohsuke Kawaguchi df5e4e1aa2 datadog-agent specifies ruby 0.2.0 as the dependency.
So to satisfy that constraint, we need to use 0.2.0. According to the
changelog of puppetlabs/ruby, 0.2.0 and 0.2.1 is a metadata-only change,
so this is hopefully OK.
2015-04-01 21:41:17 -07:00
Kohsuke Kawaguchi 0aa9a0d09f lettuce now needs to deploy the SSL key for wiki.jenkins-ci.org 2015-04-01 21:31:30 -07:00
Kohsuke Kawaguchi ea76b290c0 fixed a confluence virtual host setting.
vhost_name sets the host name part of <VirtualHost HOST:PORT> directive, which makes virtual host only applicable when the request comes through IP address that HOST refers to.

Tests failed to catch this because serverspec makes curl call from within, which means the request was coming from 127.0.0.1 that host name 'wiki.jenkins-ci.org' was resolving to on this box.

Also removing "ssl => true" because it tries to set the certificate path & server key path. Given the way SSL works, trying to configure such information inside VirtualHost really doesn't make sense. See [1] for more info.

I still remain wholly unconvinced about the way puppet handles apache configuration files. I'd much rather write a per-site *.conf file directly by hand than learning how puppet maps those to parameters and how they get translated into the *.conf files. It's neither particularly readable or writable. But oh well.

[1] https://wiki.apache.org/httpd/NameBasedSSLVHosts
2015-04-01 21:31:10 -07:00
Kohsuke Kawaguchi 260492b4f1 Pick up another fix to garethr/docker module 2015-04-01 20:39:29 -07:00
Kohsuke Kawaguchi 59f2e7237d Merge pull request #78 from jenkins-infra/confluence
Containerized Confluence deployment
2015-03-31 18:45:28 -07:00
Kohsuke Kawaguchi a2c3439022 Merge pull request #77 from jenkins-infra/sslcert
Tracking all the certificates here
2015-03-31 18:45:06 -07:00
Kohsuke Kawaguchi 94df092429 Adding the key & cert for cucumber
... while we are at it, for better bus factor and etc.
2015-03-30 22:01:22 -07:00
Kohsuke Kawaguchi e83acc621b Replaced the bogus key with the actual key.
This hiera-yaml encrypted private key is the actual production key used
in eggplant.jenkins-ci.org
2015-03-30 21:58:14 -07:00
Kohsuke Kawaguchi db5228b2a5 handy tip to just rerun serverspec 2015-03-30 21:54:18 -07:00
Kohsuke Kawaguchi 841c973789 remove dependencies between tests
serverspec can randomize execution order of tests. if access log check happens before any requests are sent to Apache, it'll fail.

So for consistent results, insert this as an assertion on another test.
2015-03-30 21:54:18 -07:00
Kohsuke Kawaguchi 8e42c8c7a5 Fixing the way container start/stop is handled.
See
2e87e66e1a
2015-03-30 21:54:18 -07:00
Kohsuke Kawaguchi 0309c344da Initial (mock) confluence deployment
This change deploys confluence + confluence-cache containers on lettuce, except that instead of real confluence, this version deploys a mock version.
2015-03-30 21:54:18 -07:00
Kohsuke Kawaguchi 98fd415ed9 documenting the rake task 2015-03-30 21:53:52 -07:00
Kohsuke Kawaguchi ba414abff3 Defining a rake task to reflect changes made in Puppetfile/.fixtures.yml 2015-03-30 21:23:11 -07:00
Kohsuke Kawaguchi b418287f9b followup fix to 928bc3791e
This vhost has unusual name, so it needs servername.
2015-03-30 19:33:46 -07:00
Kohsuke Kawaguchi d740ef357a Deploy package first to ensure /etc/apache2 exists 2015-03-30 19:33:46 -07:00
R. Tyler Croy dc2b6d220a Merge pull request #76 from jenkins-infra/datadog
Deploy datadog node to every node
2015-03-30 07:52:03 -07:00
Kohsuke Kawaguchi 07218227ef These settings are generated by Puppet, so no need to have them here. 2015-03-29 21:58:45 -07:00
Kohsuke Kawaguchi 928bc3791e I had servername and vhost_name mixed up.
vhost_name controls the name-based virtual host. servername is defaulted to the resource name, so no need to specify it again
2015-03-29 21:35:53 -07:00
Kohsuke Kawaguchi d6f59be465 Fix the container name for humans 2015-03-29 20:33:06 -07:00
Kohsuke Kawaguchi a640cd831e Deploy datadog node to every node 2015-03-29 20:11:19 -07:00
Kohsuke Kawaguchi a0027f7609 Merge branch 'jira' into staging
This merges pull request #74
Conflicts:
	dist/role/manifests/edamame.pp
	hieradata/common.yaml
2015-03-29 19:45:03 -07:00
Kohsuke Kawaguchi 1a03df3f6f Merge pull request #75 from jenkins-infra/sslcert
[INFRA-41] manage SSL private key & certificate
2015-03-29 19:43:30 -07:00
Kohsuke Kawaguchi dbd4d30c8c Renamed ssl-cert to apache-cert to address review by rtyler 2015-03-28 23:11:23 -07:00
Kohsuke Kawaguchi e9026fc332 adding a link to the container repo 2015-03-28 23:05:27 -07:00
Kohsuke Kawaguchi d4106fba36 describing the intent of this 2015-03-28 23:05:17 -07:00
Kohsuke Kawaguchi 11c0a52f50 Managing SSL certificates & private keys in Puppet
Real private key will be managed with hiera-eyaml, but private key used
with bogus self-signed certificate for vagrant need not be (and cannot
be) secured.

Just in case I'm doing something really stupid, the current
'profile::ssl-cert::secret-key-wiki-jira' entry is a bogus private key,
which is nonetheless safe to merge because edamame currently doesn't
serve https.

If this use of multiline string in hiera-eyaml is validated, I'll
replace the entry with the real private key.
2015-03-28 17:02:03 -07:00
Kohsuke Kawaguchi 1e911ffa09 install hiera-eyaml
so that ./hieradata/edit doesn't require externally installed tools.
2015-03-28 15:57:43 -07:00
Kohsuke Kawaguchi baa5eb3986 When a configuration changes, restart the service 2015-03-28 15:32:26 -07:00
Kohsuke Kawaguchi 9f8f7989e3 test access log 2015-03-28 14:46:09 -07:00
Kohsuke Kawaguchi 79d6b7c20b Test access to JIRA through Apache 2015-03-28 14:46:09 -07:00
Kohsuke Kawaguchi 44379d3632 Bug fixes driven by serverspec test
Parent directories need to be created recusively, and mod_proxy is
needed to forward to JIRA.
2015-03-28 14:20:43 -07:00
Kohsuke Kawaguchi 45c9ab2558 1.0.2 doesn't resolve for me, but 1.0.3 does.
% puppet module --modulepath '/home/kohsuke/ws/jenkins/infra/jenkins-infra/modules' install --version=1.0.2 --ignore-dependencies rtyler/groovy
Notice: Preparing to install into /home/kohsuke/ws/jenkins/infra/jenkins-infra/modules ...
Notice: Downloading from https://forge.puppetlabs.com ...
Error: Could not install module 'rtyler-groovy' (v1.0.2)
  No version of 'rtyler-groovy' will satisfy dependencies
    You specified 'rtyler-groovy' (v1.0.2)
    Use `puppet module install --force` to install this module anyway
2015-03-28 14:20:43 -07:00
Kohsuke Kawaguchi 881ecaebac deleted unresolvable symlnks that will make rsync fail.
modules/account/.travis.yml has incorrect link target, and this blows up
when vagrant tries to rsync files as it tries to resolves symlinks.
2015-03-28 14:20:14 -07:00
Kohsuke Kawaguchi 08b3c16f62 Unless vagrant runs in bundler, it won't autoload plugins.
This got me confused for a while.
2015-03-28 14:19:17 -07:00
Kohsuke Kawaguchi 1f49cddc72 Added unit test and used that to fix jira profile. 2015-03-28 11:39:37 -07:00
Kohsuke Kawaguchi 036962dfa1 Added JIRA profile 2015-03-28 11:16:57 -07:00
Kohsuke Kawaguchi 89994497ee Using the consistent short vegetable names to name hosts. 2015-03-24 11:17:45 -07:00
Kohsuke Kawaguchi d6dd8558f7 Update README.md
Looks like the documentation has moved.
2015-03-24 10:37:20 -07:00
R. Tyler Croy 114acf3a59 Merge pull request #71 from jenkins-infra/INFRA-231
[INFRA-231]
2015-03-02 13:50:22 -08:00
Kohsuke Kawaguchi 414ec670ff [INFRA-231]
Build #41 contains the fix we need to authenticate `jenkins-admin` against nickserv.
2015-03-02 13:30:04 -08:00
R. Tyler Croy 3a8413ba02 Merge pull request #69 from oleg-nenashev/staging
Update IRCBot to build40
2015-01-28 08:40:34 -08:00
Oleg Nenashev f7ac49e283 Update IRCBot to build40
* https://github.com/jenkins-infra/ircbot/pull/20 from @christ66
2015-01-28 19:21:08 +03:00
R. Tyler Croy d2d5016da9 Merge pull request #67 from jenkins-infra/danielbeck
Giving access to daniel beck
2015-01-21 12:50:16 -08:00
Kohsuke Kawaguchi 7e8d43dfbc Giving access to daniel beck 2015-01-21 12:14:28 -08:00
R. Tyler Croy 4f52ffd9fe Add byebug as the debugger when running Ruby 2.x 2014-12-26 13:13:08 -08:00
R. Tyler Croy c5f17168cb Merge pull request #64 from oleg-nenashev/staging
Update IRCBot to build38
2014-10-30 10:46:37 -07:00
Oleg Nenashev 73f3f21add Update IRCBot to build38
Features:
* A command, which renames GitHub repos (INFRA-193)
* Parametrization fixes (INFRA-146)
2014-10-30 20:23:42 +03:00
Kohsuke Kawaguchi 99db5ae19b Redirect was redirecting everything, not just the top page
I always forget that 'Redirect' is a prefix match, not the whole match. So it resulted in every access sent back to the mirror controller machine. This change fixes that.
2014-10-17 08:02:45 -07:00
Kohsuke Kawaguchi f2f5d40373 Merge pull request #61 from jenkins-infra/archives
[INFRA-102] Don't serve index. Let people start from the 'mirrors' server.
2014-10-10 10:22:01 -07:00
Kohsuke Kawaguchi 7589df0fdb Don't serve index. Let people start from the 'mirrors' server. 2014-10-10 09:58:39 -07:00
Kohsuke Kawaguchi c3aa594d45 Merge pull request #59 from jenkins-infra/archives
[INFRA-102] Publishing archives into DNS
2014-10-10 09:41:39 -07:00
Kohsuke Kawaguchi 0696f20f5f [INFRA-102] Publishing archives into DNS 2014-10-10 09:39:01 -07:00
Kohsuke Kawaguchi 722f981ec6 Merge pull request #57 from jenkins-infra/archives
[INFRA-102] archives.jenkins-ci.org wave #2
2014-10-10 09:23:44 -07:00
Kohsuke Kawaguchi 77b60845dc Expand to the full size of the volume 2014-10-10 09:14:55 -07:00
Kohsuke Kawaguchi bed760dae2 [INFRA-102] removing a remnant of the earlier experiment that didn't work out 2014-10-09 17:27:41 -07:00
Kohsuke Kawaguchi 195f56cf4e noting what this machine is about 2014-10-09 17:26:35 -07:00
R. Tyler Croy ec5415317c Merge pull request #55 from oleg-nenashev/staging
Update to ircbot-build35 , which definitely has the correct version file
2014-10-09 11:21:44 -07:00
Oleg Nenashev f2dd70e17a Update to ircbot-build35 , which definitely has the correct version file
Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com>
2014-10-09 22:13:32 +04:00
R. Tyler Croy 3c3daf5b4e Merge pull request #53 from oleg-nenashev/staging
Update to ircbot-build34 to resolve INFRA-142, INFRA-146 nad INFRA-135
2014-10-09 06:34:44 -07:00
Oleg Nenashev 8f9d7252ef Update to ircbot-build34 to resolve INFRA-142, INFRA-146 nad INFRA-135
Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com>
2014-10-09 15:46:04 +04:00
R. Tyler Croy a43e0352b6 Rely on notifying the Service['docker-ircbot'] resource for ircbot restarts
[INFRA-145]
2014-09-27 13:04:02 -07:00
Kohsuke Kawaguchi 5b86f892d2 Merge pull request #50 from oleg-nenashev/staging
[INFRA-135] - Update IRC Bot to build 30 (fixes for "version" command)
2014-09-25 13:41:09 -07:00
Oleg Nenashev 866af7a767 [INFRA-135] - Update IRC Bot to build 135 (fixes for "version" command)
Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com>
2014-09-26 00:08:39 +04:00
R. Tyler Croy b76048548a I think it's safe to say that this is no longer a work in progress 2014-09-24 18:05:25 -07:00
R. Tyler Croy 51aff3274c Merge pull request #48 from rtyler/lettuce-dns
Adding the new lettuce A record
2014-09-24 17:58:34 -07:00
R. Tyler Croy 92f33a1a87 Adding the new lettuce A record 2014-09-24 16:22:30 -07:00
R. Tyler Croy 5eb184bce1 Merge pull request #46 from oleg-nenashev/staging
Update IRC bot to build25
2014-09-24 15:39:00 -07:00
Oleg Nenashev 0088ae9ef1 Update IRC bot to build25
Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com>
2014-09-25 02:23:31 +04:00
R. Tyler Croy 13370b8f5c Merge pull request #44 from rtyler/provision-lettuce
Add the newly created OSUOSL VM `lettuce`
2014-09-24 13:47:03 -07:00
R. Tyler Croy d26360a843 Add the newly created OSUOSL VM `lettuce` 2014-09-24 13:24:16 -07:00
R. Tyler Croy 9b85054693 Merge pull request #43 from oleg-nenashev/staging
[INFRA-107,INFRA-139] - Update IRC bot to build24
2014-09-24 13:18:54 -07:00
Oleg Nenashev 21b2083c53 [INFRA-107,INFRA-139] - Update IRC bot to build24
Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com>
2014-09-25 00:10:53 +04:00
R. Tyler Croy ad051caf4e Merge pull request #41 from oleg-nenashev/staging
[INFRA-107 and INFRA-135] Update Jenkins IRC bot to build20
2014-09-21 13:58:16 -07:00
Oleg Nenashev 532a53d544 [INFRA-107 and INFRA-135] Update Jenkins IRC bot to build20 2014-09-21 21:53:29 +01:00
R. Tyler Croy dd3a9ed564 Change the .github file ONE MORE TIME and hope it works
This is why having documentation and reproducible infrastructure is important people
2014-09-21 12:03:33 -07:00
R. Tyler Croy e5ab2c049d Upgrade to the latest ircbot container which pins the user ID for permissions 2014-09-21 11:54:59 -07:00
R. Tyler Croy 4d3e028528 Properly notify/restart the docker ircbot container when we're modifying its confg 2014-09-21 10:55:27 -07:00
R. Tyler Croy 39737f8da2 Merge pull request #38 from jenkins-infra/INFRA-129
[INFRA-129] follow up changes
2014-09-21 10:46:45 -07:00
Kohsuke Kawaguchi c85dd9bd41 Protect these sensitive files from the eyes of random users 2014-09-21 09:39:30 -07:00
Kohsuke Kawaguchi e81bff264e Adding the password of the jenkinsadmin user on GitHub
... in case someone needs to go generate tokens again. IRCbot uses OAuth
token and not the password
2014-09-21 09:37:51 -07:00
Kohsuke Kawaguchi cdab29d19a Correct keyword was 'oauth' not 'token' 2014-09-21 09:36:58 -07:00
R. Tyler Croy b73e174b45 Merge pull request #36 from jenkins-infra/INFRA-129
Manage and run jenkins-admin in Docker
2014-09-20 18:24:14 -07:00
R. Tyler Croy 922ad39d38 Fix some silly lint warnings 2014-09-20 18:23:21 -07:00
R. Tyler Croy 272fbe3153 Map the private files for the ircbot into the docker container 2014-09-20 18:20:25 -07:00
R. Tyler Croy 0d36a4f7d1 Add the jenkinsadmin profile for running the ircbot docker container
Fixes INFRA-129
2014-09-20 15:45:18 -07:00
R. Tyler Croy 472242c00d Switch to a new 12.04 Puppet/Docker AMI
The old one apparently forgot how to puppet and docker properly. Not even sure
how that happened.
2014-09-20 15:22:07 -07:00
Kohsuke Kawaguchi f9e963a4a2 [INFRA-129] Added credentials used by 'jenkins-admin' IRC bot 2014-09-17 09:44:32 -07:00
R. Tyler Croy 871296d124 Upgrade r10k to 1.2.4 which should fix module downgrades
See adrienthebo/r10k#188
2014-09-14 21:43:59 -07:00
R. Tyler Croy d400e1c410 Roll back to inifile 1.0.3 due to a bug in 1.1.3
See: <https://tickets.puppetlabs.com/browse/ENTERPRISE-323>

Looks like somebody didn't respect semantic versioning!
2014-09-14 16:34:22 -07:00
R. Tyler Croy 6645523f65 Upgrade a number of puppetlabs-based modules to their current supported versions 2014-09-14 15:36:25 -07:00
R. Tyler Croy f2975074b2 Pin the version of the keys we'll use 2014-09-14 15:01:34 -07:00
R. Tyler Croy 3f0f4570c9 Ignore all kinds of vim related mess 2014-09-13 16:08:46 -07:00
R. Tyler Croy 63645239a0 Upgrade to puppetlabs/apt 1.6.0 which supports Ubuntu 14.04 properly 2014-09-13 15:51:07 -07:00
R. Tyler Croy 3b7e893db6 Adding okra's A record 2014-07-28 11:13:28 -07:00
R. Tyler Croy a8f58a13ce Minor whitespace fix 2014-07-12 13:32:59 -07:00
R. Tyler Croy f61b33e79c Refactor apache_misc into apache-misc and move SSH settings into that class
Since we may incorporate profile::apache-misc into a number of different
profiles, ssh_enabled defaults to false so the consuming class has to
explicitly decide to drop the SSH pubkeys into /var/www
2014-07-12 13:28:05 -07:00
R. Tyler Croy 258a0544c5 Tidy up the archives profile 2014-07-12 13:10:24 -07:00
R. Tyler Croy 1ab78742ff Merge pull request #31 from jenkins-infra/apache-misc
Define misc. apache settings
2014-07-12 11:35:56 -07:00
R. Tyler Croy e7440e639d Merge pull request #32 from jenkins-infra/archives
[INFRA-102] Adding archives.jenkins-ci.org
2014-07-12 11:35:15 -07:00
Kohsuke Kawaguchi 16ca13c342 Here's hoping this would make lint happy 2014-07-11 15:24:44 -07:00
Kohsuke Kawaguchi 542f13c4f7 Updating the test
Looks like the apache module uses the name 'httpd' for everything but
set the name attribute differently.

Feels bit too much like testing the internals. Perhaps I should just
check contain_class("apache")
2014-07-11 14:44:56 -07:00
Kohsuke Kawaguchi 39bce0af5c Leaving a TODO comment 2014-07-07 21:12:34 -07:00
Kohsuke Kawaguchi b5bb8c808a These parameters are unused now 2014-07-07 21:11:28 -07:00
Kohsuke Kawaguchi e5e70b36d6 Externalized LVM setting as hiera config 2014-07-07 21:09:32 -07:00
Kohsuke Kawaguchi f2a7390929 To test this better, added a fake block device during vagrant run.
LVM config is made customizable.
2014-07-07 20:49:46 -07:00
Kohsuke Kawaguchi eabdf11b54 added serverspec test 2014-07-07 20:34:53 -07:00
Kohsuke Kawaguchi af0e735439 Added instructions as to how to launch a serverspect test 2014-07-07 20:30:14 -07:00
Kohsuke Kawaguchi 709a4f162c Light test as a touch up 2014-07-07 20:10:25 -07:00
Kohsuke Kawaguchi 9992af1961 disable directory indexing 2014-07-07 19:54:15 -07:00
Kohsuke Kawaguchi a074b74300 documenting the bandwidth throttling scheme 2014-07-07 19:48:51 -07:00
Kohsuke Kawaguchi 1ee4c557e2 Assign this directory to apache 2014-07-07 19:33:49 -07:00
Kohsuke Kawaguchi 79b431fe3f allow Jenkins to login as www-data to populate the releases 2014-07-07 19:32:26 -07:00
Kohsuke Kawaguchi 1f354940f2 fixing the name based virtual host setting 2014-07-07 19:28:09 -07:00
Kohsuke Kawaguchi a8b2567d2e mount task seems to require these arguments
Otherwise it ends up producing invalid /etc/fstab
2014-07-07 19:16:53 -07:00
Kohsuke Kawaguchi be428c8317 Can't figure out how to make this dependency work 2014-07-07 19:11:22 -07:00
Kohsuke Kawaguchi ec2f815279 Can't figure out how to load a module file, switching to template 2014-07-07 19:07:04 -07:00
Kohsuke Kawaguchi 571d29b41e adding rate limit setting 2014-07-07 18:56:54 -07:00
Kohsuke Kawaguchi 376b786f37 Moving the fragment into a separate file before adding more lines 2014-07-07 18:56:54 -07:00
Kohsuke Kawaguchi 1b36af6135 Enable rate limit module 2014-07-07 18:56:54 -07:00
Kohsuke Kawaguchi 6a1be6cf33 present only touches /etc/fstab 2014-07-07 18:56:54 -07:00
Kohsuke Kawaguchi e2be3b0835 Deploy Apache 2014-07-07 18:56:54 -07:00
Kohsuke Kawaguchi 163e7bafa6 defining dependencies.
Looks like all the dependencies need to be specified manually. That's incredibly stupid.
2014-07-07 18:56:54 -07:00
Kohsuke Kawaguchi 7fee7b3428 Provisioning LVM volume 2014-07-07 18:13:22 -07:00
Kohsuke Kawaguchi dcaadc3039 'reverseproxy_combined' log setting is defined by us
... therefore its definition needs to be managed by Puppet.
2014-07-07 15:52:53 -07:00
Kohsuke Kawaguchi 9560f4c709 Experimenting with using Rackspace as the fallback mirror.
...  to store all the past releases. This setting is supposed to enable
Rackspace servers to respond to fallback2.jenkins-ci.org though I'm not
sure how they do that without me providing a reverse mapping. But let's
see.
2014-07-07 10:41:23 -07:00
R. Tyler Croy 18e08d84fa Verify that password authentication for sshd is disabled on machines 2014-05-30 15:06:13 -07:00
R. Tyler Croy 7da1a887a6 Add ssh::server configuration to the base profile and disably password auth
[FIXED  INFRA-71]
2014-05-30 11:37:20 -07:00
R. Tyler Croy 5cd29bca16 Add some default iptables rules to allow SSh and block most everything else
This means that every role that includes a profile::base will be locked down by
default which is good.

[FIXED INFRA-72]
2014-05-30 09:29:01 -07:00
R. Tyler Croy 7a3403ce09 meetings.jenkins-ci.org is actually supposed to be hosted on edamame
Looks like I screwed up the sync between infra-puppet and jenkins-infra
2014-05-25 22:57:07 -07:00
R. Tyler Croy 6188fbf5a7 Move edamame to ns1 and spinach to ns2
This should make it feasible to kill DNS on lettuce now. yay

[FIXED INFRA-19]
2014-05-25 22:53:24 -07:00
R. Tyler Croy fbfce47237 Ignore vendor/ when attempting to lint
This allows this command to be run along-side the --path option in the bundle install
2014-05-25 22:08:20 -07:00
R. Tyler Croy e291dc9a44 Attempt to use a local path for bundler in CI 2014-05-25 22:02:30 -07:00
R. Tyler Croy 85dbc44f6b Use verbose logging for CI 2014-05-25 21:50:10 -07:00
R. Tyler Croy 202f663e27 Revert "Attempt to install all gems in CI"
This reverts commit 365560626d.
2014-05-25 21:48:38 -07:00
R. Tyler Croy 365560626d Attempt to install all gems in CI
I forget how this broke before
2014-05-25 21:38:12 -07:00
R. Tyler Croy df394b7c58 Create an A record for edamame properly 2014-05-25 21:20:56 -07:00
R. Tyler Croy adb47c231e Switch to using the released version of puppet-groovy that I published 2014-05-25 21:20:56 -07:00
R. Tyler Croy 439214c478 Merge pull request #30 from vjanelle/fix_dns
Fix NS records?
2014-05-25 21:18:20 -07:00
Vincent Janelle ad6751df0e Fix NS records? 2014-05-25 21:17:07 -07:00
R. Tyler Croy 0c954b7206 Correct the environment variable used in the vagrant-aws helper script 2014-05-25 17:24:42 -07:00
R. Tyler Croy ceabdac45c Add a groovy profile and install it on the spinach role
This is using our slightly forked version of a groovy module I found on Forge.

Will install groovy into a versioned directory in /opt

[FIXED INFRA-22]
2014-05-25 17:24:30 -07:00
R. Tyler Croy 3c2c000ca7 Upgrade vagrant to 1.6.2 and include a little helper script to define the default provider 2014-05-25 13:45:50 -07:00
R. Tyler Croy 770fe507e6 Change edamame to act as ns2.jenkins-ci.org 2014-05-25 13:34:08 -07:00
R. Tyler Croy 68d46a3467 Default to running m1.larges for faster provision times 2014-05-24 15:28:28 -07:00
R. Tyler Croy edba3dc524 Ensure the proper configuration directories get set up for the machine hosting bind 2014-05-24 15:28:12 -07:00
R. Tyler Croy 6292603fb2 Run the bind docker container with volumes and ports properly configured 2014-05-24 15:27:47 -07:00
R. Tyler Croy f223e78293 Minor code-review tweaks and addition of more rspec-puppet tests for profile::bind 2014-05-23 14:21:44 -07:00
R. Tyler Croy 2d77a32ff2 Add celery to the zone file 2014-05-23 14:21:30 -07:00
Kohsuke Kawaguchi 86b49d7eed Added a profile that deploys containerized BIND9
Temporarily deployed to edamame

Conflicts:

	dist/role/manifests/edamame.pp
	hieradata/common.yaml
2014-05-23 14:03:22 -07:00
R. Tyler Croy 2be8048d37 Update puppet-irc to the latest in our fork which includes a timeout option
This isn't strictly necessary, but will be good to test
2014-05-23 10:13:20 -07:00
R. Tyler Croy ae292d3dd4 Make sure all machines update their apt caches every morning
[FIXED INFRA-31]
2014-05-11 17:00:36 -07:00
R. Tyler Croy f7b60adf40 Add the parallel_tests gem for running the spec tests in parallel
On a machine faster than my laptop, this actually makes a difference.

Run:

    % parallel_rspec spec/classes
2014-05-11 16:49:07 -07:00
R. Tyler Croy b39d472a1c Make profile::base remove any remaining code from infra-puppet
This will prevent the two versions of config management from stomping all over
one another.
2014-05-11 16:48:10 -07:00
R. Tyler Croy 66dcf13c53 Use libruby instead of libopenssl-ruby on Lucid
See:

    ubuntu@ip-10-235-39-170:~$ sudo apt-get install libopenssl-ruby
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Note, selecting 'libruby' instead of 'libopenssl-ruby'
    libruby is already the newest version.
    0 upgraded, 0 newly installed, 0 to remove and 35 not upgraded.
2014-05-10 21:38:35 -07:00
R. Tyler Croy 2796fe9e12 Update puppet-irc to also notify IRC for 'changed' puppet runs 2014-05-10 20:09:39 -07:00
R. Tyler Croy 79e7c451c1 Merge pull request #29 from rtyler/issue/ci-slave-23
Cleaned up buildsllave profile
2014-05-10 16:27:27 -07:00
R. Tyler Croy 7195685b45 Clean up the profile::buildslave and incorporate it in the celery role
This also adds some relatively basic serverspec testing of what a buildslave
should look like on a real machine

[FIXED INFRA-23]
2014-05-10 14:37:48 -07:00
R. Tyler Croy 3de010a3b8 Ensure that vagrant-aws images come online with properly populated apt-caches
We won't need this on production machines since they should be updating their
internal apt-caches on a daily basis, see
<https://issues.jenkins-ci.org/browse/INFRA-31>

[FIXED INFRA-33]
2014-05-10 14:37:42 -07:00
R. Tyler Croy 48a3249d9c Add a .rspec to hold some RSpec preferences for all invocations 2014-05-10 14:14:48 -07:00
Kohsuke Kawaguchi 215b32a2fb added a profile for J-on-J build slave 2014-05-10 13:36:20 -07:00
R. Tyler Croy 94b584940d Celery should behave like a standard Linux machine, nothing special 2014-05-10 10:56:31 -07:00
Kohsuke Kawaguchi 010e0ea906 Adding place holder manifest for celery
The plan is to use this as a build slave for J-on-J
2014-05-09 20:05:02 -04:00
R. Tyler Croy 68987a1ed7 Fix a broken serverspec test
Shame on me for not running the serverspecs before commiting code
2014-05-09 13:58:20 -07:00
R. Tyler Croy a4c1854a54 Update the Vagrantfile to use AWS environment variables if they're available 2014-05-09 09:45:35 -07:00
R. Tyler Croy 46a81b843a Use the correct docroot for the meetings vhost 2014-05-04 16:14:14 -07:00
R. Tyler Croy f93484a40e Merge pull request #19 from jenkins-infra/robobutler
Robobutler
2014-05-04 16:06:07 -07:00
R. Tyler Croy b19a8eb266 Incorporate the log-compressor module into the robobutler profile 2014-05-04 15:53:47 -07:00
R. Tyler Croy 36c018e40e Add the puppet-apache-logcompressor module
This commit also reorganizes the .fixtures.yml file a bit to include more
modules that can be found directly on forge. It's a bit faster than a full git
clone
2014-05-04 15:53:47 -07:00
R. Tyler Croy e097409ee1 Remove the jenkins_apache module from the tree, this exists in puppet-apache-logcompressor 2014-05-04 15:53:46 -07:00
R. Tyler Croy d65257d4a0 Rework the butlerbot profile to use the puppetlabs/apache modules apache::vhost type 2014-05-04 15:53:46 -07:00
R. Tyler Croy c9f08fb742 update butlerbot profile and add more test coverage 2014-05-04 15:53:46 -07:00
R. Tyler Croy e4a58fae2c Refactor the main docker management into the docker profile
This should be included by all profiles that need to use docker
2014-05-04 15:53:46 -07:00
R. Tyler Croy e854d6090b Add vagrant/test-environment specific hiera data 2014-05-04 15:53:46 -07:00
R. Tyler Croy 657d101557 Upgrade the Vagrantfile to use a Docker-capable 12.04 LTS AMI 2014-05-04 15:53:46 -07:00
R. Tyler Croy 2f16cfbd59 Fix the `lint` rake task to use the right `ignore_paths`
Otherwise, a local `r10k puppetfile install` would cause boatloads of lint
errors since the puppetlabs_spec_helper lint task overwrites ignore_paths
instead of adding to it
(https://github.com/jenkins-infra/puppetlabs_spec_helper/blob/master/lib/puppetlabs_spec_helper/rake_tasks.rb#L162)
2014-05-04 15:53:46 -07:00
Kohsuke Kawaguchi 06b59d4637 Added manifest to install and run robobutler 2014-05-04 15:53:46 -07:00
Kohsuke Kawaguchi b951b64426 Adding the check to verify required plugins are available 2014-05-02 19:02:50 -07:00
Kohsuke Kawaguchi 1fc5333430 Set the box URL so that it doesn't have to be installed separately 2014-05-02 19:02:50 -07:00
R. Tyler Croy 6d6ee8728a Fix the relative link to roles, really 2014-05-02 17:24:24 -07:00
R. Tyler Croy ad7a3f39bc Fix the relative link to roles 2014-05-02 17:23:38 -07:00
R. Tyler Croy 77c7b5129a Document the local vagrant-based testing workflow 2014-05-02 17:22:55 -07:00
Kohsuke Kawaguchi bcb31d8003 Adding a script to edit common.yaml
... so that I won't forget how to do it.
2014-05-02 16:19:39 -07:00
R. Tyler Croy 7063dac4ca Merge pull request #25 from rtyler/vagrant-serverspec-and-roles
Introduce role-based serverspec testing, powered by Vagrant
2014-05-02 14:52:30 -07:00
R. Tyler Croy 488cfbc31c Add a placeholder spec dir for artichoke aka puppetmaster 2014-05-02 14:48:45 -07:00
R. Tyler Croy ab18b45079 Introduce role-based serverspec testing, powered by everybody's favorite hobo
This allows for writing and running acceptance tests for specific roles
(dist/role/manifests/*.pp) and spinning up a Vagrant AWS machine with that
role, then running the appropriate serverspec tests against it.
2014-05-02 14:41:29 -07:00
R. Tyler Croy 9b734615b0 Include a special Vagrant profile to make sure Vagrant nodes are properly permissioned 2014-05-02 12:52:02 -07:00
R. Tyler Croy 8a3f1090d8 Add a simple vagrant/puppet-apply based environment on top of AWS 2014-05-02 12:06:40 -07:00
R. Tyler Croy f627928b90 Merge pull request #23 from Spredzy/add_firewall_module
Add puppetlabs firewall module
2014-05-02 11:14:03 -07:00
Yanis Guenane 852e25bbf9 Add puppetlabs firewall module
Add puppetlabs firewall module to manage security rules.

[FIXED INFRA-18]
2014-05-02 14:10:30 -04:00
R. Tyler Croy 2a0dc0cce6 Merge pull request #24 from Spredzy/fix_it_compile
Fix the it { should compile } issue on tests
2014-05-02 11:08:18 -07:00
Yanis Guenane 274c0257a0 Fix the it { should compile } issue on tests
Currently the CI fails on it should compile.
This commit fixes it and allow tests to pass

See: https://tickets.puppetlabs.com/browse/PUP-1547
2014-05-02 14:03:26 -04:00
Kohsuke Kawaguchi 4d0b64d9f8 Ignore more vagrant related files 2014-05-02 10:35:47 -07:00
R. Tyler Croy 7395191799 Allow passwordless sudo for the sudo group 2014-05-02 10:18:47 -07:00
R. Tyler Croy 947bea1284 Merge pull request #22 from rtyler/ntp-fixes
Ntp fixes
2014-05-02 10:03:05 -07:00
R. Tyler Croy 8eeaf47dcb Ensure that the base profile is included in our new roles 2014-05-02 10:00:40 -07:00
Yanis Guenane 14f66a6edf Add the NTP profile to jenkins-infra
Add the NTP profile to the puppetmaster-role.
Configuration is taken from hiera.

[FIXED INFRA-24]
2014-05-02 09:12:26 -04:00
R. Tyler Croy edffb6fbaf Merge pull request #20 from jenkins-infra/fixirc
Fix irc reports
2014-05-01 16:48:27 -07:00
Adam Crews 8cf0b28325 Fixed duplicate resource issue 2014-05-01 16:47:21 -07:00
Adam Crews 3681ca26cd Fix irc reports 2014-05-01 16:45:24 -07:00
Adam Crews f49567a805 Merge pull request #16 from rtyler/pe-and-irc
Update to the latest puppet-irc which is more accomodating for PE
2014-05-01 16:11:07 -07:00
Adam Crews e4bd06a6cf Merge pull request #15 from rtyler/classify-existing-nodes
Classify all our existing agent'd nodes
2014-05-01 16:10:32 -07:00
R. Tyler Croy 24b981bb6f Merge pull request #11 from jenkins-infra/documentation
Add README for hiera data
2014-05-01 16:08:38 -07:00
Adam Crews 6b3baecfe8 Add doc about how to install agents 2014-05-01 16:05:45 -07:00
R. Tyler Croy 6f0f95b319 Update to the latest puppet-irc which is more accomodating for Puppet Enterprise 2014-05-01 16:00:56 -07:00
R. Tyler Croy 9296cbe1e6 Classify all our existing agent'd nodes
The node == role mapping isn't /great/ but because we have nodes that server a
number of functions, we can't really say 1 logical role (e.g. 'webserver') can
map to 1 logical node
2014-05-01 15:24:32 -07:00
Adam Crews e7c8853ba6 Merge pull request #13 from rtyler/issue/puppet-irc-25
Add a Puppet report processor to ping IRC when reports are generated
2014-05-01 14:45:09 -07:00
R. Tyler Croy 2b9e2eb952 Add hiera fixture file for rspec-puppet in CI 2014-05-01 14:43:07 -07:00
R. Tyler Croy acdd7ff762 Clean out old fixtures "just in case" 2014-05-01 14:31:14 -07:00
R. Tyler Croy 777f1303ad Add a Puppet report processor to ping IRC when reports are generated
This might get noisy, we'll see how it goes
2014-05-01 14:25:36 -07:00
R. Tyler Croy 6bba6751e7 Properly run the rspec-puppet tests as part of the CI jobs 2014-05-01 13:32:15 -07:00
Adam Crews 2c8c1a5ff1 Merge pull request #10 from rtyler/issue/sudoers-17
Add support for managing sudoers access across machines
2014-05-01 12:21:33 -07:00
R. Tyler Croy eef13844bc Merge pull request #9 from rtyler/lint-fixes
Lint and documentation fixes
2014-05-01 12:17:52 -07:00
R. Tyler Croy 153a9c608d Add support for managing sudoers access across machines
This includes the saz/sudo module and defines a difference in sudoer needs
between OSUOSL managed machines and those outside of the OSUOSL datacenter,
which won't have an `osuadmin` account on them

[FIXED INFRA-17]
2014-05-01 12:13:18 -07:00
Adam Crews 26de0c4928 Add README for hiera data 2014-05-01 12:01:45 -07:00
R. Tyler Croy 303662af4b More clearly document the puppetmaster profile 2014-05-01 10:22:52 -07:00
R. Tyler Croy 582a8f513f Turn lint warnings into failures!
Let's keep this repository clean :D
2014-05-01 10:21:10 -07:00
R. Tyler Croy e9b48bbe7e Enable rspec-puppet tests for the puppetmaster profile and role 2014-04-30 21:24:12 -07:00
R. Tyler Croy b54e869b36 Add spec/fixtures/modules/*/lib to the rspec $LOAD_PATH to handle custom providers in the catalog
This helps address autoload issues in rspec-puppet that would otherwise be handled by pluginsync

    1) role::puppetmaster
        Failure/Error: should contain_class 'profile::puppetmaster' }
        Puppet::Error:
        Could not autoload puppet/type/yaml_setting: Could not autoload puppet/provider/yaml_setting/mapped: cannot load such file -- puppetx/filemapper on node kiwi
        # ./spec/classes/role/puppetmaster_spec.rb:5:in `block (2 levels) in <top (required)>'
2014-04-30 21:23:13 -07:00
173 changed files with 5262 additions and 296 deletions

View File

@ -1,21 +1,6 @@
# Fixtures needed for puppetlabs_spec_helper
fixtures:
repositories:
stdlib:
repo: 'git://github.com/puppetlabs/puppetlabs-stdlib.git'
ref: '3.2.1'
r10k:
repo: 'git://github.com/acidprime/r10k.git'
ref: 'v1.0.2'
git:
repo: 'git://github.com/puppetlabs/puppetlabs-git.git'
ref: '0.0.3'
ruby:
repo: 'git://github.com/puppetlabs/puppetlabs-ruby.git'
ref: '0.1.1'
inifile:
repo: 'git://github.com/puppetlabs/puppetlabs-inifile.git'
ref: '1.0.3'
yamlfile:
repo: 'git://github.com/reidmv/puppet-module-yamlfile.git'
filemapper:
@ -23,7 +8,88 @@ fixtures:
ref: '1.1.2'
account:
repo: 'git://github.com/jenkins-infra/puppet-account.git'
ref: '03280b8'
ref: '0d949ae'
sudo:
repo: 'git://github.com/saz/puppet-sudo.git'
ref: 'v3.0.6'
irc:
repo: 'git://github.com/jenkins-infra/puppet-irc.git'
ref: '4e5e437'
docker:
repo: 'git://github.com/jenkins-infra/garethr-docker.git'
ref: '951781fbeb06fa8142e851c5746c35b302a6f427'
apachelogcompressor:
repo: 'git://github.com/jenkins-infra/puppet-apachelogcompressor.git'
forge_modules:
stdlib:
repo: 'puppetlabs/stdlib'
ref: '4.9.0'
datadog_agent:
repo: 'datadog/datadog_agent'
ref: '1.6.0'
r10k:
repo: 'zack/r10k'
ref: '3.1.1'
ruby:
repo: 'puppetlabs/ruby'
ref: '0.4.0'
firewall:
repo: 'puppetlabs/firewall'
ref: '1.1.3'
apache:
repo: 'puppetlabs/apache'
ref: '1.8.1'
git:
repo: 'puppetlabs/git'
ref: '0.4.0'
ntp:
repo: 'puppetlabs/ntp'
ref: '4.1.2'
inifile:
repo: 'puppetlabs/inifile'
ref: '1.4.3'
apt:
repo: 'puppetlabs/apt'
ref: '1.6.0'
concat:
repo: 'puppetlabs/concat'
ref: '1.2.5'
staging:
repo: 'nanliu/staging'
ref: '0.4.0'
groovy:
repo: 'rtyler/groovy'
ref: '1.0.1'
ssh:
repo: 'saz/ssh'
ref: '2.3.6'
lvm:
repo: 'puppetlabs/lvm'
ref: '0.3.2'
gcc:
repo: 'puppetlabs/gcc'
ref: '0.3.0'
vcsrepo:
repo: 'puppetlabs/vcsrepo'
ref: '1.1.0'
puppetserver_gem:
repo: 'puppetlabs/puppetserver_gem'
ref: '0.2.0'
letsencrypt:
repo: 'danzilio/letsencrypt'
ref: '1.0.0'
openldap:
repo: 'camptocamp/openldap'
ref: '1.14.0'
augeasproviders_shellvar:
repo: 'herculesteam/augeasproviders_shellvar'
ref: '2.2.1'
augeasproviders_core:
repo: 'herculesteam/augeasproviders_core'
ref: '2.1.2'
# Setting up a couple of symlinks to make it easier to treat profiles and roles
# just as another set of "modules" in our environment
symlinks:

5
.gitignore vendored
View File

@ -1,5 +1,8 @@
*.swp
*.sw*
.vagrant*
.ruby-*
spec/fixtures/
.bundle
vagrant2014*
d2014*
modules/

1
.rspec Normal file
View File

@ -0,0 +1 @@
--fail-fast --order random

32
Gemfile
View File

@ -2,21 +2,23 @@ source 'https://rubygems.org'
gem 'rake'
gem 'rspec-puppet'
gem 'puppet-lint'
gem 'puppet', '~> 3.4.0'
gem 'puppetlabs_spec_helper', :github => 'jenkins-infra/puppetlabs_spec_helper'
gem 'parallel_tests'
# Needed for integration tests
gem 'beaker'
# This gem is like, never released
gem 'puppet-lint', :github => 'rodjek/puppet-lint',
:ref => '2546fed6be894bbcff15c3f48d4b6f6bc15d94d1'
gem 'puppet', '~> 4.0.0'
# Needed to make sure we can install modules and then run a `puppet apply` in
# vagrant
gem 'r10k'
gem 'puppetlabs_spec_helper'
gem 'pry'
gem 'serverspec'
gem 'hiera-eyaml'
group :development do
# XXX: Shouldn't be needed anywhere by rtyler's machine, since Vagrant does'nt
# have proper installers for FreeBSD :(
gem 'vagrant', :github => 'mitchellh/vagrant', :ref => 'v1.5.4'
gem 'pry'
gem 'debugger', :platform => :mri
gem 'debugger-pry', :platform => :mri
end
# Vagrant plugins
group :plugins do
gem 'vagrant-aws', :github => 'mitchellh/vagrant-aws'
gem 'debugger', :platform => :mri_19
gem 'debugger-pry', :platform => :mri_19
gem 'byebug', :platform => :mri_20
end

View File

@ -1,146 +1,342 @@
GIT
remote: git://github.com/jenkins-infra/puppetlabs_spec_helper.git
revision: 772ce0ed04edb5b58f99de6ebebe8ccc233b46be
remote: git://github.com/rodjek/puppet-lint.git
revision: 2546fed6be894bbcff15c3f48d4b6f6bc15d94d1
ref: 2546fed6be894bbcff15c3f48d4b6f6bc15d94d1
specs:
puppetlabs_spec_helper (0.4.1.40)
mocha (>= 0.10.5)
rake
rspec (>= 2.9.0)
rspec-puppet (>= 0.1.1)
GIT
remote: git://github.com/mitchellh/vagrant-aws.git
revision: d125a2f8ca5422f55f555ab921aaac968d1e6e72
specs:
vagrant-aws (0.5.0.dev)
fog (~> 1.18)
GIT
remote: git://github.com/mitchellh/vagrant.git
revision: 285c7cdb2b3127d6dad4c2288cf9af6f15de6545
ref: v1.5.4
specs:
vagrant (1.5.4)
bundler (~> 1.5.2)
childprocess (~> 0.5.0)
erubis (~> 2.7.0)
i18n (~> 0.6.0)
listen (~> 2.7.1)
log4r (~> 1.1.9, < 1.1.11)
net-scp (~> 1.1.0)
net-ssh (>= 2.6.6, < 2.8.0)
rb-kqueue (~> 0.2.0)
wdm (~> 0.1.0)
puppet-lint (1.1.0)
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (2.2.8)
addressable (2.4.0)
aws-sdk (1.66.0)
aws-sdk-v1 (= 1.66.0)
aws-sdk-v1 (1.66.0)
json (~> 1.4)
nokogiri (>= 1.4.4)
beaker (2.39.0)
aws-sdk (~> 1.57)
beaker-answers (~> 0.0)
beaker-hiera (~> 0.0)
beaker-pe (~> 0.0)
docker-api
fission (~> 0.4)
fog (~> 1.25, < 1.35.0)
fog-google (~> 0.0.9)
google-api-client (~> 0.8)
hocon (~> 0.1)
inifile (~> 2.0)
json (~> 1.8)
mime-types (~> 2.99)
minitest (~> 5.4)
net-scp (~> 1.2)
net-ssh (~> 2.9)
open_uri_redirections (~> 0.2.1)
rbvmomi (~> 1.8)
rsync (~> 1.0.9)
stringify-hash (~> 0.0)
unf (~> 0.1)
beaker-answers (0.4.0)
require_all (~> 1.3.2)
stringify-hash (~> 0.0.0)
beaker-hiera (0.1.1)
stringify-hash (~> 0.0.0)
beaker-pe (0.1.2)
stringify-hash (~> 0.0.0)
builder (3.2.2)
celluloid (0.15.2)
timers (~> 1.1.0)
celluloid-io (0.15.0)
celluloid (>= 0.15.0)
nio4r (>= 0.5.0)
childprocess (0.5.3)
ffi (~> 1.0, >= 1.0.11)
byebug (8.2.1)
coderay (1.1.0)
columnize (0.8.9)
debugger (1.6.6)
colored (1.2)
columnize (0.9.0)
cri (2.6.1)
colored (~> 1.2)
debugger (1.6.8)
columnize (>= 0.3.1)
debugger-linecache (~> 1.2.0)
debugger-ruby_core_source (~> 1.3.2)
debugger-ruby_core_source (~> 1.3.5)
debugger-linecache (1.2.0)
debugger-pry (0.1.1)
debugger (~> 1)
pry (>= 0.9.9)
debugger-ruby_core_source (1.3.2)
debugger-ruby_core_source (1.3.8)
diff-lcs (1.2.5)
erubis (2.7.0)
excon (0.33.0)
facter (1.7.5)
ffi (1.9.3)
fog (1.22.0)
fog-brightbox
fog-core (~> 1.21, >= 1.21.1)
docker-api (1.28.0)
excon (>= 0.38.0)
json
excon (0.49.0)
facter (2.4.6)
CFPropertyList (~> 2.2.6)
faraday (0.9.2)
multipart-post (>= 1.2, < 3)
faraday_middleware (0.9.2)
faraday (>= 0.7.4, < 0.10)
faraday_middleware-multi_json (0.0.6)
faraday_middleware
multi_json
fission (0.5.0)
CFPropertyList (~> 2.2)
fog (1.34.0)
fog-atmos
fog-aws (>= 0.6.0)
fog-brightbox (~> 0.4)
fog-core (~> 1.32)
fog-dynect (~> 0.0.2)
fog-ecloud (~> 0.1)
fog-google (>= 0.0.2)
fog-json
fog-local
fog-powerdns (>= 0.1.1)
fog-profitbricks
fog-radosgw (>= 0.0.2)
fog-riakcs
fog-sakuracloud (>= 0.0.4)
fog-serverlove
fog-softlayer
fog-storm_on_demand
fog-terremark
fog-vmfusion
fog-voxel
fog-xml (~> 0.1.1)
ipaddress (~> 0.5)
nokogiri (~> 1.5, >= 1.5.11)
fog-brightbox (0.0.2)
fog-atmos (0.1.0)
fog-core
fog-xml
fog-aws (0.9.2)
fog-core (~> 1.27)
fog-json (~> 1.0)
fog-xml (~> 0.1)
ipaddress (~> 0.8)
fog-brightbox (0.10.1)
fog-core (~> 1.22)
fog-json
inflecto (~> 0.0.2)
fog-core (1.37.0)
builder
excon (~> 0.45)
formatador (~> 0.2)
fog-dynect (0.0.3)
fog-core
fog-json
fog-core (1.22.0)
builder
excon (~> 0.33)
formatador (~> 0.2)
mime-types
net-scp (~> 1.1)
net-ssh (>= 2.1.3)
fog-json (1.0.0)
multi_json (~> 1.0)
formatador (0.2.4)
hiera (1.3.2)
fog-xml
fog-ecloud (0.3.0)
fog-core
fog-xml
fog-google (0.0.9)
fog-core
fog-json
fog-xml
fog-json (1.0.2)
fog-core (~> 1.0)
multi_json (~> 1.10)
fog-local (0.3.0)
fog-core (~> 1.27)
fog-powerdns (0.1.1)
fog-core (~> 1.27)
fog-json (~> 1.0)
fog-xml (~> 0.1)
fog-profitbricks (0.0.5)
fog-core
fog-xml
nokogiri
fog-radosgw (0.0.5)
fog-core (>= 1.21.0)
fog-json
fog-xml (>= 0.0.1)
fog-riakcs (0.1.0)
fog-core
fog-json
fog-xml
fog-sakuracloud (1.7.5)
fog-core
fog-json
fog-serverlove (0.1.2)
fog-core
fog-json
fog-softlayer (1.1.0)
fog-core
fog-json
fog-storm_on_demand (0.1.1)
fog-core
fog-json
fog-terremark (0.1.0)
fog-core
fog-xml
fog-vmfusion (0.1.0)
fission
fog-core
fog-voxel (0.1.0)
fog-core
fog-xml
fog-xml (0.1.2)
fog-core
nokogiri (~> 1.5, >= 1.5.11)
formatador (0.2.5)
google-api-client (0.9.4)
addressable (~> 2.3)
googleauth (~> 0.5)
httpclient (~> 2.7)
hurley (~> 0.1)
memoist (~> 0.11)
mime-types (>= 1.6)
representable (~> 2.3.0)
retriable (~> 2.0)
thor (~> 0.19)
googleauth (0.5.1)
faraday (~> 0.9)
jwt (~> 1.4)
logging (~> 2.0)
memoist (~> 0.12)
multi_json (~> 1.11)
os (~> 0.9)
signet (~> 0.7)
hiera (2.0.0)
json_pure
i18n (0.6.9)
json_pure (1.8.1)
listen (2.7.3)
celluloid (>= 0.15.2)
celluloid-io (>= 0.15.0)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
hiera-eyaml (2.0.8)
highline (~> 1.6.19)
trollop (~> 2.0)
highline (1.6.21)
hocon (0.9.5)
httpclient (2.7.1)
hurley (0.2)
inflecto (0.0.2)
inifile (2.0.2)
ipaddress (0.8.3)
json (1.8.3)
json_pure (1.8.3)
jwt (1.5.4)
little-plugger (1.1.4)
log4r (1.1.10)
logging (2.1.0)
little-plugger (~> 1.1)
multi_json (~> 1.10)
memoist (0.14.0)
metaclass (0.0.4)
method_source (0.8.2)
mime-types (2.2)
mini_portile (0.5.3)
mocha (1.0.0)
mime-types (2.99.1)
mini_portile2 (2.0.0)
minitar (0.5.4)
minitest (5.8.4)
mocha (1.1.0)
metaclass (~> 0.0.1)
multi_json (1.9.3)
net-scp (1.1.2)
multi_json (1.11.2)
multipart-post (2.0.0)
net-scp (1.2.1)
net-ssh (>= 2.6.5)
net-ssh (2.7.0)
nio4r (1.0.0)
nokogiri (1.6.1)
mini_portile (~> 0.5.0)
pry (0.9.12.6)
coderay (~> 1.0)
method_source (~> 0.8)
net-ssh (2.9.4)
net-telnet (0.1.1)
nokogiri (1.6.7.2)
mini_portile2 (~> 2.0.0.rc2)
open_uri_redirections (0.2.1)
os (0.9.6)
parallel (1.6.1)
parallel_tests (2.2.1)
parallel
pry (0.10.3)
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
puppet (3.4.3)
facter (~> 1.6)
hiera (~> 1.0)
rgen (~> 0.6.5)
puppet-lint (0.3.2)
rake (10.3.1)
rb-fsevent (0.9.4)
rb-inotify (0.9.4)
ffi (>= 0.5.0)
rb-kqueue (0.2.2)
ffi (>= 0.5.0)
rgen (0.6.6)
rspec (2.14.1)
rspec-core (~> 2.14.0)
rspec-expectations (~> 2.14.0)
rspec-mocks (~> 2.14.0)
rspec-core (2.14.8)
rspec-expectations (2.14.5)
diff-lcs (>= 1.1.3, < 2.0)
rspec-mocks (2.14.6)
rspec-puppet (1.0.1)
puppet (4.0.0)
facter (> 2.0, < 4)
hiera (>= 2.0, < 3)
json_pure
puppet-syntax (2.0.0)
rake
puppet_forge (2.1.1)
faraday (~> 0.9.0)
faraday_middleware (~> 0.9.0)
minitar
semantic_puppet (~> 0.1.0)
puppetlabs_spec_helper (1.0.1)
mocha
puppet-lint
puppet-syntax
rake
rspec-puppet
r10k (2.1.1)
colored (= 1.2)
cri (~> 2.6.1)
faraday (~> 0.9.0)
faraday_middleware (~> 0.9.0)
faraday_middleware-multi_json (~> 0.0.6)
log4r (= 1.1.10)
minitar
multi_json (~> 1.10)
puppet_forge (~> 2.1.1)
semantic_puppet (~> 0.1.0)
rake (10.4.2)
rbvmomi (1.8.2)
builder
nokogiri (>= 1.4.1)
trollop
representable (2.3.0)
uber (~> 0.0.7)
require_all (1.3.3)
retriable (2.1.0)
rspec (3.4.0)
rspec-core (~> 3.4.0)
rspec-expectations (~> 3.4.0)
rspec-mocks (~> 3.4.0)
rspec-core (3.4.1)
rspec-support (~> 3.4.0)
rspec-expectations (3.4.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.4.0)
rspec-its (1.2.0)
rspec-core (>= 3.0.0)
rspec-expectations (>= 3.0.0)
rspec-mocks (3.4.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.4.0)
rspec-puppet (2.2.0)
rspec
slop (3.5.0)
timers (1.1.0)
wdm (0.1.0)
rspec-support (3.4.1)
rsync (1.0.9)
semantic_puppet (0.1.1)
serverspec (2.24.3)
multi_json
rspec (~> 3.0)
rspec-its
specinfra (~> 2.43)
sfl (2.2)
signet (0.7.2)
addressable (~> 2.3)
faraday (~> 0.9)
jwt (~> 1.5)
multi_json (~> 1.10)
slop (3.6.0)
specinfra (2.44.7)
net-scp
net-ssh (~> 2.7)
net-telnet
sfl
stringify-hash (0.0.2)
thor (0.19.1)
trollop (2.1.2)
uber (0.0.15)
unf (0.1.4)
unf_ext
unf_ext (0.0.7.2)
PLATFORMS
ruby
DEPENDENCIES
beaker
byebug
debugger
debugger-pry
hiera-eyaml
parallel_tests
pry
puppet (~> 3.4.0)
puppet-lint
puppetlabs_spec_helper!
puppet (~> 4.0.0)
puppet-lint!
puppetlabs_spec_helper
r10k
rake
rspec-puppet
vagrant!
vagrant-aws!
serverspec
BUNDLED WITH
1.10.6

46
Jenkinsfile vendored Normal file
View File

@ -0,0 +1,46 @@
#!groovy
def nodeLabel = 'docker'
def dockerImage = 'rtyler/jenkins-infra-builder'
parallel(lint: {
node(nodeLabel) {
runInside(dockerImage) {
sh 'mkdir -p vendor/gems && bundle install --without development plugins --path=vendor/gems'
sh 'bundle exec rake lint'
}
}
},
verifyZoneFiles: {
node(nodeLabel) {
validateZoneFor('jenkins-ci.org', dockerImage)
validateZoneFor('jenkins.io', dockerImage)
}
},
rspec: {
node(nodeLabel) {
runInside(dockerImage) {
sh 'mkdir -p vendor/gems && bundle install --without development plugins --path=vendor/gems'
sh 'bundle exec rake spec'
}
}
},
)
def validateZoneFor(dnsZone, dockerImage) {
runInside(dockerImage) {
sh "/usr/sbin/named-checkzone ${dnsZone} dist/profile/files/bind/${dnsZone}.zone"
}
}
def runInside(String dockerImage, Closure c) {
/* This requires the Timestamper plugin to be installed on the Jenkins */
wrap([$class: 'TimestamperBuildWrapper']) {
docker.image(dockerImage).inside {
checkout scm
c.call()
}
}
}
// vim: ft=groovy

View File

@ -1,42 +1,86 @@
forge "http://forge.puppetlabs.com"
# Install and manage r10k
mod "zack/r10k", '1.0.2'
mod "zack/r10k", '3.1.1'
# Deps for zack/r10k
# We are tracking stdlib from git because the puppet module tool
# is getting in the way when we want to upgrade newer than the
# We are tracking stdlib from git because the puppet module tool
# is getting in the way when we want to upgrade newer than the
# supported module version
mod "stdlib", :git => 'git@github.com:puppetlabs/puppetlabs-stdlib.git',
:ref => '4.1.0'
mod "stdlib",
:git => 'git@github.com:puppetlabs/puppetlabs-stdlib.git',
:ref => '4.9.0'
mod "puppetlabs/ruby", '0.1.0'
mod "puppetlabs/gcc", '0.1.0'
mod "puppetlabs/pe_gem", '0.0.1'
mod "mhuffnagle/make", '0.0.2'
mod "puppetlabs/inifile", '1.0.3'
mod "puppetlabs/vcsrepo", '0.2.0'
mod "puppetlabs/git", '0.0.3'
mod 'puppetlabs/ruby', '0.4.0'
mod "puppetlabs/gcc", '0.3.0'
# Used for installing gems for the puppetserver, like with hiera-eyaml
mod "puppetlabs/puppetserver_gem", '0.2.0'
mod "puppetlabs/inifile", '1.4.3'
mod "puppetlabs/vcsrepo", '1.1.0'
mod "puppetlabs/git", '0.4.0'
mod "gentoo/portage", '2.2.0-rc1'
mod "puppetlabs/ntp", '3.0.3'
# Used for setting up ntp daemons on all machines to have a correct time
mod "puppetlabs/ntp", '4.1.2'
# Module for managing sudoers across all machines
mod 'saz/sudo', '3.0.6'
# Needed for managing firewall rules
mod 'puppetlabs/firewall', '1.1.3'
# Needed for managing .yaml files from within Puppet
mod 'reidmv/yamlfile'
# Needed by `yamlfile`
mod 'adrien/filemapper'
mod 'garethr/docker', '0.13.0'
mod 'docker', :git => 'git://github.com/jenkins-infra/garethr-docker.git',
:ref => '951781fbeb06fa8142e851c5746c35b302a6f427'
# Deps for docker
mod 'puppetlabs/apt', '1.4.2'
mod 'stahnma/epel', '0.0.6'
mod 'puppetlabs/apt', '1.6.0'
mod 'stahnma/epel', '1.2.2'
# Dependencies for the Puppet IRC report processor, using our forked version
# which updates on any changed status
mod 'irc', :git => 'git://github.com/jenkins-infra/puppet-irc.git',
:ref => '4e5e437'
# Needed for managing our accounts in hiera, this fork contains the pull
# request which adds support for multiple SSH keys:
# <https://github.com/torrancew/puppet-account/pull/18>
mod 'account', :git => 'git://github.com/jenkins-infra/puppet-account.git',
:ref => '03280b8'
:ref => '0d949ae'
mod 'jenkins_keys',
:git => 'git@github.com:rtyler/jenkins-keys.git'
:git => 'git@github.com:jenkins-infra/jenkins-keys.git',
:ref => 'eeb7db7'
# Apache and its dependencies
mod "puppetlabs/apache", '1.8.1'
# Used internally to gzip compress rotated logs
mod 'apachelogcompressor',
:git => 'git://github.com/jenkins-infra/puppet-apachelogcompressor.git',
:ref => '0113d7b'
mod "puppetlabs/concat", '1.2.5'
mod 'rtyler/groovy', '1.0.3'
# Dependency of `groovy
mod 'nanliu/staging', '0.4.0'
# For managing server-side ssh configuration options
mod 'saz/ssh', '2.3.6'
mod 'puppetlabs/lvm', '0.3.2'
mod 'datadog/datadog_agent', '1.6.0'
# Used for grabbing certificates for jenkins.io
mod 'danzilio/letsencrypt', '1.0.0'
# For managing ldap, and dependencies
mod 'camptocamp/openldap', '1.14.0'
mod 'herculesteam/augeasproviders_shellvar', '2.2.1'
mod 'herculesteam/augeasproviders_core', '2.1.2'

View File

@ -7,23 +7,55 @@ This repository is the [r10k](https://github.com/adrienthebo/r10k) control
repository for the [Jenkins](https://jenkins-ci.org) project's own
infrastructure.
**NOTE:** This repository and workflow are still a **work in progress**
## Local development
The amount of testing that can be done locally is still a **work in progress**
but thus far it's advisable that you do the following:
The amount of testing that can be done locally is as follows:
* `bundle install` - To get the necessary gems to run tests locally, if you're
unfamiliar with Ruby development you may want to use [RVM](http://rvm.io/)
to create an isolated Ruby environment
* `bundle exec rake spec lint` - Will run the
* `./check` - Will run the
[rspec-puppet](http://rspec-puppet) unit tests and the
[puppet-lint](http://puppet-lint.com) style validation. If you intend to run
the rspec-puppet over and over, use `rake spec_standalone` to avoid
re-initializing the Puppet module fixtures every time.
* Vagrant-based testing - **coming soon**
### Vagrant-based testing
#### Pre-requisites
* Import your SSH public key into a [key
pair](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)
into the `us-west-2` region. We have an AMI in us-west-2 that has Ubuntu 12.04,
Puppet and a Docker-capable kernel installed for testing
* Make sure your `default` [security
group](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)
allows SSH (port 22) from the outside world.
* Run the `./vagrant-bootstrap` script locally to make sure your local
environment is prepared for Vagranting
#### Running server spec tests
We're using [serverspec](http://serverspec.org) for on-machine acceptance
testing. Combined with Vagrant, this allows us to create an acceptance test
[per-role](dist/role/manifests) which provisions and tests an entire Puppet
catalog on a VM.
##### Pre-requisites
* Install [Vagrant](https://www.vagrantup.com)
* Install Vagrant plugins: `vagrant plugin install vagrant-aws vagrant-serverspec`
To launch a test instance, `vagrant up ROLE` where `ROLE` is [one of the defined roles](dist/role/manifests).
You can rerun puppet and execute tests with `vagrant provision ROLE` repeatedly while the VM is up and running.
To just rerun serverspect without puppet, `vagrant provision --provision-with serverspec ROLE`.
When it's all done, deprovision the instance via `vagrant destroy ROLE`.
### Updating dependencies
For reasons that Tyler will hopefully clarify at some point, this module maintains
the list of Puppet module dependencies in `Puppetfile` and `.fixtures.yml`. They
need to be kept in sync. When you modify them, you can have the local environment
reflect changes by running `bundle exec rake resolve`.
## Branching model
@ -55,8 +87,31 @@ When a infra project team member is happy with the code in `staging` they can
create a merge from `staging` to `production`. Once something has been merged
to production, it will be automatically deployed to production hosts.
## Installing agents
For installing agents refer to the [installing
agents](http://docs.puppetlabs.com/pe/latest/install_agents.html) section of
the PuppetLabs documentation.
## Adding a new branch/environment
"Dynamic environments" are in a bit of flux for the current version (3.7) of
Puppet Enterprise that we're using. An unfortunate side-effect of this is that
creating a branch in this repository is *not* sufficient to create a dynamic
environment that can be used via the Puppet master.
The enable an environment, add a file on the Puppet master:
`/etc/puppetlabs/puppet/environments/my-environment-here/environment.conf` with
the following:
```conf
modulepath = ./dist:./modules:/opt/puppet/share/puppet/modules
manifest = ./manifests/site.pp
```
## Contributing
* `#jenkins-infra` on the [Freenode](http://freenode.net) IRC network
* [INFRA project](https://issues.jenkins-ci.org/browse/INFRA) in JIRA.
* [infra@lists.jenkins-ci.org](http://lists.jenkins-ci.org/mailman/listinfo/jenkins-infra)

View File

@ -1,13 +1,38 @@
require 'puppet-lint'
require 'puppet-lint/tasks/puppet-lint'
require 'puppetlabs_spec_helper/rake_tasks'
PuppetLint.configuration.send('disable_80chars')
PuppetLint.configuration.ignore_paths = ['modules/**/*.pp', 'spec/fixtures/**/*.pp']
desc "Validate the Puppet syntax of all manifests"
task :validate do
Dir['./{dist,manifests}/**/*.pp'].each do |filename|
sh "puppet parser validate '#{filename}'"
sh "puppet parser validate --parser future '#{filename}'"
end
end
PuppetLint::RakeTask.new :lint do |config|
config.disable_checks = ['80chars',
'class_parameter_defaults',
'names_containing_dash']
config.pattern = 'dist/**/*.pp'
config.fail_on_warnings = true
end
desc 'Resolve all the dependencies'
task :resolve do
# for reasons beyond me, we list dependencies in Puppetfile and .fixtures.yml
# we need to keep them in sync, and when we change them we need to run two commands
# to reflect those changes
# this fills ./modules
`rm -rf ./modules/*`
`r10k puppetfile install`
# this fills ./spec/fixtures/modules
Rake::Task['spec_clean'].invoke
Rake::Task['spec_prep'].invoke
end
desc 'Check syntax of DNS zone file'
task "test-zonefile" do
sh "docker run --rm -v $PWD:/data kohsuke/named-checkzone jenkins-ci.org dist/profile/files/bind/jenkins-ci.org.zone"
sh "docker run --rm -v $PWD:/data kohsuke/named-checkzone jenkins.io dist/profile/files/bind/jenkins.io.zone"
end

87
Vagrantfile vendored Normal file
View File

@ -0,0 +1,87 @@
# Required plugins:
# vagrant-aws
# vagrant-serverspec
Vagrant.configure("2") do |config|
access_key_id = ENV['AWS_ACCESS_KEY_ID'] || File.read('.vagrant_key_id').chomp
secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] || File.read('.vagrant_secret_access_key').chomp
keypair = ENV['AWS_KEYPAIR_NAME'] || File.read('.vagrant_keypair_name').chomp
# prefer aws provider over virtualbox to make it the default
config.vm.provider 'aws'
config.vm.provider 'virtualbox'
config.vm.box = 'dummy'
config.vm.box_url = 'https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box'
# modules/account/.travis.yml has incorrect link target, and this blows up
# when vagrant tries to rsync files as it tries to resolves symlinks.
# see http://www.trilithium.com/johan/2011/09/delete-broken-symlinks/
`find -L . -type l -delete`
config.vm.provider(:aws) do |aws, override|
aws.access_key_id = access_key_id
aws.secret_access_key = secret_access_key
aws.keypair_name = keypair
# Ubuntu LTS 14.04 in us-west-2 stock
aws.ami = 'ami-9abea4fb'
aws.region = 'us-west-2'
aws.instance_type = 'm3.medium'
override.ssh.username = "ubuntu"
override.ssh.private_key_path = File.expand_path('~/.ssh/id_rsa')
end
Dir['./dist/role/manifests/**/*.pp'].each do |role|
next if File.directory? role
# Turn `dist/role/manifests/spinach.pp` into `spinach`
veggie = File.basename(role).gsub('.pp', '')
# If there are no serverspec files, we needn't provision a machine!
if Dir["./spec/server/#{veggie}/*.rb"].empty?
puts ">> no serverspec defined for #{veggie}"
next
end
config.vm.define(veggie) do |node|
node.vm.provider(:aws) do |aws, override|
aws.tags = {
:Name => veggie
}
end
bootstrap_script = <<-EOF
if [ ! -f "/apt-cached" ]; then
wget -q http://apt.puppetlabs.com/puppetlabs-release-trusty.deb
dpkg -i puppetlabs-release-trusty.deb
apt-get update && apt-get install -yq puppet && touch /apt-cached;
fi
EOF
# This is a Vagrant-local hack to make sure we have properly udpated apt
# caches since AWS machines are definitely going to have stale ones
node.vm.provision 'shell', :inline => bootstrap_script
node.vm.provision 'puppet' do |puppet|
puppet.manifest_file = File.basename(role)
puppet.manifests_path = File.dirname(role)
puppet.module_path = ['modules', 'dist']
# Setting the work to /vagrant so our hiera configuration will resolve
# properly to our relative hieradata/
puppet.working_directory = '/vagrant'
puppet.facter = {
:vagrant => '1',
}
puppet.hiera_config_path = 'spec/fixtures/hiera.yaml'
puppet.options = "--verbose --execute 'include role::#{veggie}\n include profile::vagrant'"
end
node.vm.provision :serverspec do |spec|
spec.pattern = "spec/server/#{veggie}/*.rb"
end
end
end
end
# vim: ft=ruby

6
check Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash -ex
bundle exec rake lint test-zonefile
# this assumes that you have run `bundle exec rake spec_prep` at least once
# to set up fixtures
bundle exec parallel_rspec spec/classes

View File

@ -2,4 +2,9 @@
gem install bundler --no-ri --no-rdoc
bundle install --without development plugins
mkdir -p vendor/gems
bundle install --verbose --without development plugins --path=vendor/gems
# clean out old fixtures just in case they were left there by a previous build
bundle exec rake spec_clean || true

3
ci/10_lintpuppet.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh -xe
exec bundle exec rake lint

View File

@ -1,3 +0,0 @@
#!/bin/sh -xe
bundle exec rake validate lint

3
ci/11_rspecpuppet.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh -xe
exec bundle exec rake spec --trace

6
ci/12_bindcheck.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh -xe
#
# Ensure our DNS zone files are correct
# <https://issues.jenkins-ci.org/browse/INFRA-283>
#exec bundle exec rake test-zonefile

12
ci/Dockerfile Normal file
View File

@ -0,0 +1,12 @@
# Instance for running our tests quickly and easily
FROM ubuntu:trusty
MAINTAINER tyler@linux.com
# Packages we need for a sane build
# * ruby, ruby-dev, zlib1g-dev: all to ensure `bundle install` works properly
# * git: duh
# * build-essential: make sure Ruby has some tools for building native
# extensions
# * bind9utils: ensure we can verify DNS zones
RUN apt-get update -q && apt-get install -qy git build-essential zlib1g-dev ruby ruby-dev bind9utils && apt-get clean
RUN gem install bundler --no-ri --no-rdoc

View File

@ -0,0 +1,4 @@
# MANAGED BY PUPPET. DO NOT MODIFY
# define log file format
LogFormat "\"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %I %O" reverseproxy_combined

View File

@ -0,0 +1,4 @@
# MANAGED BY PUPPET. DO NOT MODIFY
# Define an access log for VirtualHosts that don't define their own logfile
CustomLog "|/usr/bin/rotatelogs /var/log/apache2/other/access.log.%Y%m%d%H%M%S 86400" reverseproxy_combined

View File

@ -0,0 +1,79 @@
-----BEGIN CERTIFICATE-----
MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3
MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE
CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD
EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD
BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv
K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e
cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY
pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n
eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB
AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv
9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n
b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG
CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv
MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz
91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2
RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi
DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11
GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x
LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEfTCCA2WgAwIBAgIDG+cVMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVT
MSEwHwYDVQQKExhUaGUgR28gRGFkZHkgR3JvdXAsIEluYy4xMTAvBgNVBAsTKEdv
IERhZGR5IENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMTAx
MDcwMDAwWhcNMzEwNTMwMDcwMDAwWjCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHku
Y29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1
dGhvcml0eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3Fi
CPH6WTT3G8kYo/eASVjpIoMTpsUgQwE7hPHmhUmfJ+r2hBtOoLTbcJjHMgGxBT4H
Tu70+k8vWTAi56sZVmvigAf88xZ1gDlRe+X5NbZ0TqmNghPktj+pA4P6or6KFWp/
3gvDthkUBcrqw6gElDtGfDIN8wBmIsiNaW02jBEYt9OyHGC0OPoCjM7T3UYH3go+
6118yHz7sCtTpJJiaVElBWEaRIGMLKlDliPfrDqBmg4pxRyp6V0etp6eMAo5zvGI
gPtLXcwy7IViQyU0AlYnAZG0O3AqP26x6JyIAX2f1PnbU21gnb8s51iruF9G/M7E
GwM8CetJMVxpRrPgRwIDAQABo4IBFzCCARMwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9BUFuIMGU2g/eMB8GA1Ud
IwQYMBaAFNLEsNKR1EwRcbNhyz2h/t2oatTjMDQGCCsGAQUFBwEBBCgwJjAkBggr
BgEFBQcwAYYYaHR0cDovL29jc3AuZ29kYWRkeS5jb20vMDIGA1UdHwQrMCkwJ6Al
oCOGIWh0dHA6Ly9jcmwuZ29kYWRkeS5jb20vZ2Ryb290LmNybDBGBgNVHSAEPzA9
MDsGBFUdIAAwMzAxBggrBgEFBQcCARYlaHR0cHM6Ly9jZXJ0cy5nb2RhZGR5LmNv
bS9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWQtTvZKGEacke+1bMc8d
H2xwxbhuvk679r6XUOEwf7ooXGKUwuN+M/f7QnaF25UcjCJYdQkMiGVnOQoWCcWg
OJekxSOTP7QYpgEGRJHjp2kntFolfzq3Ms3dhP8qOCkzpN1nsoX+oYggHFCJyNwq
9kIDN0zmiN/VryTyscPfzLXs4Jlet0lUIDyUGAzHHFIYSaRt4bNYC8nY7NmuHDKO
KHAN4v6mF56ED71XcLNa6R+ghlO773z/aQvgSMO3kwvIClTErF0UZzdsyqUvMQg3
qm5vjLyb4lddJIGvl5echK1srDdMZvNhkREg5L4wn3qkKQmw4TRfZHcYQFHfjDCm
rw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
ReYNnyicsbkqWletNw+vHX/bvZ8=
-----END CERTIFICATE-----

18
dist/profile/files/apachecert/bogus.crt vendored Normal file
View File

@ -0,0 +1,18 @@
-----BEGIN CERTIFICATE-----
MIIC8zCCAdugAwIBAgIJAI0COa8Ryww1MA0GCSqGSIb3DQEBBQUAMBAxDjAMBgNV
BAMMBWJvZ3VzMB4XDTE1MDMyODIzMjc0NFoXDTI1MDMyNTIzMjc0NFowEDEOMAwG
A1UEAwwFYm9ndXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtd1sq
Fiov+Z37A+oXH6zuTvykUZKFLdN/kX5miansn5KJdJpzQeJEyR0av+IBJ4ipfJey
A//J3DpH70a4zuyCbRs1N4e1yWgZzNQQSY4VBoOGXpCENnNwub2ab9y/9NjMV4dH
yQHd7ciaWDelT1tiiTJn2DmGO0ElU5axfclD/ODrpkyLvUiZZmpkmA5NaBJe4VR5
zrG/DhPJEEJnHBqIiPEJZtfUGJLtG6NnLVdfHxg8SfWkbNQWV3V/8SXQ4IXO5Eze
B0fAT8HSZBQD92YgczWaK5HBTUoxutjHCLHhkCTQ2GJaMehjPpAt4C1wShSeZDJt
N60dfEBDlmUsbgbdAgMBAAGjUDBOMB0GA1UdDgQWBBQyo1CZFOML6oQIkerOQZGQ
pS9jMzAfBgNVHSMEGDAWgBQyo1CZFOML6oQIkerOQZGQpS9jMzAMBgNVHRMEBTAD
AQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAdNh7GK9ekSBAhFX8vKYtiN9jjsowQRP0B
t8iCC966jmpJm6cehMomuHqatlqKZM8llPckR+weuqRlLfaZxTnujYzl6uqqwyHa
CLv6csKJFN9mTJ2rMLOrhnw31LjSZbDnYjPnUIOpYEg03UW9r2S5Hr989T7YcqFl
zFxbDIUwxBCuA8yOrKQFtMKfxN17WZwHCEAg4S24VlP8+wXKclzrqZHnkQ+NJ0ci
MsVf/UlROx/JT92w0z2AVLS8xdogROpeYSOQ433ceXyyhVTLxGFJ5OZJ5z7DFfWQ
Kvern/eB95PdMMllttFKpCXhx2zeUWH+Mn/gNgjcLBXeQdEif/ZG
-----END CERTIFICATE-----

View File

@ -0,0 +1,79 @@
-----BEGIN CERTIFICATE-----
MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3
MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE
CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD
EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD
BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv
K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e
cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY
pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n
eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB
AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv
9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n
b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG
CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv
MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz
91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2
RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi
DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11
GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x
LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEfTCCA2WgAwIBAgIDG+cVMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVT
MSEwHwYDVQQKExhUaGUgR28gRGFkZHkgR3JvdXAsIEluYy4xMTAvBgNVBAsTKEdv
IERhZGR5IENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMTAx
MDcwMDAwWhcNMzEwNTMwMDcwMDAwWjCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHku
Y29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1
dGhvcml0eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3Fi
CPH6WTT3G8kYo/eASVjpIoMTpsUgQwE7hPHmhUmfJ+r2hBtOoLTbcJjHMgGxBT4H
Tu70+k8vWTAi56sZVmvigAf88xZ1gDlRe+X5NbZ0TqmNghPktj+pA4P6or6KFWp/
3gvDthkUBcrqw6gElDtGfDIN8wBmIsiNaW02jBEYt9OyHGC0OPoCjM7T3UYH3go+
6118yHz7sCtTpJJiaVElBWEaRIGMLKlDliPfrDqBmg4pxRyp6V0etp6eMAo5zvGI
gPtLXcwy7IViQyU0AlYnAZG0O3AqP26x6JyIAX2f1PnbU21gnb8s51iruF9G/M7E
GwM8CetJMVxpRrPgRwIDAQABo4IBFzCCARMwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9BUFuIMGU2g/eMB8GA1Ud
IwQYMBaAFNLEsNKR1EwRcbNhyz2h/t2oatTjMDQGCCsGAQUFBwEBBCgwJjAkBggr
BgEFBQcwAYYYaHR0cDovL29jc3AuZ29kYWRkeS5jb20vMDIGA1UdHwQrMCkwJ6Al
oCOGIWh0dHA6Ly9jcmwuZ29kYWRkeS5jb20vZ2Ryb290LmNybDBGBgNVHSAEPzA9
MDsGBFUdIAAwMzAxBggrBgEFBQcCARYlaHR0cHM6Ly9jZXJ0cy5nb2RhZGR5LmNv
bS9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWQtTvZKGEacke+1bMc8d
H2xwxbhuvk679r6XUOEwf7ooXGKUwuN+M/f7QnaF25UcjCJYdQkMiGVnOQoWCcWg
OJekxSOTP7QYpgEGRJHjp2kntFolfzq3Ms3dhP8qOCkzpN1nsoX+oYggHFCJyNwq
9kIDN0zmiN/VryTyscPfzLXs4Jlet0lUIDyUGAzHHFIYSaRt4bNYC8nY7NmuHDKO
KHAN4v6mF56ED71XcLNa6R+ghlO773z/aQvgSMO3kwvIClTErF0UZzdsyqUvMQg3
qm5vjLyb4lddJIGvl5echK1srDdMZvNhkREg5L4wn3qkKQmw4TRfZHcYQFHfjDCm
rw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
ReYNnyicsbkqWletNw+vHX/bvZ8=
-----END CERTIFICATE-----

View File

@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFgTCCBGmgAwIBAgIJAPgPNY0nPxZxMA0GCSqGSIb3DQEBCwUAMIG0MQswCQYD
VQQGEwJVUzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEa
MBgGA1UEChMRR29EYWRkeS5jb20sIEluYy4xLTArBgNVBAsTJGh0dHA6Ly9jZXJ0
cy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5LzEzMDEGA1UEAxMqR28gRGFkZHkgU2Vj
dXJlIENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTE1MDIwODE5NTQzOFoX
DTE3MDIwOTAzNDEyMlowPDEhMB8GA1UECxMYRG9tYWluIENvbnRyb2wgVmFsaWRh
dGVkMRcwFQYDVQQDEw5qZW5raW5zLWNpLm9yZzCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAMQKctZILOefeVAaTIbD6bq8etUU9IaQcuUKkxf0AEh34cqj
pufhzMaz5iJRYRdZDXzfaIVcn06wWV4AEz2IVllGYghpOzcwSMwjlIzLbScR/4ib
meokVhZyiQXoN2jkjUVCKGVMruAndL1ABSMSgZL5OWJQkiP4EzeFAf5+uInme8GO
YgYL5Rt7EjhisukAOCmXwCH5lJmcpI+eXaQMPr9X7D4L3WRLw3dH0b5r9zMlZmvX
al8HKOue6aZVDjzERnoy4bid3JgP0xOM7GTMMFgtOHiY51L+iD1aZR3LBwKoNnY7
KbrKEs8wZ9wu8mJbpGVZwT2eKejeBiTSGrRMBWMCAwEAAaOCAgswggIHMAwGA1Ud
EwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB
/wQEAwIFoDA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLmdvZGFkZHkuY29t
L2dkaWcyczEtODcuY3JsMFMGA1UdIARMMEowSAYLYIZIAYb9bQEHFwEwOTA3Bggr
BgEFBQcCARYraHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0
b3J5LzB2BggrBgEFBQcBAQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmdv
ZGFkZHkuY29tLzBABggrBgEFBQcwAoY0aHR0cDovL2NlcnRpZmljYXRlcy5nb2Rh
ZGR5LmNvbS9yZXBvc2l0b3J5L2dkaWcyLmNydDAfBgNVHSMEGDAWgBRAwr0njsw0
gzCiM9f7bLPwtCyAzjCBggYDVR0RBHsweYIOamVua2lucy1jaS5vcmeCEnd3dy5q
ZW5raW5zLWNpLm9yZ4IUdXNhZ2UuamVua2lucy1jaS5vcmeCEnN2bi5qZW5raW5z
LWNpLm9yZ4IRY2kuamVua2lucy1jaS5vcmeCFnVwZGF0ZXMuamVua2lucy1jaS5v
cmcwHQYDVR0OBBYEFDoi2BzFKa2pxSl3EppQt97qynR0MA0GCSqGSIb3DQEBCwUA
A4IBAQBw43snveMPqYntLt0oAeGNmaoi3HexEfL+lOUzvpWHK68Cpk1HGHgbWfXk
HP9/pW1YLmv8ZZtdwlwIdEcPVizEMskEeSvx91eKpJrohqr6XCIFdKoV46sKuBdz
M04wMmgRjbQYX9d2DMrjBb0gtJ1AmfxkAtT8gdKpL4lDybPeFLLcydXOLC6p1urS
LWr/HDXQWotrazUw8UUJieTwBeouNWE01sbvlbqsssmtbgjze7Y0nWJRtTjtFdI1
5LnR5gnhcCLJUb75vXEfcq7JD2caDpxx1/L45f4UIim/AJUxtJyNxoPEbvoDz9jx
FYH3RoOnMO6yjshFKBsSnPD0zfh6
-----END CERTIFICATE-----

11
dist/profile/files/apachecert/ssl.conf vendored Normal file
View File

@ -0,0 +1,11 @@
# MANAGED BY PUPPET. DO NOT MODIFY
<IfModule mod_ssl.c>
# put into a IfModule so that SSL can be disabled without breaking anything
SSLCertificateFile /etc/apache2/certificate.crt
SSLCertificateChainFile /etc/apache2/bundle.crt
SSLCertificateKeyFile /etc/apache2/server.key
# Disable SSLv2 and SSLV3 since both are insecure and force the use of TLS1
# or higher (INFRA-390)
SSLProtocol All -SSLv2 -SSLv3
</IfModule>

View File

@ -0,0 +1,79 @@
-----BEGIN CERTIFICATE-----
MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3
MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE
CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD
EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD
BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv
K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e
cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY
pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n
eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB
AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv
9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n
b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG
CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv
MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz
91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2
RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi
DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11
GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x
LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEfTCCA2WgAwIBAgIDG+cVMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVT
MSEwHwYDVQQKExhUaGUgR28gRGFkZHkgR3JvdXAsIEluYy4xMTAvBgNVBAsTKEdv
IERhZGR5IENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMTAx
MDcwMDAwWhcNMzEwNTMwMDcwMDAwWjCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHku
Y29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1
dGhvcml0eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3Fi
CPH6WTT3G8kYo/eASVjpIoMTpsUgQwE7hPHmhUmfJ+r2hBtOoLTbcJjHMgGxBT4H
Tu70+k8vWTAi56sZVmvigAf88xZ1gDlRe+X5NbZ0TqmNghPktj+pA4P6or6KFWp/
3gvDthkUBcrqw6gElDtGfDIN8wBmIsiNaW02jBEYt9OyHGC0OPoCjM7T3UYH3go+
6118yHz7sCtTpJJiaVElBWEaRIGMLKlDliPfrDqBmg4pxRyp6V0etp6eMAo5zvGI
gPtLXcwy7IViQyU0AlYnAZG0O3AqP26x6JyIAX2f1PnbU21gnb8s51iruF9G/M7E
GwM8CetJMVxpRrPgRwIDAQABo4IBFzCCARMwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9BUFuIMGU2g/eMB8GA1Ud
IwQYMBaAFNLEsNKR1EwRcbNhyz2h/t2oatTjMDQGCCsGAQUFBwEBBCgwJjAkBggr
BgEFBQcwAYYYaHR0cDovL29jc3AuZ29kYWRkeS5jb20vMDIGA1UdHwQrMCkwJ6Al
oCOGIWh0dHA6Ly9jcmwuZ29kYWRkeS5jb20vZ2Ryb290LmNybDBGBgNVHSAEPzA9
MDsGBFUdIAAwMzAxBggrBgEFBQcCARYlaHR0cHM6Ly9jZXJ0cy5nb2RhZGR5LmNv
bS9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWQtTvZKGEacke+1bMc8d
H2xwxbhuvk679r6XUOEwf7ooXGKUwuN+M/f7QnaF25UcjCJYdQkMiGVnOQoWCcWg
OJekxSOTP7QYpgEGRJHjp2kntFolfzq3Ms3dhP8qOCkzpN1nsoX+oYggHFCJyNwq
9kIDN0zmiN/VryTyscPfzLXs4Jlet0lUIDyUGAzHHFIYSaRt4bNYC8nY7NmuHDKO
KHAN4v6mF56ED71XcLNa6R+ghlO773z/aQvgSMO3kwvIClTErF0UZzdsyqUvMQg3
qm5vjLyb4lddJIGvl5echK1srDdMZvNhkREg5L4wn3qkKQmw4TRfZHcYQFHfjDCm
rw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
ReYNnyicsbkqWletNw+vHX/bvZ8=
-----END CERTIFICATE-----

View File

@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFbTCCBFWgAwIBAgIJAIjgqHJGvu3QMA0GCSqGSIb3DQEBCwUAMIG0MQswCQYD
VQQGEwJVUzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEa
MBgGA1UEChMRR29EYWRkeS5jb20sIEluYy4xLTArBgNVBAsTJGh0dHA6Ly9jZXJ0
cy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5LzEzMDEGA1UEAxMqR28gRGFkZHkgU2Vj
dXJlIENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTE2MDIyOTA0MzUzOFoX
DTE3MDMwMTA0MzUzOFowQzEhMB8GA1UECxMYRG9tYWluIENvbnRyb2wgVmFsaWRh
dGVkMR4wHAYDVQQDExVpc3N1ZXMuamVua2lucy1jaS5vcmcwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDQnPfbfsSDaYNzM30TTldIcY1laR0Di3lT4e8l
DdBrvHR4dzyeh0A2LzrW4VhhwYDGrLg/aXfUZ5E/cD4iC2J5zZ1/tM3fuZDeEV6V
MAMpr8SEmuZVdljeXzlbXUoSYpbRqjuexVGzgmbPigiGdetLZxpmsfZTu6UkdWIN
NXnY2a1icHaODvPhrIkuXp0T1HcWBa49GLk8xLHLUZPQg+yXSbwjkVfjJtdQBlHq
UPJKodNpoQuXe0s6cvz9Oa5asR9zu2My6jf6JYkH2hS+pUsVHLefXvTfQSg4TRLl
Gz+BpJzar393X0nO7ObKrWHgwbDRWR1B4NxtqBf242xjmSyVAgMBAAGjggHwMIIB
7DAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAO
BgNVHQ8BAf8EBAMCBaAwNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL2NybC5nb2Rh
ZGR5LmNvbS9nZGlnMnMxLTIwMS5jcmwwUwYDVR0gBEwwSjBIBgtghkgBhv1tAQcX
ATA5MDcGCCsGAQUFBwIBFitodHRwOi8vY2VydGlmaWNhdGVzLmdvZGFkZHkuY29t
L3JlcG9zaXRvcnkvMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDov
L29jc3AuZ29kYWRkeS5jb20vMEAGCCsGAQUFBzAChjRodHRwOi8vY2VydGlmaWNh
dGVzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvZ2RpZzIuY3J0MB8GA1UdIwQYMBaA
FEDCvSeOzDSDMKIz1/tss/C0LIDOMGcGA1UdEQRgMF6CFWlzc3Vlcy5qZW5raW5z
LWNpLm9yZ4IZd3d3Lmlzc3Vlcy5qZW5raW5zLWNpLm9yZ4ITd2lraS5qZW5raW5z
LWNpLm9yZ4IVcHVwcGV0LmplbmtpbnMtY2kub3JnMB0GA1UdDgQWBBR2es/+TuPl
3EdUbfWCZBP5bqtUCTANBgkqhkiG9w0BAQsFAAOCAQEAo60VBFk3IzabzGkKSP+5
Al9Kj5Uly/naTOFhpyBGqL8XTwLeomn8QaKgUc6vyvKYIEJQCNkX9y7CLr66cP8B
xKzuq5gXfHADygg0+tjQap3bq0xDRJ6S0cndg7slTgHFOnjXNFKmnzqgOvdLQWb7
IpfKvnATDks2i6SWaJR24lMZB78iboIcqtklT1BJSnC23r4CDiRj91hyz8zUV0B1
Oy7r3bTIKoMkzYFwCQg0MFxlyufB7oxMwCbYCSa3Zvbu7PAF5JNuP88bUwwJs5uQ
n2GxEKrVMwGGOZgzRf7jYF6vJJQNrVX1an29k4vxmwZdaIb+t5CCnVHEY7IZM7Zy
Bw==
-----END CERTIFICATE-----

View File

@ -0,0 +1,9 @@
<html>
<body>
<div align=middle style="font-size:2em">
<img src=http://mirror.xmission.com/jenkins/art/jenkins-logo/256x256/logo.png>
<br>
Our site is currently down for maintenance. Please check <a href="http://twitter.com/jenkinsci">our twitter</a> account for updates.
</div>
</body>
</html>

View File

@ -0,0 +1,131 @@
; Domain: jenkins-ci.org
; SOA Record
JENKINS-CI.ORG. 3600 IN SOA ns1.jenkins-ci.org. tyler.monkeypox.org. (
2011122901
28800
7200
604800
3600
)
; A Records
@ 3600 IN A 199.193.196.24
; Primary at Contegix
cucumber 3600 IN A 199.193.196.24
; VM at Rackspace
spinach 3600 IN A 173.203.60.151
celery 3600 IN A 162.242.234.101
celery 3600 IN AAAA 2001:4802:7801:103:be76:4eff:fe20:357c
okra 3600 IN A 162.209.106.32
okra 3600 IN AAAA 2001:4802:7800:2:be76:4eff:fe20:7a31
; cabbage has died of dysentery
cabbage 3600 IN A 104.130.167.56
kelp 3600 IN A 162.209.124.149
kelp 3600 IN AAAA 2001:4802:7801:101:be76:4eff:fe20:b252
; Hosts at OSUOSL
lettuce 3600 IN A 140.211.9.32 ; otherwise known as jenkins-lettuce.osuosl.org
artichoke 3600 IN A 140.211.9.22 ; otherwise known as jenkins-puppet.osuosl.org
eggplant 3600 IN A 140.211.15.101 ; otherwise known as hudson-java.osuosl.org
edamame 3600 IN A 140.211.9.2 ; otherwise known as jenkins-confluence.osuosl.org
lists 3600 IN A 140.211.166.34
ns1 3600 IN A 140.211.9.2 ; edamame
ns2 3600 IN A 173.203.60.151 ; spinach (Rackspace)
ns3 3600 IN A 162.209.106.32 ; okra (Rackspace)
;-----------------------------------
; CNAME Records
www 3600 IN CNAME @
issues 3600 IN CNAME edamame
gherkin 3600 IN CNAME cucumber
drupal 3600 IN CNAME cucumber
wiki 3600 IN CNAME lettuce
updates 3600 IN CNAME cucumber
downloads 3600 IN CNAME cucumber
fisheye 3600 IN CNAME cucumber
l10n 3600 IN CNAME l10n.jenkins.io.
javadoc 3600 IN CNAME cucumber
mirrors 3600 IN CNAME cucumber
pkg 3600 IN CNAME cucumber
usage 3600 IN CNAME cucumber
stacktrace 3600 IN CNAME cucumber
sorcerer 3600 IN CNAME cucumber
stats 3600 IN CNAME cucumber
maven 3600 IN CNAME cucumber
maven2 3600 IN CNAME cucumber
ci 3600 IN CNAME cucumber
svn 3600 IN CNAME cucumber
meetings 3600 IN CNAME edamame
javanet2 3600 IN CNAME cucumber
ldap 3600 IN CNAME cucumber
jekyll 3600 IN CNAME jenkinsci.github.io.
git 3600 IN CNAME spinach
boxes 3600 IN CNAME spinach
mirrors2 3600 IN CNAME lettuce
ips 3600 IN CNAME lettuce
nagios 3600 IN CNAME lettuce
kale 3600 IN CNAME ec2-184-73-58-254.compute-1.amazonaws.com. ; contributed by Red Hat
repo 3600 IN CNAME jenkinsci.jfrog.org. ; Artifactory hosted by JFrog
links 3600 IN CNAME rhs.reddit.com. ; /r/jenkinsci
fallback 3600 IN CNAME spinach
plugin-generator 3600 IN CNAME jpi-create.jenkins.cloudbees.net. ; hosted app on CloudBees RUN@cloud
goto 3600 IN CNAME goto.jenkins.cloudbees.net. ; hosted app on CloudBees RUN@cloud
recipe 3600 IN CNAME recipe.jenkins.cloudbees.net. ; hosted app on CloudBees RUN@cloud
puppet 3600 IN CNAME artichoke
archives 3600 IN CNAME okra
beta 3600 IN CNAME eggplant ; beta site for the jenkins-ci.org/jenkins.io site
demo 3600 IN CNAME kelp
accounts 3600 IN CNAME eggplant
; MX Records
@ 3600 IN MX 0 cucumber
lists 3600 IN MX 0 smtp1.osuosl.org.
lists 3600 IN MX 0 smtp2.osuosl.org.
lists 3600 IN MX 0 smtp3.osuosl.org.
lists 3600 IN MX 0 smtp4.osuosl.org.
; NS Records
@ 3600 IN NS ns1
@ 3600 IN NS ns2
@ 3600 IN NS ns3
; SPF
; this policy enables the e-mail originating from these hosts to be whitelisted.
; 199.193.196.24 (cucumber)
; 140.211.15.* (eggplant and its subnet)
; 140.211.8.* (lettuce and its subnet)
; 140.211.9.* (edamame and its subnet)
; -> combined into 140.211.8.*/23
; 173.203.60.151 (spinach)
; 140.211.166.128/25 (OSUOSL mail relays)
; "~all" in the end makes the rest soft failures (as opposed to -all for hard failure)
;
; when modifying, use http://www.kitterman.com/spf/validate.html to test
@ 3600 IN TXT "v=spf1 mx ip4:199.193.196.24 ip4:140.211.15.0/24 ip4:140.211.8.0/23 ip4:173.203.60.151 ip4:140.211.166.128/25 -all"
@ 3600 IN SPF "v=spf1 mx ip4:199.193.196.24 ip4:140.211.15.0/24 ip4:140.211.8.0/23 ip4:173.203.60.151 ip4:140.211.166.128/25 -all"
; DKIM
cucumber._domainkey 1W IN TXT ("v=DKIM1;p="
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzGI3F6ZZemke1oeZLfdl"
"WT6bNz71CHIF74XFPkzJvPrKfCIa50KVV1FLdAbvBFFhtZB9soQphMg1g8JVvCCc"
"Jykf8QAnr0/zGy2CZoHGfqYem1SUgMd//jOQ4PIgypfBXHYPeFOFcKg2seIyd75Y"
"cR0DOWXCF1UO5K/nezfPT9RB5vBW4mXV5dn8TUwdvsu1ApQKWQj3dLYpMNlVqAgw"
"dc7dCifqAWvhfxrRaPzG/4aSgpwxqYt4d6NV3Jl0MB9nnBeWK3JzmPxkXwaO1D8e"
"3KxxIkvGTBs4BK9SIC3lY90xV5eqOlehLL9ZUYndtiQfABp2tfQkitG59N4FEfUB"
"vwIDAQAB"
)
eggplant._domainkey 1W IN TXT ("v=DKIM1;p="
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsBwtlRrZE7oYs5y3FKjt"
"/gXl4QR7LqdBmmQXX+l5pYE0VbTaweUlnNfSkV72sZchTikQ7X15hNgQ+hW/99tU"
"WGnXlAC2r444Ggl9xoFVxKhSIbkRVRszzIe5axo4BQENZ/cj7Mw8BwsB8mESG29K"
"YtKeMkXfLuBkWuUZ/56pu1eOOfZl4iMLiQnP7UNpAlX4L1/Le3bIaTWZUrsk/MwE"
"pwULsW0VB3sghu4K+Kdos1AyGP2NwkQL3CCzpwm1TaBaC0rb0sQ0m62JgPe3NzOt"
"U3NGXKNnpLRuhYNFU46bW/6ZVF0NskessArYAsbY54cMHTzhpvkC6b2hs5x+ps0J"
"3QIDAQAB"
)

64
dist/profile/files/bind/jenkins.io.zone vendored Normal file
View File

@ -0,0 +1,64 @@
; Domain: jenkins.io
; SOA Record
@ 1D IN SOA ns1.jenkins-ci.org. tyler.monkeypox.org. (
2015122201 ; serial, todays date + todays serial #
28800 ; refresh, seconds
7200 ; retry, seconds
604800 ; expire, seconds
3600 ; minimum, seconds
)
; A Records
@ 3600 IN A 140.211.15.101 ; eggplant
; Physical machine at Contegix
cucumber 3600 IN A 199.193.196.24
; VM at Rackspace
spinach 3600 IN A 173.203.60.151
celery 3600 IN A 162.242.234.101
celery 3600 IN AAAA 2001:4802:7801:103:be76:4eff:fe20:357c
okra 3600 IN A 162.209.106.32
okra 3600 IN AAAA 2001:4802:7800:2:be76:4eff:fe20:7a31
; cabbage has died of dysentery
cabbage 3600 IN A 104.130.167.56
kelp 3600 IN A 162.209.124.149
kelp 3600 IN AAAA 2001:4802:7801:101:be76:4eff:fe20:b252
; Hosts at OSUOSL
lettuce 3600 IN A 140.211.9.32 ; otherwise known as jenkins-lettuce.osuosl.org
; artichoke has died of dysentery
artichoke 3600 IN A 140.211.9.22 ; otherwise known as jenkins-puppet.osuosl.org
eggplant 3600 IN A 140.211.15.101 ; otherwise known as hudson-java.osuosl.org
edamame 3600 IN A 140.211.9.2 ; otherwise known as jenkins-confluence.osuosl.org
radish 3600 IN A 140.211.9.94 ; otherwise known as jenkins-radish.osuosl.org
; EC2
ldap 3600 IN A 52.23.244.165 ; jenkins-ldap
rating 3600 IN A 52.90.42.37 ; jenkins-ratings
mirrors 3600 IN A 52.91.151.148 ; jenkins-mirrorbrain
ci 3600 IN A 54.173.158.235 ; jenkins-ci
l10n 3600 IN A 54.88.79.38 ; jenkins-l10n
; CNAME Records
www 3600 IN CNAME @
pkg 3600 IN CNAME mirrors ; pkg and mirrors run off the same host
beta 3600 IN CNAME eggplant ; beta site for the jenkins-ci.org/jenkins.io site
puppet 3600 IN CNAME radish
accounts 3600 IN CNAME eggplant
; Magical CNAME for certificate validation
D07F852F584FA592123140354D366066.ldap.jenkins.io. 3600 IN CNAME 75E741181A7ACDBE2996804B2813E09B65970718.comodoca.com.
; NS Records
@ 3600 IN NS ns1.jenkins-ci.org.
@ 3600 IN NS ns2.jenkins-ci.org.
@ 3600 IN NS ns3.jenkins-ci.org.
; spam trap
spamtrap 3600 IN MX 10 mxa.mailgun.org.
spamtrap 3600 IN MX 10 mxb.mailgun.org.

View File

@ -0,0 +1,11 @@
zone "jenkins-ci.org" {
type master;
file "/etc/bind/local/jenkins-ci.org.zone";
allow-transfer { 140.211.166.126; };
};
zone "jenkins.io" {
type master;
file "/etc/bind/local/jenkins.io.zone";
allow-transfer { 140.211.166.126; };
};

View File

@ -0,0 +1,16 @@
# This URL is supposed to be served by static cache layer
# But in the past sometimes we seem to lose the static cache files, and
# measuring the response time of this is a good test to detect that.
- name: Confluence
url: https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin
timeout: 1
threshold: 3
window: 5
# URL that's not served by the static cache. This URL also requires database access,
# so it's a good test to watch out for starved database connections
- name: Confluence Backend
url: https://wiki.jenkins-ci.org/s/2015/1/1/_/download/superbatch/css/batch.css
timeout: 1
threshold: 3
window: 5

View File

@ -0,0 +1,6 @@
- name: Confluence
search_string: ['-Dcatalina.home=/srv/wiki']
exact_match: false
thresholds:
# expect exactly 1 instance
critical: [0, 1]

View File

@ -0,0 +1,2 @@
user-agent: *
disallow: /label

View File

@ -1,6 +1,7 @@
---
:backends:
- eyaml
- yaml
:hierarchy:
- "clients/%{clientcert}"
@ -15,7 +16,7 @@
# :datadir: "/etc/puppetlabs/puppet/environments/%{environment}/hieradata"
:eyaml:
:datadir: "/etc/puppetlabs/puppet/environments/%{environment}/hieradata"
:datadir: "/etc/puppetlabs/code/environments/%{environment}/hieradata"
:extension: 'yaml'
:pkcs7_private_key: /var/lib/puppet/keys/private_key.pkcs7.pem
:pkcs7_public_key: /var/lib/puppet/keys/public_key.pkcs7.pem

View File

@ -0,0 +1,6 @@
instances:
- name: JIRA
url: https://issues.jenkins-ci.org/browse/JENKINS-12345
timeout: 1
threshold: 3
window: 5

View File

@ -0,0 +1,6 @@
- name: JIRA
search_string: ['-Dcatalina.home=/srv/jira']
exact_match: false
thresholds:
# expect exactly 1 instance
critical: [0, 1]

View File

@ -0,0 +1,7 @@
- name: LDAP
search_string: ['/usr/bin/slapd']
exact_match: false
thresholds:
# expect exactly 1 instance
critical: [0, 1]

12
dist/profile/files/r10k/r10k.yaml vendored Normal file
View File

@ -0,0 +1,12 @@
---
#
# THIS FILE IS MANAGED BY PUPPET
sources:
infra:
remote: 'https://github.com/jenkins-infra/jenkins-infra.git'
basedir: '/etc/puppetlabs/code/environments'
git:
provider: 'rugged'
private_key: '/var/lib/puppet/keys/r10k'

View File

@ -0,0 +1,104 @@
#!/usr/bin/env ruby
require 'fileutils'
provided_file = ARGV.first
module Deployer
# Simple method to ensure that two invocations of this don't overlap
def self.use_lock(&block)
lock_file = '/tmp/deploy-site.lockfile'
if File.exists? lock_file
puts '> The lock exists, exiting'
exit 0
end
File.open(lock_file, 'w+') do |f|
f.write "#{Process.pid}\n"
end
begin
block.call
ensure
File.unlink(lock_file)
end
end
def self.update_deployment(deploy_dir, dir_name)
unless File.readlink(deploy_dir) == dir_name
FileUtils.rm_f deploy_dir
FileUtils.ln_sf(dir_name, deploy_dir)
puts "Updated the #{deploy_dir} symbolic link"
end
end
def self.deploy!(provided_file, into)
use_lock do
dir_name = File.basename(provided_file, File.extname(provided_file))
unless File.exists? dir_name
puts "Processing #{provided_file} into #{dir_name}"
# Unzip it!
`unzip -qo #{provided_file}`
if $? != 0
puts "Something went wrong unzipping #{provided_file}"
exit 1
end
end
update_deployment(into, dir_name)
end
end
end
# If we don't have an argument, let's look in the CWD/archives directory for
# the last file available
if ARGV.size != 1
base_dir = File.dirname($0)
archives_dir = File.join(base_dir, 'archives')
unless File.exists? archives_dir
puts "> Please provide a zip file generated from the jenkins.io build process"
exit 1
end
version_regex = /.*jenkins.io-(\d+).(\d+).(\d+).*/
archives = Dir.glob("#{archives_dir}/*.zip").sort do |a, b|
# Make sure that we're always sorting on the patch number for now, that's
# the only thing we really care about right now (BUILD_NUMBER)
a.match(version_regex)[3].to_i <=> b.match(version_regex)[3].to_i
end
[
['current', archives.reject { |f| f =~ /beta/ }.last],
['beta', archives.select { |f| f =~ /beta/ }.last],
].each do |deploy_dir, archive|
next if archive.nil?
Deployer.deploy! archive, deploy_dir
end
# Once we've deployed successfully, we can clean up some legacy stuff
current = File.readlink(File.join(base_dir, 'current'))
beta = File.readlink(File.join(base_dir, 'beta'))
if archives.size > 5
# Let's walk through each archive except the 5 and delete them
archives[0 ... -5].each do |archive|
FileUtils.rm_f archive
end
end
Dir.glob(File.join(base_dir, '*')).each do |path|
# Don't bother looking at non-directories
next unless File.directory? path
# Don't both with anything that isn't a jenkins.io type directory
next unless path.match version_regex
# Skip our currently deployed sites
next if path.end_with? current
next if path.end_with? beta
FileUtils.rm_rf(path)
end
end

103
dist/profile/manifests/accountapp.pp vendored Normal file
View File

@ -0,0 +1,103 @@
#
# Profile defining the necessary resources to provision our LDAP-based
# accountapp
class profile::accountapp(
# all injected from hiera
$image_tag,
$ldap_url = 'ldap://localhost:389/',
$ldap_password = '',
$smtp_server = 'localhost',
$recaptcha_key = '',
$app_url = 'https://accounts.jenkins.io/',
$jira_url = 'http://issues.jenkins-ci.org/rpc/soap/jirasoapservice-v2',
$jira_username = accountapp,
$jira_password = '',
) {
include ::firewall
include profile::docker
include profile::letsencrypt
include profile::apachemisc
validate_string($image_tag)
validate_string($ldap_url)
validate_string($ldap_password)
validate_string($smtp_server)
validate_string($recaptcha_key)
file { '/etc/accountapp' :
ensure => directory,
# Don't allow anything not declared in Puppet to be dropped in there
purge => true,
}
file { '/etc/accountapp/config.properties':
ensure => file,
content => template("${module_name}/accountapp/config.properties.erb"),
require => File['/etc/accountapp'],
}
docker::image { 'jenkinsciinfra/account-app':
image_tag => $image_tag,
}
docker::run { 'account-app':
command => undef,
image => "jenkinsciinfra/account-app:${image_tag}",
volumes => ['/etc/accountapp:/etc/accountapp'],
require => File['/etc/accountapp/config.properties'],
env => [
"LDAP_URL=${ldap_url}",
"LDAP_PASSWORD=${ldap_password}",
"JIRA_URL=${jira_url}",
"JIRA_USERNAME=${jira_username}",
"JIRA_PASSWORD=${jira_password}",
],
extra_parameters => ['--net=host'],
}
# docroot is required for apache::vhost but should never be used because
# we're proxying everything here
$docroot = '/var/www/html'
apache::vhost { 'accounts.jenkins.io':
serveraliases => [
'accounts.jenkins-ci.org',
],
port => '443',
ssl => true,
ssl_key => '/etc/letsencrypt/live/accounts.jenkins.io/privkey.pem',
# When Apache is upgraded to >= 2.4.8 this should be changed to
# fullchain.pem
ssl_cert => '/etc/letsencrypt/live/accounts.jenkins.io/cert.pem',
ssl_chain => '/etc/letsencrypt/live/accounts.jenkins.io/chain.pem',
docroot => $docroot,
proxy_pass => [
{
path => '/',
url => 'http://localhost:8080/',
reverse_urls => 'http://localhost:8080/',
},
],
}
apache::vhost { 'accounts.jenkins.io unsecured':
servername => 'accounts.jenkins.io',
serveraliases => [
'accounts.jenkins-ci.org',
],
port => '80',
docroot => $docroot,
redirect_status => 'permanent',
redirect_dest => $app_url,
}
# We can only acquire certs in production due to the way the letsencrypt
# challenge process works
if (($::environment == 'production') and ($::vagrant != '1')) {
letsencrypt::certonly { 'accounts.jenkins.io':
domains => ['accounts.jenkins.io', 'accounts.jenkins-ci.org'],
plugin => 'apache',
manage_cron => true,
}
}
}

View File

@ -2,6 +2,10 @@
# Profile defining all the `account` resources with all our important account
# information
class profile::accounts {
group { 'atlassian-admins':
ensure => present,
}
$accounts = hiera_hash('accounts')
create_resources('account', $accounts)
}

35
dist/profile/manifests/apachecert.pp vendored Normal file
View File

@ -0,0 +1,35 @@
#
# SSL certificates staged for Apache
#
class profile::apachecert (
# all injected from hiera
$id, # identify which private key / certificate pair we should use. This usually comes from hieradata/clients/*.yaml
# see dist/profile/files/apache-cert/$id{,-bundle}.crt and profile::apache-cert::secret-key-$id
) {
include apache
include apache::mod::ssl
# certificates and apache config to let Apache recognize this file
file { '/etc/apache2/certificate.crt':
source => "puppet:///modules/${module_name}/apachecert/${id}.crt",
require => Package['httpd'],
notify => Service['httpd'],
}
file { '/etc/apache2/bundle.crt':
source => "puppet:///modules/${module_name}/apachecert/${id}-bundle.crt",
require => Package['httpd'],
notify => Service['httpd'],
}
file { '/etc/apache2/conf.d/ssl.conf':
source => "puppet:///modules/${module_name}/apachecert/ssl.conf",
require => Package['httpd'],
notify => Service['httpd'],
}
file { '/etc/apache2/server.key':
content => hiera("profile::apachecert::secret-key-${id}"),
mode => '0600',
require => Package['httpd'],
notify => Service['httpd'],
}
}

View File

@ -0,0 +1,22 @@
# Generates the apache virtual host config file for the maintenance mode
#
# This puts a file under /etc/apache2/sites-available/SITENAME.maintenance
# and you can manually symlink this from sites-enabled to put the maintenance mode UI
define profile::apachemaintenance {
# $name refers to the site name
# Template uses: $addr_port
file { '/var/www/maintenance':
ensure => directory,
}
file { '/var/www/maintenance/maintenance.html':
ensure => present,
source => "puppet:///modules/${module_name}/apachemaintenance/maintenance.html",
}
file { "/etc/apache2/sites-available/${name}.maintenance.conf":
ensure => present,
content => template("${module_name}/apachemaintenance/maintenance.conf.erb"),
}
}

61
dist/profile/manifests/apachemisc.pp vendored Normal file
View File

@ -0,0 +1,61 @@
#
# Misc. apache settings
#
class profile::apachemisc(
$ssh_enabled = false,
) {
include ::apache
# log rotation setting lives in another module
include apachelogcompressor
# enable mod_status for local interface and allow datadog to monitor this
include apache::mod::status
include datadog_agent::integrations::apache
include apache::mod::proxy
include apache::mod::proxy_http
include apache::mod::ssl
file { '/etc/apache2/conf.d/00-reverseproxy_combined':
ensure => present,
source => "puppet:///modules/${module_name}/apache/00-reverseproxy_combined.conf",
mode => '0444',
}
file { '/etc/apache2/conf.d/other-vhosts-access-log':
ensure => present,
source => "puppet:///modules/${module_name}/apache/other-vhosts-access-log.conf",
mode => '0444',
}
# /usr/bin/rotatelogs is (as of 14.04) located in apache2-utils
package { 'apache2-utils' :
ensure => present,
}
# allow Jenkins to login as www-data to populate some web content
if $ssh_enabled {
file { '/var/www/.ssh':
ensure => directory,
}
file { '/var/www/.ssh/authorized_keys':
ensure => present,
content => 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1l3oZpCJlFspsf6cfa7hovv6NqMB5eAn/+z4SSiaKt9Nsm22dg9xw3Et5MczH0JxHDw4Sdcre7JItecltq0sLbxK6wMEhrp67y0lMujAbcMu7qnp5ZLv9lKSxncOow42jBlzfdYoNSthoKhBtVZ/N30Q8upQQsEXNr+a5fFdj3oLGr8LSj9aRxh0o+nLLL3LPJdY/NeeOYJopj9qNxyP/8VdF2Uh9GaOglWBx1sX3wmJDmJFYvrApE4omxmIHI2nQ0gxKqMVf6M10ImgW7Rr4GJj7i1WIKFpHiRZ6B8C/Ds1PJ2otNLnQGjlp//bCflAmC3Vs7InWcB3CTYLiGnjrw== hudson@cucumber',
}
}
firewall {
'200 allow http':
proto => 'tcp',
port => 80,
action => 'accept',
}
firewall {
'201 allow https':
proto => 'tcp',
port => 443,
action => 'accept',
}
}

12
dist/profile/manifests/apt.pp vendored Normal file
View File

@ -0,0 +1,12 @@
#
# Class for ensuring some basic state around the apt repositories on a machine,
# i.e. that it's updated daily
class profile::apt {
cron { 'update the apt cache':
command => 'apt-get update',
hour => 2,
minute => 20,
}
}

63
dist/profile/manifests/archives.pp vendored Normal file
View File

@ -0,0 +1,63 @@
#
# Defines an archive server for serving all the archived historical releases
#
class profile::archives {
include ::stdlib
# volume configuration is in hiera
include ::lvm
include profile::apachemisc
$archives_dir = '/srv/releases'
if str2bool($::vagrant) {
# during serverspec test, fake /dev/xvdb by a loopback device
exec { 'create /tmp/xvdb':
command => 'dd if=/dev/zero of=/tmp/xvdb bs=1M count=16; losetup /dev/loop0; losetup /dev/loop0 /tmp/xvdb',
unless => 'test -f /tmp/xvdb',
path => '/usr/bin:/usr/sbin:/bin:/sbin',
before => Physical_volume['/dev/loop0'],
}
}
package { 'lvm2':
ensure => present,
}
package { 'libapache2-mod-bw':
ensure => present,
}
file { $archives_dir:
ensure => directory,
owner => 'www-data',
require => [Package['httpd'],
Mount[$archives_dir]],
}
file { '/var/log/apache2/archives.jenkins-ci.org':
ensure => directory,
}
apache::mod { 'bw':
require => Package['libapache2-mod-bw'],
}
apache::vhost { 'archives.jenkins-ci.org':
servername => 'archives.jenkins-ci.org',
vhost_name => '*',
port => '80',
docroot => $archives_dir,
access_log => false,
error_log_file => 'archives.jenkins-ci.org/error.log',
log_level => 'warn',
custom_fragment => template("${module_name}/archives/vhost.conf"),
options => ['FollowSymLinks', 'MultiViews', 'Indexes'],
notify => Service['apache2'],
require => [File['/var/log/apache2/archives.jenkins-ci.org'],
Mount[$archives_dir],
Apache::Mod['bw']],
}
}

19
dist/profile/manifests/atlassian.pp vendored Normal file
View File

@ -0,0 +1,19 @@
#
# Profile containing the basics to support an Atlassian product in our
# infrastructure
#
class profile::atlassian {
include apache
include firewall
include profile::docker
include sudo
$group_name = 'atlassian-admins'
sudo::conf { $group_name:
priority => 10,
content => "%${group_name} ALL=(ALL) NOPASSWD: /usr/sbin/service,/usr/bin/docker",
require => Group[$group_name],
}
}

29
dist/profile/manifests/base.pp vendored Normal file
View File

@ -0,0 +1,29 @@
#
# Basic profile included in each node
class profile::base {
include profile::accounts
if $::kernel == 'Linux' {
include profile::apt
# None of these modules support anything other than Linux (apparently)
include profile::firewall
include profile::ntp
include profile::sudo
include profile::diagnostics
class { 'ssh::server':
storeconfigs_enabled => false,
options => {
'PasswordAuthentication' => 'no',
'PubkeyAuthentication' => 'yes',
},
}
class { 'ssh::client':
options => {
'UseRoaming' => 'no',
},
}
}
}

65
dist/profile/manifests/bind.pp vendored Normal file
View File

@ -0,0 +1,65 @@
# Run containerized BIND9 to serve both jenkins-ci.org and the jenkins.io zone
class profile::bind (
# all injected from hiera
$image_tag,
) {
include ::firewall
include profile::docker
# /etc/bind/local is hard-coded into the Dockerfile here:
# <https://github.com/jenkins-infra/bind/blob/master/Dockerfile>
$conf_dir = '/etc/bind/local'
file { ['/etc/bind', $conf_dir]:
ensure => directory,
purge => true,
}
file { "${conf_dir}/jenkins-ci.org.zone":
ensure => present,
notify => Service['docker-bind'],
source => "puppet:///modules/${module_name}/bind/jenkins-ci.org.zone",
require => File[$conf_dir],
}
file { "${conf_dir}/jenkins.io.zone":
ensure => present,
notify => Service['docker-bind'],
source => "puppet:///modules/${module_name}/bind/jenkins.io.zone",
require => File[$conf_dir],
}
file { "${conf_dir}/named.conf.local":
ensure => present,
notify => Service['docker-bind'],
source => "puppet:///modules/${module_name}/bind/named.conf.local",
require => File[$conf_dir],
}
docker::image { 'jenkinsciinfra/bind':
image_tag => $image_tag,
}
docker::run { 'bind':
command => undef,
ports => ['53:53', '53:53/udp'],
image => "jenkinsciinfra/bind:${image_tag}",
volumes => ['/etc/bind/local:/etc/bind/local'],
require => [File["${conf_dir}/named.conf.local"],
File["${conf_dir}/jenkins-ci.org.zone"],
],
}
firewall { '900 accept tcp DNS queries':
proto => 'tcp',
port => 53,
action => 'accept',
}
firewall { '901 accept udp DNS queries':
proto => 'udp',
port => 53,
action => 'accept',
}
}

102
dist/profile/manifests/buildslave.pp vendored Normal file
View File

@ -0,0 +1,102 @@
# Jenkins build slave connectable via SSH
class profile::buildslave(
$home_dir = '/home/jenkins',
$ssh_private_key = undef,
$docker = true,
$ruby = true,
) {
include ::stdlib
include git
$user = 'jenkins'
if $ruby {
# Make sure our Ruby class is properly contained so we can require it in a
# Package resource
contain('ruby')
}
if $docker {
include profile::docker
$groups = [$user, 'docker']
$account_requires = Package['docker']
}
else {
$groups = [$user]
}
account { $user:
home_dir => $home_dir,
groups => $groups,
ssh_keys => {
'cucumber' => {
'key' => 'AAAAB3NzaC1yc2EAAAABIwAAAQEA1l3oZpCJlFspsf6cfa7hovv6NqMB5eAn/+z4SSiaKt9Nsm22dg9xw3Et5MczH0JxHDw4Sdcre7JItecltq0sLbxK6wMEhrp67y0lMujAbcMu7qnp5ZLv9lKSxncOow42jBlzfdYoNSthoKhBtVZ/N30Q8upQQsEXNr+a5fFdj3oLGr8LSj9aRxh0o+nLLL3LPJdY/NeeOYJopj9qNxyP/8VdF2Uh9GaOglWBx1sX3wmJDmJFYvrApE4omxmIHI2nQ0gxKqMVf6M10ImgW7Rr4GJj7i1WIKFpHiRZ6B8C/Ds1PJ2otNLnQGjlp//bCflAmC3Vs7InWcB3CTYLiGnjrw==',
},
'celery' => {
'key' => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQCzBrEqC3IwdKOptY4SUi/RI0+plMVRhs+xrm1ZUizC4qK7UHW3fk/412zb5dkC1FJHFUUJh/Aa7P/OFLxfaf/nVPQ4Nv5ZIMC8g3b7yAWLHrZb7qLpPA8viG1dXXrHMdPLz2uFa2OKtrzlLe4jtyqRtnN8W+dTAWPorkZ9ia1wpD/wdPoKdDtzktBv7gXHpA/jb2arxYWkd560KtQnUbr+LDzrCkeWj2z3BtEGqKxdOtjJMWbLRU9tIkv809VaQJowEs/acwAno/5O7ejYdRzsIicX6GaiHksS6W6vBV4eEn0mA/cX0qFeo1rcGgnXbn4IyglJiwlqm3YSGpKGVJZn',
},
},
comment => 'Jenkins build node user',
require => $account_requires,
}
file { "${home_dir}/.ssh/id_rsa":
ensure => file,
content => $ssh_private_key,
require => Account[$user],
}
if $docker {
file { "${home_dir}/.docker":
ensure => directory,
owner => $user,
require => Account[$user],
}
file { "${home_dir}/.docker/config.json":
ensure => file,
content => hiera('docker_hub_key'),
owner => $user,
require => File["${home_dir}/.docker"],
}
}
if $ruby {
package { 'bundler':
ensure => installed,
provider => 'gem',
require => Class['ruby'],
}
ensure_packages([
'libxml2-dev', # for Ruby apps that require nokogiri
'libxslt1-dev', # for Ruby apps that require nokogiri
'libcurl4-openssl-dev', # for curb gem
'libruby', # for net/https
])
}
if $::kernel == 'Linux' {
ensure_packages([
'subversion',
'make',
'build-essential',
])
}
# https://help.github.com/articles/what-are-github-s-ssh-key-fingerprints/
sshkey { 'github-rsa':
ensure => present,
host_aliases => ['github.com'],
type => 'ssh-rsa',
key => 'AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==',
}
sshkey { 'github-dsa':
ensure => absent,
}
}
# vim: nowrap

135
dist/profile/manifests/confluence.pp vendored Normal file
View File

@ -0,0 +1,135 @@
# Run containerized Confluence to serve wiki.jenkins-ci.org
# see https://github.com/jenkins-infra/confluence for how the container is put together
#
# this class puts apache virtual host for wiki.jenkins-ci.org, which forwards requests to
#
class profile::confluence (
$image_tag, # tag of confluence container
$cache_image_tag, # tag of confluence cache container
$database_url, # JDBC URL that represents the database backend
) {
# as a preparation, deploying mock-webapp and not the real confluence
include profile::atlassian
include apache::mod::rewrite
include profile::apachemisc
account { 'wiki':
home_dir => '/srv/wiki',
groups => [ 'sudo', 'users' ],
uid => 2000, # this value must match what's in the 'confluence' docker container
gid => 2000,
comment => 'Runs confluence',
}
file { '/var/log/apache2/wiki.jenkins-ci.org':
ensure => directory,
group => $profile::atlassian::group_name,
}
file { '/srv/wiki/home':
ensure => directory,
# confluence container is baked with UID=1000 & GID=1001
owner => 'wiki',
group => $profile::atlassian::group_name,
}
file { '/srv/wiki/docroot':
ensure => directory,
group => $profile::atlassian::group_name,
}
file { '/srv/wiki/docroot/robots.txt':
ensure => directory,
owner => 'wiki',
group => $profile::atlassian::group_name,
source => 'puppet:///modules/profile/confluence/robots.txt',
}
$ldap_password = hiera('profile::ldap::admin_password')
file { '/srv/wiki/container.env':
content => join([
"LDAP_PASSWORD=${ldap_password}",
"DATABASE_URL=${database_url}"
], "\n"),
mode => '0600',
}
docker::image { 'jenkinsciinfra/confluence':
image_tag => $image_tag,
}
docker::run { 'confluence':
command => undef,
ports => ['8081:8080'],
image => "jenkinsciinfra/confluence:${image_tag}",
volumes => ['/srv/wiki/home:/srv/wiki/home', '/srv/wiki/cache:/srv/wiki/cache'],
env_file => '/srv/wiki/container.env',
restart_service => true,
use_name => true,
require => File['/srv/wiki/container.env'],
}
docker::image { 'jenkinsciinfra/confluence-cache':
image_tag => $cache_image_tag,
}
docker::run { 'confluence-cache':
command => undef,
ports => ['127.0.0.1:8009:8080'],
image => "jenkinsciinfra/confluence-cache:${cache_image_tag}",
volumes => ['/srv/wiki/cache:/cache'],
links => ['confluence'],
# The hostname `confluence` should be ensured by the --link option passed
# to the docker run command
env => ['TARGET=http://confluence:8080'],
restart_service => true,
use_name => true,
}
### to put maintenance screen up, comment out the following and comment in the apache::vhost for https://jenkins-ci.org
### #if
#file { '/etc/apache2/sites-enabled/25-wiki.jenkins-ci.org.conf':
# ensure => 'link',
# target => '/etc/apache2/sites-available/wiki.jenkins-ci.org.maintenance.conf',
#}
### #else
apache::vhost { 'wiki.jenkins-ci.org':
port => '443',
docroot => '/srv/wiki/docroot',
access_log => false,
error_log_file => 'wiki.jenkins-ci.org/error.log',
log_level => 'warn',
custom_fragment => template("${module_name}/confluence/vhost.conf"),
notify => Service['apache2'],
require => File['/var/log/apache2/wiki.jenkins-ci.org'],
}
### #endif
apache::vhost { 'wiki.jenkins-ci.org non-ssl':
# redirect non-SSL to SSL
servername => 'wiki.jenkins-ci.org',
port => '80',
docroot => '/srv/wiki/docroot',
redirect_status => 'temp',
redirect_dest => 'https://wiki.jenkins-ci.org/'
}
profile::apachemaintenance { 'wiki.jenkins-ci.org':
}
profile::datadog_check { 'confluence-http-check':
checker => 'http_check',
source => 'puppet:///modules/profile/confluence/http_check.yaml',
}
profile::datadog_check { 'confluence-process-check':
checker => 'process',
source => 'puppet:///modules/profile/confluence/process_check.yaml',
}
host { 'wiki.jenkins-ci.org':
ip => '127.0.0.1',
}
}

34
dist/profile/manifests/datadog_check.pp vendored Normal file
View File

@ -0,0 +1,34 @@
# Assemble fragments into datadog checker configuration files
#
define profile::datadog_check(
$checker,
$source = undef,
$content = undef,
) {
$target ="${datadog_agent::params::conf_dir}/${checker}.yaml"
include datadog_agent
# define the header section
if !defined(Concat[$target]) {
concat { $target:
owner => 'root',
group => 'root',
}
concat::fragment { "${target}-header":
target => $target,
content => "init_config:\n\ninstances:\n",
order => '00',
}
# when the file in question is updated, we need to restart datadog agent
Exec["concat_${target}"] ~> Service[$datadog_agent::params::service_name]
}
concat::fragment { $name:
target => $target,
source => $source,
content => $content,
}
}

67
dist/profile/manifests/demo.pp vendored Normal file
View File

@ -0,0 +1,67 @@
#
# Run a demo instance of Jenkins in a Docker container
class profile::demo(
$image_tag = '2.0-alpha-2',
) {
include profile::docker
include profile::apachemisc
$image = 'jenkinsci/jenkins'
$user = 'demo'
$site = 'demo'
$uid = '2002'
docker::image { $image:
image_tag => $image_tag,
}
docker::run { $site:
username => $uid,
volumes => ['/srv/demo:/var/jenkins_home'],
image => "${image}:${image_tag}",
ports => ['8080:8080'],
restart_service => true,
use_name => true,
require => [
Class['::docker'],
Docker::Image[$image],
File['/srv/demo'],
User[$user],
],
}
# The File[/etc/init/docker-demo.conf] resource is declared by the
# module, but we still need to punt the container if the config changes
File <| title == '/etc/init/docker-demo.conf' |> {
notify => Service['docker-demo'],
}
account { $user:
home_dir => '/srv/demo',
uid => $uid,
comment => 'Runs demo',
}
file { "/var/log/apache2/${site}.jenkins-ci.org":
ensure => directory,
}
apache::vhost { "${site}.jenkins-ci.org":
servername => "${site}.jenkins-ci.org",
port => '80',
docroot => '/srv/demo/userContent', # bous
access_log => false,
error_log_file => "${site}.jenkins-ci.org/error.log",
log_level => 'warn',
custom_fragment => template("${module_name}/demo/vhost.conf"),
notify => Service['apache2'],
require => [File["/var/log/apache2/${site}.jenkins-ci.org"],
Docker::Run[$site]
],
}
host { "${site}.jenkins-ci.org":
ip => '127.0.0.1',
}
}

10
dist/profile/manifests/diagnostics.pp vendored Normal file
View File

@ -0,0 +1,10 @@
#
# The diagnostics profile will add some diagnostics tools for our internal use
# where ever this profile is applied
#
class profile::diagnostics {
include ::stdlib
include ::datadog_agent
ensure_packages(['htop', 'strace'])
}

25
dist/profile/manifests/docker.pp vendored Normal file
View File

@ -0,0 +1,25 @@
#
# Profile for managing basics of docker installation/configuration
class profile::docker {
class { '::docker':
version => '1.9.1',
# Disabling the management of the kernel, since we have to pre-install
# kernel modules on Ubuntu 12.04 LTS and restart the host machine anyways
manage_kernel => false,
}
include datadog_agent::integrations::docker
# Ensure that the datadog user has the right group to access docker
user { $datadog_agent::params::dd_user:
ensure => present,
groups => ['docker'],
require => Class['::docker'],
}
firewall { '010 allow inter-docker traffic':
# traffic within docker is OK
iniface => 'docker0',
action => 'accept',
}
}

View File

@ -0,0 +1,16 @@
#
# A define that cleans up the left over from docker::run
#
define profile::docker::run_tombstone {
$initscript = "/etc/init/docker-${title}.conf"
file { $initscript:
ensure => absent,
}
service { "docker-${title}":
ensure => stopped,
}
}

34
dist/profile/manifests/firewall.pp vendored Normal file
View File

@ -0,0 +1,34 @@
#
# Class containing basic profile information for setting up the basic firewall
# rules that every role should contain
class profile::firewall {
include ::firewall
firewall { '000 accept icmp traffic':
proto => 'icmp',
action => 'accept',
}
firewall { '001 accept ssh traffic':
proto => 'tcp',
port => 22,
action => 'accept',
}
firewall { '002 accept local traffic':
# traffic within localhost is OK
iniface => 'lo',
action => 'accept',
}
firewall { '003 accept established connections':
# this is needed to make outbound connections work, such as database connection
state => ['RELATED','ESTABLISHED'],
action => 'accept',
}
firewall {
'999 drop all other requests':
action => 'drop',
}
}

6
dist/profile/manifests/groovy.pp vendored Normal file
View File

@ -0,0 +1,6 @@
#
# Simple profile to manage Groovy installation on machines
class profile::groovy {
# see <https://github.com/jenkins-infra/puppet-groovy>
include ::groovy
}

31
dist/profile/manifests/jenkins.pp vendored Normal file
View File

@ -0,0 +1,31 @@
#
# Profile for managing a Jenkins master installation
class profile::jenkins {
include profile::firewall
# This is a legacy role imported from infra-puppet, thus the goofy numbering
firewall { '108 Jenkins CLI port' :
proto => 'tcp',
port => 47278,
action => 'accept',
}
firewall { '801 Allow Jenkins web access only on localhost':
proto => 'tcp',
port => 8080,
action => 'accept',
iniface => 'lo',
}
firewall { '802 Block external Jenkins web access':
proto => 'tcp',
port => 8080,
action => 'drop',
}
firewall { '810 Jenkins CLI SSH':
proto => 'tcp',
port => 22222,
action => 'accept',
}
}

67
dist/profile/manifests/jenkinsadmin.pp vendored Normal file
View File

@ -0,0 +1,67 @@
#
# IRC bot that runs most project related tasks
# containerized in https://github.com/jenkins-infra/ircbot
class profile::jenkinsadmin (
# Parameters supplied by Hiera
$github_login,
$github_password,
$jira_login,
$jira_password,
$nick_password,
$image_tag = undef,
) {
include profile::docker
validate_string($image_tag)
$user = 'ircbot'
docker::image { 'jenkinsciinfra/ircbot':
image_tag => $image_tag,
}
docker::run { 'ircbot':
# The entrypoint in the container allows passing the nick password through
# to the invocation of the Java command, since the IRC bot .jar file
# requires:
# java -jar /home/ircbot/*.jar $NICKPASSWORD
command => $nick_password,
volumes => ['/home/ircbot/.github:/home/ircbot/.github',
'/home/ircbot/.jenkins-ci.org:/home/ircbot/.jenkins-ci.org',
],
username => 'ircbot',
image => "jenkinsciinfra/ircbot:${image_tag}",
require => [Docker::Image['jenkinsciinfra/ircbot'],
File['/home/ircbot/.github'],
File['/home/ircbot/.jenkins-ci.org'],
],
}
# The File[/etc/init/docker-ircbot.conf] resource is declared by the
# module, but we still need to punt the container if the config changes
File <| title == '/etc/init/docker-ircbot.conf' |> {
notify => Service['docker-ircbot'],
}
user { $user:
shell => '/bin/false',
# hard-coding because this is what we already have on spinach
uid => '1013',
managehome => true,
}
file { '/home/ircbot/.github':
owner => $user,
require => User[$user],
content => template("${module_name}/jenkinsadmin/dot-github.erb"),
mode => '0600',
notify => Service['docker-ircbot'],
}
file { '/home/ircbot/.jenkins-ci.org':
owner => $user,
require => User[$user],
content => template("${module_name}/jenkinsadmin/dot-jenkins.erb"),
mode => '0600',
notify => Service['docker-ircbot'],
}
}

121
dist/profile/manifests/jira.pp vendored Normal file
View File

@ -0,0 +1,121 @@
# Run containerized JIRA to serve issues.jenkins-ci.org
# see https://github.com/jenkins-infra/jira for how the container is put together
class profile::jira (
# all injected from hiera
$image_tag,
$database_url, # JDBC URL that represents that database backend
) {
# as a preparation, deploying mock-webapp and not the real jira
include profile::atlassian
include apache::mod::rewrite
include profile::apachemisc
account { 'jira':
home_dir => '/srv/jira',
groups => ['sudo', 'users'],
uid => 2001, # this value must match what's in the 'jira' docker container
gid => 2001,
comment => 'Runs JIRA',
}
file { '/var/log/apache2/issues.jenkins-ci.org':
ensure => directory,
group => $profile::atlassian::group_name,
}
file { '/srv/jira/home':
ensure => directory,
require => File['/srv/jira'],
owner => 'jira',
group => $profile::atlassian::group_name,
}
file { '/srv/jira/docroot':
ensure => directory,
require => File['/srv/jira'],
group => $profile::atlassian::group_name,
}
# JIRA stores LDAP access information in database, not in file
file { '/srv/jira/container.env':
content => join([
"DATABASE_URL=${database_url}"
], '\n'),
mode => '0600',
}
if $::vagrant { # only for testing
docker::run { 'jiradb':
image => 'mariadb',
env => ['MYSQL_ROOT_PASSWORD=s3cr3t','MYSQL_USER=jira','MYSQL_PASSWORD=raji','MYSQL_DATABASE=jiradb'],
restart_service => true,
use_name => true,
command => undef,
}
$jira_links = ['jiradb:db']
} else {
$jira_links = undef
}
docker::image { 'jenkinsciinfra/jira':
image_tag => $image_tag,
}
docker::run { 'jira':
command => undef,
ports => ['8080:8080'],
image => "jenkinsciinfra/jira:${image_tag}",
volumes => ['/srv/jira/home:/srv/jira/home'],
env_file => '/srv/jira/container.env',
restart_service => true,
use_name => true,
require => File['/srv/jira/container.env'],
links => $jira_links,
}
### to put maintenance screen up, comment out the following and comment in the apache::vhost for https://jenkins-ci.org
### #if
#file { '/etc/apache2/sites-enabled/25-issues.jenkins-ci.org.conf':
# ensure => 'link',
# target => '/etc/apache2/sites-available/issues.jenkins-ci.org.maintenance.conf',
#}
### #else
apache::vhost { 'issues.jenkins-ci.org':
port => '443',
docroot => '/srv/jira/docroot',
access_log => false,
error_log_file => 'issues.jenkins-ci.org/error.log',
log_level => 'warn',
custom_fragment => template("${module_name}/jira/vhost.conf"),
notify => Service['apache2'],
require => File['/var/log/apache2/issues.jenkins-ci.org'],
}
### #endif
apache::vhost { 'issues.jenkins-ci.org non-ssl':
# redirect non-SSL to SSL
servername => 'issues.jenkins-ci.org',
port => '80',
docroot => '/srv/jira/docroot',
redirect_status => 'temp',
redirect_dest => 'https://issues.jenkins-ci.org/'
}
profile::apachemaintenance { 'issues.jenkins-ci.org':
}
profile::datadog_check { 'jira-http-check':
checker => 'http_check',
source => 'puppet:///modules/profile/jira/http_check.yaml',
}
profile::datadog_check { 'jira-process-check':
checker => 'process',
source => 'puppet:///modules/profile/jira/process_check.yaml',
}
host { 'issues.jenkins-ci.org':
ip => '127.0.0.1',
}
}

63
dist/profile/manifests/l10n_server.pp vendored Normal file
View File

@ -0,0 +1,63 @@
#
# Accept submissions from the translation plugin
# containerized in https://github.com/jenkins-infra/l10n-server
class profile::l10n_server (
# Parameters supplied by Hiera
$image_tag = 'latest',
) {
include profile::docker
include profile::apachemisc
validate_string($image_tag)
$user = 'l10n'
$dir = "/srv/${user}"
$uid = '2003'
$image = 'jenkinsciinfra/l10n-server'
docker::image { $image:
image_tag => $image_tag,
}
docker::run { 'l10n':
volumes => ["${dir}:/var/l10n"
],
ports => ['8082:8080'],
username => $uid,
image => "${image}:${image_tag}",
require => [Docker::Image[$image],
],
use_name => true,
}
# The File[/etc/init/docker-ircbot.conf] resource is declared by the
# module, but we still need to punt the container if the config changes
File <| title == '/etc/init/docker-l10n.conf' |> {
notify => Service['docker-l10n'],
}
user { $user:
shell => '/bin/false',
home => $dir,
uid => $uid,
managehome => true,
}
# docroot is required for apache::vhost but should never be used because
# we're proxying everything here
$docroot = '/var/www/html'
apache::vhost { 'l10n.jenkins.io':
serveraliases => [
'l10n.jenkins-ci.org',
],
port => '80',
docroot => $docroot,
proxy_pass => [
{
path => '/',
url => 'http://localhost:8082/',
reverse_urls => 'http://localhost:8082/',
},
],
}
}

View File

@ -0,0 +1,26 @@
#
# Used to clean up l10n_server
class profile::l10n_server_tombstone {
$user = 'l10n'
$dir = "/srv/${user}"
profile::docker::run_tombstone { 'l10n':
}
user { $user:
ensure => absent,
}
# docroot is required for apache::vhost but should never be used because
# we're proxying everything here
$docroot = '/var/www/html'
apache::vhost { 'l10n.jenkins.io':
ensure => absent,
docroot => $docroot,
}
file { $dir:
ensure => absent,
}
}

162
dist/profile/manifests/ldap.pp vendored Normal file
View File

@ -0,0 +1,162 @@
#
# Manage an OpenLDAP authentication service
#
class profile::ldap(
$database = 'dc=jenkins-ci,dc=org',
$admin_dn = 'cn=admin,dc=jenkins-ci,dc=org',
$admin_password = undef,
$ssl_key = undef,
$ssl_cert = undef,
$ssl_chain = undef,
) {
# Not including profile::firewall intentionally here to avoid introducing
# redundant iptables rules for the same patterns but with different names
# between jenkins-infra and infra-puppet.
#
# If this is to be applied on any role other than cucumber, the caller should
# expect to include profile::firewall themselves
include ::firewall
include ::datadog_agent
$ssl_dir = '/etc/ldap/ssl'
$ssl_key_path = "${ssl_dir}/slap.key"
$ssl_cert_path = "${ssl_dir}/slap.crt"
$ssl_chain_path = "${ssl_dir}/bundle.crt"
ensure_packages([
'libaugeas-ruby', # for augeas based puppet providers
])
class { 'openldap::server':
ldap_ifs => ['127.0.0.1'],
ldapi_ifs => ['/'],
ldaps_ifs => ['/'],
ssl_cert => $ssl_cert_path,
ssl_key => $ssl_key_path,
ssl_ca => $ssl_chain_path,
require => [File[$ssl_key_path],File[$ssl_cert_path],File[$ssl_chain_path]]
}
openldap::server::database { $database:
directory => '/var/lib/ldap',
rootdn => $admin_dn,
rootpw => $admin_password,
}
# Access grants
###############
openldap::server::access {
"to attrs=userPassword,shadowLastChange by dn=\"${admin_dn}\" on ${database}":
access => 'write',
}
openldap::server::access {
"to attrs=userPassword,shadowLastChange by anonymous on ${database}":
access => 'auth',
}
openldap::server::access {
"to attrs=userPassword,shadowLastChange by self on ${database}":
access => 'write',
}
openldap::server::access {
"to attrs=userPassword,shadowLastChange by * on ${database}":
access => 'none',
}
###############
# SSL Certificates
file { $ssl_dir:
ensure => directory,
mode => '0700',
owner => $openldap::params::server_owner,
require => Class['::openldap::server::install'],
}
file { $ssl_key_path:
content => $ssl_key,
mode => '0600',
owner => $openldap::params::server_owner,
notify => Service['slapd'],
before => Class['::openldap::server::service'],
}
file { $ssl_cert_path:
content => $ssl_cert,
mode => '0644',
owner => $openldap::params::server_owner,
notify => Service['slapd'],
before => Class['::openldap::server::service'],
}
file { $ssl_chain_path:
content => $ssl_chain,
mode => '0644',
owner => $openldap::params::server_owner,
notify => Service['slapd'],
before => Class['::openldap::server::service'],
}
profile::datadog_check { 'ldap-process-check':
checker => 'process',
source => 'puppet:///modules/profile/ldap/process_check.yaml',
}
# Legacy firewall rules from infra-puppet which are copied and
# pasted here so infra-puppet and jenkins-infra are not clobbering
# each others' firewall declarations
firewall { '106 accept inbound LDAPS request from hosted Artifactory by JFrog':
proto => 'tcp',
source => '50.19.229.208',
port => 636,
action => 'accept',
}
# It appears that puppetlabs-firewall doesn't understand an Array as an
# option for the source argument. In fact, as far as I know, iptables can
# only lump multiple IPs into a single rule if they're in a contiguous
# range, this will have to do
firewall { '106 accept inbound LDAPS request from hosted Artifactory by JFrog (second IP)':
proto => 'tcp',
source => '50.16.203.43',
port => 636,
action => 'accept',
}
firewall { '106 accept inbound LDAPS request from hosted Artifactory by JFrog (third IP)':
proto => 'tcp',
source => '54.236.124.56',
port => 636,
action => 'accept',
}
firewall { '106 accept inbound LDAPS request from spambot':
proto => 'tcp',
source => 'home.kohsuke.org',
port => 636,
action => 'accept',
}
firewall { '107 accept inbound LDAPS request from accounts app':
proto => 'tcp',
source => 'accounts.jenkins.io',
port => 636,
action => 'accept',
}
firewall { '107 accept inbound LDAPS request from puppet.jenkins.io':
proto => 'tcp',
source => 'puppet.jenkins.io',
port => 636,
action => 'accept',
}
# normally nobody listens on this port, but when we need to find the
# source IP address JFrog is using to connect us, run 'stone -d -d
# localhost:636 9636' and watch the log
firewall { '106 debugging the LDAPS connection (necessary to report source IP address)':
proto => 'tcp',
port => 9636,
action => 'accept',
}
}

11
dist/profile/manifests/letsencrypt.pp vendored Normal file
View File

@ -0,0 +1,11 @@
#
# This profile configures letsencrypt on the host it's applied to
class profile::letsencrypt {
class { '::letsencrypt':
config => {
email => hiera('letsencrypt::config::email'),
server => hiera('letsencrypt::config::server'),
}
}
}

23
dist/profile/manifests/nolegacy.pp vendored Normal file
View File

@ -0,0 +1,23 @@
#
# This profile is a simple profile to ensure the removal of the legacy
# "infra-puppet" code which ran masterless puppet
class profile::nolegacy {
cron { 'pull puppet updates':
ensure => absent,
}
cron { 'clean up old puppet logs':
ensure => absent,
}
cron { 'clean the repo-update cache':
ensure => absent,
}
# Clean up the infra-puppet checkout from the disk
file { '/root/infra-puppet':
ensure => absent,
recurse => true,
force => true,
}
}

5
dist/profile/manifests/ntp.pp vendored Normal file
View File

@ -0,0 +1,5 @@
#
# Profile defining the NTP configuration
class profile::ntp {
include ::ntp
}

View File

@ -2,24 +2,93 @@
# profile::puppetmaster is a governing what a Jenkins puppetmaster should look
# like
class profile::puppetmaster {
# Mange hiera.yaml
# pull in all our secret stuff, and install eyaml
include ::jenkins_keys
include profile::r10k
# Set up our IRC reporter
include ::irc
include datadog_agent
# Manage hiera.yaml
file { '/etc/puppetlabs/puppet/hiera.yaml':
ensure => file,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/${module_name}/hiera.yaml",
notify => Service['pe-httpd'],
notify => Service['pe-puppetserver'],
}
## Ensure we're setting the right SMTP server
yaml_setting { 'console smtp server':
target => '/etc/puppetlabs/console-auth/config.yml',
key => 'smtp/address',
value => 'smtp.osuosl.org',
notify => Service['pe-httpd'],
ini_setting { 'update report handlers':
ensure => present,
path => '/etc/puppetlabs/puppet/puppet.conf',
section => 'master',
setting => 'reports',
value => 'console,puppetdb,irc,datadog_reports',
notify => Service['pe-puppetserver'],
# We really can't use datadog_reports until we have our datadog.yaml in
# place
require => File['/etc/dd-agent/datadog.yaml'],
}
# pull in all our secret stuff, and install eyaml
include ::jenkins_keys
ini_setting { 'enable master pluginsync':
ensure => present,
path => '/etc/puppetlabs/puppet/puppet.conf',
section => 'master',
setting => 'pluginsync',
value => true,
notify => Service['pe-puppetserver'],
}
firewall { '010 allow dashboard traffic':
proto => 'tcp',
port => 443,
action => 'accept',
}
firewall { '011 allow r10k webhooks':
proto => 'tcp',
port => 9013,
action => 'accept',
}
firewall { '012 allow puppet agents':
proto => 'tcp',
port => 8140,
action => 'accept',
}
firewall { '013 allow mcollective':
proto => 'tcp',
port => 61613,
action => 'accept',
}
# This puppet enterprise special casing logic cribbed directly from the
# puppet-irc module which also needs to install gems
if $::pe_server_version {
$gem_provider = 'puppetserver_gem'
}
else {
$gem_provider = 'gem'
}
# The "datadog_agent::reports" module doesn't really handle puppet enterprise
# very well at all, in order to make things easier on myself I've decided to
# just bring in the *two* resources it defines myself
package { 'dogapi':
ensure => present,
provider => $gem_provider,
}
$api_key = $::datadog_agent::api_key
file { '/etc/dd-agent/datadog.yaml':
ensure => file,
content => template('datadog_agent/datadog.yaml.erb'),
owner => 'pe-puppet',
group => 'root',
mode => '0640',
require => File['/etc/dd-agent'],
}
}

View File

@ -1,87 +1,14 @@
#
# The r10k profile manages the deploy hooks and r10k environment settings on
# the puppet master.
#
# Deploying r10k is a bit of a chicken-and-egg problem, so this code exists to
# ensure that the configuration that was manually set up is codified.
class profile::r10k {
# Here we get our config for r10k from hiera.
# currently this hash is only used by the templates below
$r10k_options = hiera('r10k_options')
class { '::r10k':
remote => 'https://github.com/jenkins-infra/jenkins-infra.git',
version => '1.2.1',
modulepath => '/etc/puppetlabs/puppet/environments/$environment/dist:/etc/puppetlabs/puppet/environments/$environment/modules:/opt/puppet/share/puppet/modules',
manage_modulepath => true,
mcollective => true,
}
ini_setting { 'Update manifest in puppet.conf':
ensure => present,
path => '/etc/puppetlabs/puppet/puppet.conf',
section => 'main',
setting => 'manifest',
value => '/etc/puppetlabs/puppet/environments/$environment/manifests/site.pp',
}
case $::osfamily {
'redhat': {
file { '/etc/init.d/r10k_deployhook.init':
ensure => file,
owner => root,
group => root,
mode => '0755',
content => template("${module_name}/r10k_deployhook.init.erb"),
notify => Service['r10k_deployhook'],
}
}
'debian': {
file { '/etc/init/r10k_deployhook.conf':
ensure => file,
owner => root,
group => root,
mode => '0644',
content => template("${module_name}/r10k_deployhook.upstart.erb"),
alias => 'deployhook_init',
}
}
default: { fail("${module_name} is not supported on ${::osfamily}") }
}
file { "${r10k_options['deployhooks_logdir']}/deployhooks":
file { '/etc/puppetlabs/r10k/r10k.yaml' :
ensure => file,
owner => peadmin,
group => peadmin,
mode => '0660',
}
file { "${r10k_options['deployhooks_logdir']}/mco":
ensure => file,
owner => peadmin,
group => peadmin,
mode => '0660',
}
package { 'sinatra':
ensure => present,
provider => pe_gem,
}
package { 'webrick':
ensure => present,
provider => pe_gem,
}
file { '/usr/local/bin/r10k_deployhook':
ensure => file,
owner => root,
group => root,
mode => '0755',
content => template("${module_name}/r10k_deployhook.erb"),
require => [ Package['sinatra'], Package['webrick'] ],
notify => Service['r10k_deployhook'],
}
service { 'r10k_deployhook':
ensure => running,
enable => true,
owner => 'root',
mode => '0744',
source => "puppet:///modules/${module_name}/r10k/r10k.yaml",
}
}

88
dist/profile/manifests/rating.pp vendored Normal file
View File

@ -0,0 +1,88 @@
#
# Server side of the community rating data
# containerized in https://github.com/jenkins-infra/infra-rating
class profile::rating (
# Parameters supplied by Hiera
$image_tag = 'latest',
) {
include profile::docker
include profile::apachemisc
include profile::letsencrypt
validate_string($image_tag)
$image = 'jenkinsciinfra/rating'
$config = '/etc/rating.conf'
docker::image { $image:
image_tag => $image_tag,
}
docker::run { 'rating':
image => "${image}:${image_tag}",
volumes => ["${config}:/config/dbconfig.php"
],
ports => ['8083:80'],
require => [Docker::Image[$image],
File[$config],
],
use_name => true,
}
# The File[/etc/init/docker-ircbot.conf] resource is declared by the
# module, but we still need to punt the container if the config changes
File <| title == '/etc/init/docker-rating.conf' |> {
notify => Service['docker-rating'],
}
file { $config:
content => hiera('profile::rating::dbconfig'),
mode => '0644',
notify => Service['docker-rating'],
}
# convenient to interact with database
package { 'postgresql-client':
ensure => present,
}
# docroot is required for apache::vhost but should never be used because
# we're proxying everything here
$docroot = '/var/www/html'
apache::vhost { 'rating.jenkins.io':
port => '443',
ssl => true,
ssl_key => '/etc/letsencrypt/live/rating.jenkins.io/privkey.pem',
# When Apache is upgraded to >= 2.4.8 this should be changed to
# fullchain.pem
ssl_cert => '/etc/letsencrypt/live/rating.jenkins.io/cert.pem',
ssl_chain => '/etc/letsencrypt/live/rating.jenkins.io/chain.pem',
docroot => $docroot,
proxy_pass => [
{
path => '/',
url => 'http://localhost:8083/',
reverse_urls => 'http://localhost:8083/',
},
],
}
apache::vhost { 'rating.jenkins.io unsecured':
servername => 'rating.jenkins.io',
port => '80',
docroot => $docroot,
redirect_status => 'permanent',
redirect_dest => 'https://rating.jenkins.io/',
}
# We can only acquire certs in production due to the way the letsencrypt
# challenge process works
if (($::environment == 'production') and ($::vagrant != '1')) {
letsencrypt::certonly { 'rating.jenkins.io':
domains => ['rating.jenkins.io'],
plugin => 'apache',
manage_cron => true,
}
}
}

81
dist/profile/manifests/robobutler.pp vendored Normal file
View File

@ -0,0 +1,81 @@
#
# IRC bot that runs project meeting
# containerized in https://github.com/jenkins-infra/robobutler
#
class profile::robobutler (
# all injected from hiera
$nick,
$password,
$logdir = '/var/www/meetings.jenkins-ci.org'
) {
include profile::apachemisc
include profile::docker
# Tag is the docker container image tag from our build process
$tag = 'build12'
$user = 'butlerbot'
user { $user:
# butlerbot user id. hard-coded into butlerbot image
uid => '500',
shell => '/bin/false',
}
file { $logdir:
ensure => directory,
owner => $user,
mode => '0755',
}
file { '/etc/butlerbot':
ensure => directory,
owner => $user,
}
file { '/etc/butlerbot/main.conf':
owner => $user,
mode => '0600',
content => "export NICK=${nick}\nexport PASSWORD=${password}\nexport HTML_DIR=${logdir}",
require => File['/etc/butlerbot'],
notify => Service['docker-butlerbot'],
}
docker::image { 'jenkinsciinfra/butlerbot':
image_tag => $tag,
}
docker::run { 'butlerbot':
command => undef,
image => "jenkinsciinfra/butlerbot:${tag}",
volumes => ["${logdir}:${logdir}", '/etc/butlerbot:/etc/butlerbot'],
require => File['/etc/butlerbot/main.conf'],
}
# 'restart docker-butlerbot' won't do because it will not reload the configuration
exec { 'restart-butlerbot':
refreshonly => true,
command => '/sbin/stop docker-butlerbot; /sbin/start docker-butlerbot',
}
# The File[/etc/init/docker-butlerbot.conf] resource is declared by the
# module, but we still need to punt the container if the config changes
File <| title == '/etc/init/docker-butlerbot.conf' |> {
notify => Exec['restart-butlerbot'],
}
file { '/var/log/apache2/meetings.jenkins-ci.org':
ensure => directory,
}
apache::vhost { 'meetings.jenkins-ci.org':
docroot => $logdir,
port => '80',
access_log => false,
error_log_file => 'meetings.jenkins-ci.org/error.log',
log_level => 'warn',
custom_fragment => 'CustomLog "|/usr/bin/rotatelogs /var/log/apache2/meetings.jenkins-ci.org/access.log.%Y%m%d%H%M%S 604800" reverseproxy_combined',
notify => Service['apache2'],
require => File['/var/log/apache2/meetings.jenkins-ci.org'],
}
}

156
dist/profile/manifests/staticsite.pp vendored Normal file
View File

@ -0,0 +1,156 @@
#
# The staticsite profile ensures that the right resources are present to host
# the jenkins.io static site.
#
# context: <https://issues.jenkins-ci.org/browse/INFRA-506>
class profile::staticsite(
$site_root = '/srv/jenkins.io',
$deployer_user = 'site-deployer',
$deployer_ssh_key = undef,
) {
# Debian defaults to the 'worker' module which doesn't handle HackerNews hugs
# of death as well as I would like. the mpm_event module is much less
# resource intensive
class { 'apache':
mpm_module => 'event',
}
include profile::letsencrypt
# The apache-misc profile includes a number of other important monitoring and
# apache configuration settings
include profile::apachemisc
validate_string($deployer_user)
validate_string($deployer_ssh_key)
validate_absolute_path($site_root)
ensure_packages(['zip'])
# This shell is very important to ensure that this user cannot do much else
# other than upload some data
$deployer_shell = '/usr/lib/sftp-server'
$deployer_group = 'www-data'
$site_docroot = "${site_root}/current"
$beta_docroot = "${site_root}/beta"
account { $deployer_user:
home_dir => $site_root,
ssh_key => $deployer_ssh_key,
gid => $deployer_group,
create_group => false,
shell => $deployer_shell,
comment => 'Static Site Deployer role account',
notify => Exec['chown staticsite'],
}
# Make sure our deployer's shell is listed as a valid shell
file_line { 'sftp-server shell':
path => '/etc/shells',
line => $deployer_shell,
}
file { "${site_root}/archives":
ensure => directory,
mode => '0644',
owner => $deployer_user,
group => $deployer_group,
require => Account[$deployer_user],
notify => Exec['chown staticsite'],
}
# The deploy-site script ensures that we can unzip an archive properly, it
# does not ensure that the archive gets placed in the appropriate location on
# the machine
file { "${site_root}/deploy-site":
ensure => present,
owner => $deployer_user,
group => $deployer_group,
mode => '0700',
source => "puppet:///modules/${module_name}/staticsite/deploy-site",
require => Account[$deployer_user],
}
# To simplify permissions and keep the site-deployer's shell restricted to
# just SFTP, the `deploy-site` script is idempotent and can be run repeatedly
# without any issue
cron { 'deploy-site':
ensure => present,
user => $deployer_user,
command => "${site_root}/deploy-site",
minute => '*',
require => File["${site_root}/deploy-site"],
}
# Setting up this symlink ahead of time even though archives/ isn't the right
# place for it to go. This prevents apache::vhost from making current/ a
# directory
file { $site_docroot:
ensure => link,
replace => false,
owner => $deployer_user,
group => $deployer_group,
target => "${site_root}/archives",
require => File["${site_root}/archives"],
}
file { $beta_docroot:
ensure => link,
replace => false,
owner => $deployer_user,
group => $deployer_group,
target => "${site_root}/archives",
require => File["${site_root}/archives"],
}
exec { 'chown staticsite':
command => "/bin/chown -R ${deployer_user}:${deployer_group} ${site_root}",
refreshonly => true,
}
apache::vhost { 'beta.jenkins-ci.org':
port => '80',
docroot => $site_docroot,
require => File[$site_docroot],
}
apache::vhost { 'jenkins.io':
serveraliases => [
'beta.jenkins.io',
'www.jenkins.io',
],
port => '443',
ssl => true,
ssl_key => '/etc/letsencrypt/live/jenkins.io/privkey.pem',
# When Apache is upgraded to >= 2.4.8 this should be changed to
# fullchain.pem
ssl_cert => '/etc/letsencrypt/live/jenkins.io/cert.pem',
ssl_chain => '/etc/letsencrypt/live/jenkins.io/chain.pem',
docroot => $beta_docroot,
require => File[$beta_docroot],
}
apache::vhost { 'jenkins.io unsecured':
servername => 'jenkins.io',
serveraliases => [
'beta.jenkins.io',
'www.jenkins.io',
],
port => '80',
docroot => $beta_docroot,
redirect_status => 'permanent',
redirect_dest => 'https://jenkins.io/',
}
# We can only acquire certs in production due to the way the letsencrypt
# challenge process works
if (($::environment == 'production') and ($::vagrant != '1')) {
letsencrypt::certonly { 'jenkins.io':
domains => ['jenkins.io', 'www.jenkins.io'],
plugin => 'apache',
manage_cron => true,
}
}
}

27
dist/profile/manifests/sudo.pp vendored Normal file
View File

@ -0,0 +1,27 @@
#
# Main sudo management profile
class profile::sudo {
include ::sudo
sudo::conf { 'env-defaults':
content => 'Defaults env_reset',
}
sudo::conf { 'secure-path':
content => 'Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"',
}
sudo::conf { 'root':
content => 'root ALL=(ALL) ALL',
}
sudo::conf { 'admins':
priority => '10',
content => '%admin ALL=(ALL) ALL',
}
sudo::conf { 'sudo':
priority => '10',
content => '%sudo ALL=(ALL) NOPASSWD: ALL',
}
}

10
dist/profile/manifests/sudo/osu.pp vendored Normal file
View File

@ -0,0 +1,10 @@
#
# profile to define the additional sudoer requirements for machines in the
# OSUOSL which have an `osuadmin` role account on them
class profile::sudo::osu {
include profile::sudo
sudo::conf { 'osuadmin':
content => 'osuadmin ALL=(ALL) ALL',
}
}

13
dist/profile/manifests/vagrant.pp vendored Normal file
View File

@ -0,0 +1,13 @@
#
# Vagrant profile for capturing some of the spceifics we need for Vagrant boxes
# to pvoision cleanly
class profile::vagrant {
include sudo
# AWS Ubuntu images have an `ubuntu` default user which Vagrant will use for
# provisioning
sudo::conf { 'ubuntu':
priority => '10',
content => 'ubuntu ALL=(ALL) NOPASSWD: ALL',
}
}

View File

@ -0,0 +1,23 @@
# This file configures the Jenkins project's accounts management application.
#
# See: <https://github.com/jenkins-infra/account-app>
server=<%= @ldap_url %>
managerDN=cn=admin,dc=jenkins-ci,dc=org
managerPassword=<%= @ldap_password %>
newUserBaseDN=ou=people,dc=jenkins-ci,dc=org
# Host which accountapp can use for sending out password reset and other emails
smtpServer=<%= @smtp_server %>
# recaptcha v2 keys from rtyler's google account
recaptchaPublicKey=6Le4HxYTAAAAACmLvcV8H4rki8HOWRdcU8HqnSFR
recaptchaPrivateKey=<%= @recaptcha_key %>
url=<%= @app_url %>
# Create this file on the host machine in order to temporarily disable account
# creation
circuitBreakerFile=/etc/accountapp/circuitBreaker
# vim: ft=conf

View File

@ -0,0 +1,33 @@
# MANAGED BY PUPPET. DO NOT MODIFY.
# used during the maintenance outage
Listen 443
<VirtualHost *:443>
ServerName <%= @name %>
SSLEngine On
ErrorDocument 503 /maintenance.html
## uncomment below to enter maintenance mode
RedirectMatch 503 ^/(?!maintenance)
#RewriteEngine on
#RewriteCond %{REQUEST_URI} !/maintenance.html$
#RewriteRule $ /maintenance.html [R=302,L]
DocumentRoot /var/www/maintenance
Customlog /dev/null combined
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
</VirtualHost>
<VirtualHost *:80>
ServerName <%= @name %>
Redirect temp / https://<%= @name %>/
Customlog /dev/null combined
</VirtualHost>

View File

@ -0,0 +1,15 @@
CustomLog "|/usr/bin/rotatelogs /var/log/apache2/archives.jenkins-ci.org/access.log.%Y%m%d%H%M%S 604800" reverseproxy_combined
# see http://bwmod.sourceforge.net/files/mod_bw-0.7.txt
# allocate the combined total of N KB/sec bandwidth to this service,
# all the concurrent users will share this bandwidth pool, so if 10 people download
# at the same time, they get tenth the bandwidth each.
#
# 1000KB/sec constant transfer is equivalent of 2600GB/month transfer.
# At $0.12/GB, that costs about $300/month
BandwidthModule On
ForceBandWidthModule On
Bandwidth all 1024000
MinBandwidth all 0

View File

@ -0,0 +1,25 @@
SSLEngine On
# Ultimate htaccess Blacklist 2 from Perishable Press
# Deny domain access to spammers and other scumbags
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ADSARobot|ah-ha|AhrefsBot|almaden|aktuelles|Anarchie|amzn_assoc|ASPSeek|ASSORT|ATHENS|Atomz|attach|attache|autoemailspider|BackWeb|Bandit|BatchFTP|bdfetch|big.brother|BlackWidow|bmclient|Boston\ Project|BravoBrian\ SpiderEngine\ MarcoPolo|Bot\ mailto:craftbot@yahoo.com|Buddy|Bullseye|bumblebee|capture|CherryPicker|ChinaClaw|CICC|clipping|Collector|Copier|Crescent|Crescent\ Internet\ ToolPak|Custo|cyberalert|DA$|Deweb|diagem|Digger|Digimarc|DIIbot|DISCo|DISCo\ Pump|DISCoFinder|Download\ Demon|Download\ Wonder|Downloader|Drip|DSurf15a|DTS.Agent|EasyDL|eCatch|ecollector|efp@gmx\.net|Email\ Extractor|EirGrabber|email|EmailCollector|EmailSiphon|EmailWolf|Express\ WebPictures|ExtractorPro|EyeNetIE|FavOrg|fastlwspider|Favorites\ Sweeper|Fetch|FEZhead|FileHound|FlashGet\ WebWasher|FlickBot|fluffy|FrontPage|GalaxyBot|Generic|Getleft|GetRight|GetSmart|GetWeb!|GetWebPage|gigabaz|Girafabot|Go\!Zilla|Go!Zilla|Go-Ahead-Got-It|GornKer|gotit|Grabber|GrabNet|Grafula|Green\ Research|grub-client|Harvest|hhjhj@yahoo|hloader|HMView|HomePageSearch|http\ generic|HTTrack|httpdown|httrack|ia_archiver|IBM_Planetwide|Image\ Stripper|Image\ Sucker|imagefetch|IncyWincy|Indy*Library|Indy\ Library|informant|Ingelin|InterGET|Internet\ Ninja|InternetLinkagent|Internet\ Ninja|InternetSeer\.com|Iria|Irvine|JBH*agent|JetCar|JOC|JOC\ Web\ Spider|JustView|KWebGet|Lachesis|larbin|LeechFTP|LexiBot|lftp|libwww|likse|Link|Link*Sleuth|LINKS\ ARoMATIZED|LinkWalker|LWP|lwp-trivial|Mag-Net|Magnet|Mac\ Finder|Mag-Net|Mass\ Downloader|MCspider|Memo|Microsoft.URL|MIDown\ tool|Mirror|Missigua\ Locator|Mister\ PiX|MMMtoCrawl\/UrlDispatcherLLL|^Mozilla$|Mozilla.*Indy|Mozilla.*NEWT|Mozilla*MSIECrawler|MS\ FrontPage*|MSFrontPage|MSIECrawler|MSProxy|multithreaddb|nationaldirectory|Navroad|NearSite|NetAnts|NetCarta|NetMechanic|netprospector|NetResearchServer|NetSpider|Net\ Vampire|NetZIP|NetZip\ Downloader|NetZippy|NEWT|NICErsPRO|Ninja|NPBot|Octopus|Offline\ Explorer|Offline\ Navigator|OpaL|Openfind|OpenTextSiteCrawler|OrangeBot|PageGrabber|Papa\ Foto|PackRat|pavuk|pcBrowser|PersonaPilot|Ping|PingALink|Pockey|Proxy|psbot|PSurf|puf|Pump|PushSite|QRVA|RealDownload|Reaper|Recorder|ReGet|replacer|RepoMonkey|Robozilla|Rover|RPT-HTTPClient|Rsync|Scooter|SearchExpress|searchhippo|searchterms\.it|Second\ Street\ Research|Seeker|Shai|Siphon|sitecheck|sitecheck.internetseer.com|SiteSnagger|SlySearch|SmartDownload|snagger|Snake|SpaceBison|Spegla|SpiderBot|sproose|SqWorm|Stripper|Sucker|SuperBot|SuperHTTP|Surfbot|SurfWalker|Szukacz|tAkeOut|tarspider|Teleport\ Pro|Templeton|TrueRobot|TV33_Mercator|UIowaCrawler|UtilMind|URLSpiderPro|URL_Spider_Pro|Vacuum|vagabondo|vayala|visibilitygap|VoidEYE|vspider|Web\ Downloader|w3mir|Web\ Data\ Extractor|Web\ Image\ Collector|Web\ Sucker|Wweb|WebAuto|WebBandit|web\.by\.mail|Webclipping|webcollage|webcollector|WebCopier|webcraft@bea|webdevil|webdownloader|Webdup|WebEMailExtrac|WebFetch|WebGo\ IS|WebHook|Webinator|WebLeacher|WEBMASTERS|WebMiner|WebMirror|webmole|WebReaper|WebSauger|Website|Website\ eXtractor|Website\ Quester|WebSnake|Webster|WebStripper|websucker|webvac|webwalk|webweasel|WebWhacker|WebZIP|Wget|Whacker|whizbang|WhosTalking|Widow|WISEbot|WWWOFFLE|x-Tractor|^Xaldon\ WebSpider|WUMPUS|Xenu|XGET|Zeus.*Webster|Zeus [NC]
RewriteRule ^.* - [F,L]
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
RedirectMatch ^/display/HUDSON/(.+) /display/JENKINS/$1
Redirect /signup.action https://jenkins-ci.org/account
Redirect /forgotuserpassword.action https://jenkins-ci.org/account
ProxyPass /display/HUDSON !
ProxyPass /signup.action !
ProxyPass /robots.txt !
ProxyPass /forgotuserpassword.action !
ProxyPass / http://localhost:8009/
ProxyPassReverse / http://localhost:8009/
CustomLog "|/usr/bin/rotatelogs /var/log/apache2/wiki.jenkins-ci.org/access.log.%Y%m%d%H%M%S 86400" combined

View File

@ -0,0 +1,9 @@
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
CustomLog "|/usr/bin/rotatelogs /var/log/apache2/demo.jenkins-ci.org/access.log.%Y%m%d%H%M%S 86400" combined

View File

@ -0,0 +1,2 @@
login=<%= @github_login %>
password=<%= @github_password %>

View File

@ -0,0 +1,2 @@
userName=<%= @jira_login %>
password=<%= @jira_password %>

26
dist/profile/templates/jira/vhost.conf vendored Normal file
View File

@ -0,0 +1,26 @@
SSLEngine On
# Ultimate htaccess Blacklist 2 from Perishable Press
# Deny domain access to spammers and other scumbags
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ADSARobot|ah-ha|AhrefsBot|almaden|aktuelles|Anarchie|amzn_assoc|ASPSeek|ASSORT|ATHENS|Atomz|attach|attache|autoemailspider|BackWeb|Bandit|BatchFTP|bdfetch|big.brother|BlackWidow|bmclient|Boston\ Project|BravoBrian\ SpiderEngine\ MarcoPolo|Bot\ mailto:craftbot@yahoo.com|Buddy|Bullseye|bumblebee|capture|CherryPicker|ChinaClaw|CICC|clipping|Collector|Copier|Crescent|Crescent\ Internet\ ToolPak|Custo|cyberalert|DA$|Deweb|diagem|Digger|Digimarc|DIIbot|DISCo|DISCo\ Pump|DISCoFinder|Download\ Demon|Download\ Wonder|Downloader|Drip|DSurf15a|DTS.Agent|EasyDL|eCatch|ecollector|efp@gmx\.net|Email\ Extractor|EirGrabber|email|EmailCollector|EmailSiphon|EmailWolf|Express\ WebPictures|ExtractorPro|EyeNetIE|FavOrg|fastlwspider|Favorites\ Sweeper|Fetch|FEZhead|FileHound|FlashGet\ WebWasher|FlickBot|fluffy|FrontPage|GalaxyBot|Generic|Getleft|GetRight|GetSmart|GetWeb!|GetWebPage|gigabaz|Girafabot|Go\!Zilla|Go!Zilla|Go-Ahead-Got-It|GornKer|gotit|Grabber|GrabNet|Grafula|Green\ Research|grub-client|Harvest|hhjhj@yahoo|hloader|HMView|HomePageSearch|http\ generic|HTTrack|httpdown|httrack|ia_archiver|IBM_Planetwide|Image\ Stripper|Image\ Sucker|imagefetch|IncyWincy|Indy*Library|Indy\ Library|informant|Ingelin|InterGET|Internet\ Ninja|InternetLinkagent|Internet\ Ninja|InternetSeer\.com|Iria|Irvine|JBH*agent|JetCar|JOC|JOC\ Web\ Spider|JustView|KWebGet|Lachesis|larbin|LeechFTP|LexiBot|lftp|libwww|likse|Link|Link*Sleuth|LINKS\ ARoMATIZED|LinkWalker|LWP|lwp-trivial|Mag-Net|Magnet|Mac\ Finder|Mag-Net|Mass\ Downloader|MCspider|Memo|Microsoft.URL|MIDown\ tool|Mirror|Missigua\ Locator|Mister\ PiX|MMMtoCrawl\/UrlDispatcherLLL|^Mozilla$|Mozilla.*Indy|Mozilla.*NEWT|Mozilla*MSIECrawler|MS\ FrontPage*|MSFrontPage|MSIECrawler|MSProxy|multithreaddb|nationaldirectory|Navroad|NearSite|NetAnts|NetCarta|NetMechanic|netprospector|NetResearchServer|NetSpider|Net\ Vampire|NetZIP|NetZip\ Downloader|NetZippy|NEWT|NICErsPRO|Ninja|NPBot|Octopus|Offline\ Explorer|Offline\ Navigator|OpaL|Openfind|OpenTextSiteCrawler|OrangeBot|PageGrabber|Papa\ Foto|PackRat|pavuk|pcBrowser|PersonaPilot|Ping|PingALink|Pockey|Proxy|psbot|PSurf|puf|Pump|PushSite|QRVA|RealDownload|Reaper|Recorder|ReGet|replacer|RepoMonkey|Robozilla|Rover|RPT-HTTPClient|Rsync|Scooter|SearchExpress|searchhippo|searchterms\.it|Second\ Street\ Research|Seeker|Shai|Siphon|sitecheck|sitecheck.internetseer.com|SiteSnagger|SlySearch|SmartDownload|snagger|Snake|SpaceBison|Spegla|SpiderBot|sproose|SqWorm|Stripper|Sucker|SuperBot|SuperHTTP|Surfbot|SurfWalker|Szukacz|tAkeOut|tarspider|Teleport\ Pro|Templeton|TrueRobot|TV33_Mercator|UIowaCrawler|UtilMind|URLSpiderPro|URL_Spider_Pro|Vacuum|vagabondo|vayala|visibilitygap|VoidEYE|vspider|Web\ Downloader|w3mir|Web\ Data\ Extractor|Web\ Image\ Collector|Web\ Sucker|Wweb|WebAuto|WebBandit|web\.by\.mail|Webclipping|webcollage|webcollector|WebCopier|webcraft@bea|webdevil|webdownloader|Webdup|WebEMailExtrac|WebFetch|WebGo\ IS|WebHook|Webinator|WebLeacher|WEBMASTERS|WebMiner|WebMirror|webmole|WebReaper|WebSauger|Website|Website\ eXtractor|Website\ Quester|WebSnake|Webster|WebStripper|websucker|webvac|webwalk|webweasel|WebWhacker|WebZIP|Wget|Whacker|whizbang|WhosTalking|Widow|WISEbot|WWWOFFLE|x-Tractor|^Xaldon\ WebSpider|WUMPUS|Xenu|XGET|Zeus.*Webster|Zeus [NC]
RewriteRule ^.* - [F,L]
# Redirect from old project key
RedirectMatch /browse/HUDSON-(.+) /browse/JENKINS-$1
Redirect /secure/Signup!default.jspa https://jenkins-ci.org/account
Redirect /secure/ForgotLoginDetails.jspa https://jenkins-ci.org/account
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPassMatch ^/browse/HUDSON- !
ProxyPass /secure/Signup!default.jspa !
ProxyPass /secure/ForgotLoginDetails.jspa !
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyPreserveHost On
CustomLog "|/usr/bin/rotatelogs /var/log/apache2/issues.jenkins-ci.org/access.log.%Y%m%d%H%M%S 86400" combined

View File

@ -12,7 +12,7 @@ require 'openssl'
require 'resolv'
require 'json'
DEPLOYCMD = '/opt/puppet/bin/mco r10k deploy_all --np >> <%= @r10k_options['deployhooks_logdir'] %>/mco 2>&1'
DEPLOYCMD = '/opt/puppet/bin/mco r10k synchronize --np >> <%= @r10k_options['deployhooks_logdir'] %>/mco 2>&1'
LOGFILE = '<%= @r10k_options['deployhooks_logdir'] %>/deployhooks'
USER = '<%= @r10k_options['deployhooks_user'] %>'
PASS = '<%= @r10k_options['deployhooks_pass'] %>'

4
dist/role/manifests/buildnode.pp vendored Normal file
View File

@ -0,0 +1,4 @@
#
#
class role::buildnode {
}

10
dist/role/manifests/buildnode/mac.pp vendored Normal file
View File

@ -0,0 +1,10 @@
#
# Provision a simple, SSH-able Mac OS X based Jenkins build node
class role::buildnode::mac {
include profile::base
class { 'profile::buildslave':
docker => false,
ruby => false,
}
}

7
dist/role/manifests/celery.pp vendored Normal file
View File

@ -0,0 +1,7 @@
#
# Celery is a Rackspace "Performance 1 - 8GB" class VM with 8x CPUs and 8GB of RAM
# Disk is small and at 40GB system + 80GB data
class role::celery {
include profile::base
include profile::buildslave
}

7
dist/role/manifests/cucumber.pp vendored Normal file
View File

@ -0,0 +1,7 @@
#
# Cucumber is an old machine based in a Contegix datacenter
class role::cucumber {
include profile::diagnostics
include profile::ldap
include profile::jenkins
}

10
dist/role/manifests/edamame.pp vendored Normal file
View File

@ -0,0 +1,10 @@
#
# Edamame is a VM with 2x CPUs and 4GB of RAM at the OSUOSL
class role::edamame {
include profile::base
include profile::robobutler
include profile::sudo::osu
include profile::bind
include profile::apachecert
include profile::jira
}

8
dist/role/manifests/eggplant.pp vendored Normal file
View File

@ -0,0 +1,8 @@
#
# Eggplant is a VM with 2vCPUs and 2GB RAM at the OSUOSL
class role::eggplant {
include profile::base
include profile::sudo::osu
include profile::staticsite
include profile::accountapp
}

9
dist/role/manifests/kelp.pp vendored Normal file
View File

@ -0,0 +1,9 @@
#
# Kelp is a build slave on Rackspace with 8vCPUs and 30GB RAM
#
# This node also has a massive (300GB) data disk mounted as /home/jenkins
class role::kelp {
include profile::base
include profile::buildslave
include profile::demo
}

5
dist/role/manifests/l10n.pp vendored Normal file
View File

@ -0,0 +1,5 @@
# EC2
class role::l10n {
include profile::base
include profile::l10n_server
}

5
dist/role/manifests/ldapserver.pp vendored Normal file
View File

@ -0,0 +1,5 @@
# A server to host openldap
class role::ldapserver {
include profile::base
include profile::ldap
}

8
dist/role/manifests/lettuce.pp vendored Normal file
View File

@ -0,0 +1,8 @@
#
# Lettuce is a 2vCPU/8GB KVM-based VM at the OSUOSL
class role::lettuce {
include profile::base
include profile::sudo::osu
include profile::apachecert
include profile::confluence
}

7
dist/role/manifests/okra.pp vendored Normal file
View File

@ -0,0 +1,7 @@
#
# Okra is a tiny VM (1vCPU/4GB RAM) on Rackspace
class role::okra {
include profile::base
include profile::archives
include profile::bind
}

View File

@ -1,7 +1,7 @@
#
# role::puppetmaster defines what a node role that should look like
class role::puppetmaster {
include profile::accounts
include profile::base
include profile::puppetmaster
include profile::r10k
include profile::sudo::osu
}

5
dist/role/manifests/rating.pp vendored Normal file
View File

@ -0,0 +1,5 @@
# A server to host openldap
class role::rating {
include profile::base
include profile::rating
}

14
dist/role/manifests/spinach.pp vendored Normal file
View File

@ -0,0 +1,14 @@
#
# spinach is an Ubuntu VM in the Rackspace Cloud
#
# this machine was donated long time ago and it appears to belong to a then Rackspace employee
# that's no longer with the company. We do not have direct access to this machine, so we need
# to be ready to lose this machine any time
#
class role::spinach {
include profile::base
include profile::groovy
include profile::bind
include profile::jenkinsadmin
include profile::buildslave
}

3
environment.conf Normal file
View File

@ -0,0 +1,3 @@
modulepath = ./dist:./modules:$basemodulepath
# <https://docs.puppetlabs.com/puppet/3.8/reference/configuration.html#environmenttimeout>
environment_timeout = 0

5
hieradata/README.md Normal file
View File

@ -0,0 +1,5 @@
### Hieradata
The yaml contained here uses the hiera-eyaml gem to store sensative information.
You must be granted access to the jenkins-keys repository to get the keys required to edit the encrypted information. Further details on eyaml are avialable in the README of that repo.

Some files were not shown because too many files have changed in this diff Show More