Release Notes
Version 165 (Michael Stahnke, 01/25/2012 05:08 pm)
| 1 | 1 | # Release Notes |
|
|---|---|---|---|
| 2 | 1 | ||
| 3 | 114 | Nick Fagerlund | (See also: [[Release Notes Scratchpad]]) |
| 4 | 114 | Nick Fagerlund | |
| 5 | 1 | The Release Notes document is a feature roadmap to the various |
|
| 6 | 1 | Puppet versions. It details changes to features, functions, |
|
| 7 | 1 | language, configuration and types during the course of Puppet's |
|
| 8 | 1 | development. It highlights incompatibilities and specifies when new |
|
| 9 | 1 | features were introduced and the extent to which they are |
|
| 10 | 1 | backwards-compatible. |
|
| 11 | 1 | ||
| 12 | 1 | Also available is the |
|
| 13 | 4 | James Turnbull | [Roadmap Tracker](http://projects.puppetlabs.com/projects/puppet/roadmap?tracker_ids%5B%5D=1&tracker_ids%5B%5D=2&tracker_ids%5B%5D=4&completed=1&with_subprojects=0&with_subprojects=0) |
| 14 | 1 | which lists tickets closed for each release. Just click on the |
|
| 15 | 1 | relevant release from the list on the right hand side. |
|
| 16 | 1 | ||
| 17 | 1 | If upgrading you should review this document upward from the |
|
| 18 | 1 | version you are upgrading from. Please remember that if upgrading |
|
| 19 | 1 | through multiple versions some behaviour may change more than |
|
| 20 | 1 | once. |
|
| 21 | 1 | ||
| 22 | 1 | It is also important to note when upgrading that not all versions |
|
| 23 | 88 | James Turnbull | are backwards compatible. Newer agents may not work with older |
| 24 | 88 | James Turnbull | masters and vice-versa. Where possible backwards-compatibility is |
| 25 | 151 | Nick Fagerlund | maintained but it's not always totally successful. We strongly recommend |
| 26 | 88 | James Turnbull | ensuring your master and agents are the same version. |
| 27 | 87 | James Turnbull | |
| 28 | 87 | James Turnbull | When upgrading it is also strongly recommended that you upgrade your master |
| 29 | 151 | Nick Fagerlund | first and then your agents. Earlier agents usually work with later masters but later |
| 30 | 151 | Nick Fagerlund | agents frequently have issues with earlier master versions. For example 0.24.8 |
| 31 | 151 | Nick Fagerlund | agents will work with 2.6.6 masters but 2.6.6 agents may have unpredictable |
| 32 | 1 | results with a 0.24.8 master. |
|
| 33 | 147 | Michael Stahnke | |
| 34 | 165 | Michael Stahnke | - [2.7.10](#2.7.10) |
| 35 | 154 | Matthaus Litteken | - [2.7.9](#2.7.9) |
| 36 | 152 | Nick Fagerlund | - [2.7.8](#2.7.8) |
| 37 | 151 | Nick Fagerlund | - 2.7.7 died in the Thunderdome |
| 38 | 137 | Michael Stahnke | - [2.7.6](#2.7.6) |
| 39 | 133 | Michael Stahnke | - [2.7.5](#2.7.5) |
| 40 | 131 | Michael Stahnke | - [2.7.4](#2.7.4) |
| 41 | 121 | Michael Stahnke | - [2.7.3](#2.7.3) |
| 42 | 143 | Nick Fagerlund | - 2.7.2 died in the Thunderdome and was never released. |
| 43 | 108 | Michael Stahnke | - [2.7.1](#2.7.1) |
| 44 | 106 | Michael Stahnke | - [2.7.0 (Statler)](#2.7.0) |
| 45 | 157 | Matthaus Litteken | - [2.6.13](#2.6.13) |
| 46 | 140 | Nick Fagerlund | - [2.6.12](#2.6.12) |
| 47 | 140 | Nick Fagerlund | - [2.6.11](#2.6.11) |
| 48 | 130 | Michael Stahnke | - [2.6.10](#2.6.10) |
| 49 | 107 | Michael Stahnke | - [2.6.9](#2.6.9) |
| 50 | 95 | Jacob Helwig | - [2.6.8](#2.6.8) |
| 51 | 86 | James Turnbull | - [2.6.7](#2.6.7) |
| 52 | 81 | Jacob Helwig | - [2.6.6](#2.6.6) |
| 53 | 67 | James Turnbull | - [2.6.5](#2.6.5) |
| 54 | 66 | Nick Fagerlund | - [2.6.4](#2.6.4) |
| 55 | 65 | Nick Fagerlund | - [2.6.3](#2.6.3) |
| 56 | 65 | Nick Fagerlund | - [2.6.2](#2.6.2) |
| 57 | 65 | Nick Fagerlund | - [2.6.1](#2.6.1) |
| 58 | 65 | Nick Fagerlund | - [2.6.0](#2.6.0) |
| 59 | 65 | Nick Fagerlund | - [0.25.5](#0.25.5) |
| 60 | 65 | Nick Fagerlund | - [0.25.4](#0.25.4) |
| 61 | 65 | Nick Fagerlund | - [0.25.3](#0.25.3) |
| 62 | 65 | Nick Fagerlund | - [0.25.2](#0.25.2) |
| 63 | 65 | Nick Fagerlund | - [0.25.1](#0.25.1) |
| 64 | 65 | Nick Fagerlund | - [0.25.0](#0.25.0) |
| 65 | 65 | Nick Fagerlund | - [0.24.9](#0.24.9) |
| 66 | 65 | Nick Fagerlund | - [0.24.8](#0.24.8) |
| 67 | 65 | Nick Fagerlund | - [0.24.7](#0.24.7) |
| 68 | 65 | Nick Fagerlund | - [0.24.6](#0.24.6) |
| 69 | 65 | Nick Fagerlund | - [0.24.5](#0.24.5) |
| 70 | 65 | Nick Fagerlund | - [0.24.4](#0.24.4) |
| 71 | 65 | Nick Fagerlund | - [0.24.3](#0.24.3) |
| 72 | 65 | Nick Fagerlund | - [0.24.2](#0.24.2) |
| 73 | 65 | Nick Fagerlund | - [0.24.1](#0.24.1) |
| 74 | 65 | Nick Fagerlund | - [0.24.0 (misspiggy)](#0.24.0+\(misspiggy\)) |
| 75 | 65 | Nick Fagerlund | - [0.23.2](#0.23.2) |
| 76 | 65 | Nick Fagerlund | - [0.23.1 (beaker)](#0.23.1+\(beaker\)) |
| 77 | 65 | Nick Fagerlund | - [0.23.0](#0.23.0) |
| 78 | 65 | Nick Fagerlund | - [0.22.3](#0.22.3) |
| 79 | 1 | - [0.22.2 (grover)](#0.22.2+\(grover\)) |
|
| 80 | 1 | - [0.22.1 (kermit)](#0.22.1+\(kermit\)) |
|
| 81 | 1 | - [0.22.0](#0.22.0) |
|
| 82 | 146 | Michael Stahnke | - [0.20.0](#0.20.0) |
| 83 | 1 | ||
| 84 | 165 | Michael Stahnke | #2.7.10 |
| 85 | 165 | Michael Stahnke | |
| 86 | 165 | Michael Stahnke | ## Community MVP for this release: Brice Figureau (@masterzen) for the |
| 87 | 165 | Michael Stahnke | Instrumentation Framework |
| 88 | 158 | Michael Stahnke | |
| 89 | 158 | Michael Stahnke | ## Highlights ## |
| 90 | 163 | Michael Stahnke | We have several section of release notes this month due to the high volume of commits. Sections are Instrumentation, Core, Mac OS, Windows, and FreeBSD. |
| 91 | 163 | Michael Stahnke | |
| 92 | 163 | Michael Stahnke | |
| 93 | 158 | Michael Stahnke | * Instrumentation Features available |
| 94 | 158 | Michael Stahnke | * Symbolic File modes supports ( e.g. u=rw,go=r) for File type |
| 95 | 158 | Michael Stahnke | * Write reports to a temporary file and move them into place |
| 96 | 158 | Michael Stahnke | * Add password get/set behavior for Mac OS X 10.7 |
| 97 | 163 | Michael Stahnke | * Add support for user expiriy in pw user provider |
| 98 | 163 | Michael Stahnke | * Improve pw group provider on FreeBSD |
| 99 | 163 | Michael Stahnke | * Make sure managehome is respected on FreeBSD |
| 100 | 163 | Michael Stahnke | * Add password management on FreeBSD |
| 101 | 158 | Michael Stahnke | |
| 102 | 158 | Michael Stahnke | ## Bug Fixes ## |
| 103 | 162 | Michael Stahnke | * Make the Debian service provider handle services that don't conform to the debian policy manual. |
| 104 | 158 | Michael Stahnke | * Only load facts once per run |
| 105 | 158 | Michael Stahnke | * Puppetd removes pid file upon exit |
| 106 | 158 | Michael Stahnke | * Fix MySQL deadlock possibility within inventory service |
| 107 | 158 | Michael Stahnke | * Test Augeas versions correctly with versioncmp |
| 108 | 158 | Michael Stahnke | * Consider package epoch version when comparing yum package versions |
| 109 | 158 | Michael Stahnke | * Link should autorequire target |
| 110 | 158 | Michael Stahnke | * Use SMF's svcadm -s option to wait for errors |
| 111 | 158 | Michael Stahnke | * Fix fact and plugin sync on Windows |
| 112 | 158 | Michael Stahnke | * Set password before creating user on Windows |
| 113 | 158 | Michael Stahnke | * Always serve files in binary mode on Windows |
| 114 | 158 | Michael Stahnke | * Don't hard code ruby install paths in Windows batch files |
| 115 | 158 | Michael Stahnke | * Don't copy owner and group when sourcing files from master on Windows |
| 116 | 158 | Michael Stahnke | * Fix OS X supplementary group handling |
| 117 | 1 | * Use launchctl load -w in launchd provider (Mac OS) |
|
| 118 | 162 | Michael Stahnke | * Improve error msg for missing pip command |
| 119 | 162 | Michael Stahnke | * Better validation for IPv4 and IPv6 address in host type. |
| 120 | 158 | Michael Stahnke | |
| 121 | 158 | Michael Stahnke | ### Instrumentation |
| 122 | 164 | Michael Stahnke | Contributed by: Brice Figureau <brice-puppet@daysofwonder.com> |
| 123 | 158 | Michael Stahnke | |
| 124 | 158 | Michael Stahnke | The Puppet Instrumentation Framework is a tool to install into a puppet |
| 125 | 158 | Michael Stahnke | executable: |
| 126 | 158 | Michael Stahnke | |
| 127 | 158 | Michael Stahnke | * instrumentation listeners |
| 128 | 158 | Michael Stahnke | * code probes |
| 129 | 158 | Michael Stahnke | |
| 130 | 158 | Michael Stahnke | Code probes are static commands we add to the Puppet codebase to |
| 131 | 158 | Michael Stahnke | instrument some specific parts of the code. Currently only the |
| 132 | 158 | Michael Stahnke | Indirector is covered (but since it is the central piece of Puppet, it |
| 133 | 158 | Michael Stahnke | should cover a lot of possible use). |
| 134 | 158 | Michael Stahnke | |
| 135 | 158 | Michael Stahnke | Each time the program reaches a code probe (and instrumentation is |
| 136 | 158 | Michael Stahnke | enabled), the Instrumentation Framework sends an event to the registered |
| 137 | 158 | Michael Stahnke | instrumentation listeners. Those can be enabled/disabled/added/removed |
| 138 | 158 | Michael Stahnke | live without restarting the executable. |
| 139 | 158 | Michael Stahnke | Those listeners responsibility is to produce something useful to the |
| 140 | 158 | Michael Stahnke | user. The patch shipped with 3 example listeners, one that logs |
| 141 | 158 | Michael Stahnke | execution time of every probe, another that aggregate some performance |
| 142 | 158 | Michael Stahnke | data about probes, and the final one decorates the executable process |
| 143 | 158 | Michael Stahnke | name (as seen in top) with the latest probes it encounters. |
| 144 | 158 | Michael Stahnke | |
| 145 | 158 | Michael Stahnke | The Framework also includes a set of REST API and REST Faces to allow it |
| 146 | 158 | Michael Stahnke | to enable/disable listeners or probes or to get access to listener |
| 147 | 158 | Michael Stahnke | performance data if they produce some. |
| 148 | 158 | Michael Stahnke | |
| 149 | 158 | Michael Stahnke | How to use the Instrumentation Framework: |
| 150 | 158 | Michael Stahnke | |
| 151 | 158 | Michael Stahnke | You need a live running Puppet executable (preferably a puppet master |
| 152 | 158 | Michael Stahnke | which by default listens to REST requests). It might also be necessary |
| 153 | 158 | Michael Stahnke | to modify the auth.conf to allow the instrumentation requests. |
| 154 | 158 | Michael Stahnke | |
| 155 | 158 | Michael Stahnke | Display the list of known instrumentation listeners |
| 156 | 158 | Michael Stahnke | puppet instrumentation_listener search x --terminus rest |
| 157 | 158 | Michael Stahnke | |
| 158 | 158 | Michael Stahnke | Enable the "performance" instrumentation listener |
| 159 | 158 | Michael Stahnke | puppet instrumentation_listener enable performance --terminus rest |
| 160 | 158 | Michael Stahnke | |
| 161 | 158 | Michael Stahnke | Know more about the "performance" listener (is it enabled for |
| 162 | 158 | Michael Stahnke | instance): |
| 163 | 158 | Michael Stahnke | puppet instrumentation_listener find performance --terminus rest |
| 164 | 158 | Michael Stahnke | |
| 165 | 158 | Michael Stahnke | Of course this will only work if probes are enabled: |
| 166 | 158 | Michael Stahnke | |
| 167 | 158 | Michael Stahnke | List all the current executable probes: |
| 168 | 158 | Michael Stahnke | puppet instrumentation_probe search x --terminus rest |
| 169 | 158 | Michael Stahnke | |
| 170 | 158 | Michael Stahnke | Enable the instrumentation probes: |
| 171 | 158 | Michael Stahnke | puppet instrumentation_probe enable --terminus rest |
| 172 | 158 | Michael Stahnke | |
| 173 | 158 | Michael Stahnke | How to get access to the data coming from a listener (here the |
| 174 | 158 | Michael Stahnke | "performance" one): |
| 175 | 158 | Michael Stahnke | puppet instrumentation_data find performance --terminus rest |
| 176 | 158 | Michael Stahnke | |
| 177 | 158 | Michael Stahnke | ## Core ## |
| 178 | 158 | Michael Stahnke | |
| 179 | 161 | Michael Stahnke | ### Improve error msg for missing pip comand |
| 180 | 161 | Michael Stahnke | Author: Kelsey Hightower <kelsey@puppetlabs.com> |
| 181 | 161 | Michael Stahnke | |
| 182 | 161 | Michael Stahnke | (#11958) Improve error msg for missing pip command |
| 183 | 161 | Michael Stahnke | |
| 184 | 161 | Michael Stahnke | Without this patch the pip package provider does not produce a user |
| 185 | 161 | Michael Stahnke | friendly error message when the pip command is not available. The |
| 186 | 161 | Michael Stahnke | current error message looks like this: |
| 187 | 161 | Michael Stahnke | |
| 188 | 161 | Michael Stahnke | err: /Stage[main]/Dummy/Package[virtualenv]/ensure: change from |
| 189 | 161 | Michael Stahnke | absent to present failed: Could not set 'present on ensure: |
| 190 | 161 | Michael Stahnke | undefined method `pip' for |
| 191 | 161 | Michael Stahnke | #<Puppet::Type::Package::ProviderPip:0xb6cf6cd0> at |
| 192 | 161 | Michael Stahnke | /etc/puppet/modules/dummy/manifests/init.pp:5 |
| 193 | 161 | Michael Stahnke | |
| 194 | 161 | Michael Stahnke | This patch improves the error message by passing a string argument, 'Could not locate |
| 195 | 161 | Michael Stahnke | the pip command.', when raising the `NoMethodError`. The new error |
| 196 | 161 | Michael Stahnke | message looks like this: |
| 197 | 161 | Michael Stahnke | |
| 198 | 161 | Michael Stahnke | err: /Stage[main]/Dummy/Package[virtualenv]/ensure: change from |
| 199 | 161 | Michael Stahnke | absent to present failed: Could not set 'present on ensure: Could |
| 200 | 161 | Michael Stahnke | not locate the pip command. at |
| 201 | 161 | Michael Stahnke | /etc/puppet/modules/dummy/manifests/init.pp:5 |
| 202 | 161 | Michael Stahnke | |
| 203 | 161 | Michael Stahnke | This patch also includes updated spec tests validating this change. No |
| 204 | 161 | Michael Stahnke | other behavior changes are being introduced. |
| 205 | 161 | Michael Stahnke | |
| 206 | 160 | Michael Stahnke | ### Better validation for IPv4 and IPv6 address in host type. |
| 207 | 160 | Michael Stahnke | Author: Daniel Pittman <daniel@puppetlabs.com> |
| 208 | 160 | Michael Stahnke | |
| 209 | 160 | Michael Stahnke | (#11499) Better validation for IPv4 and IPv6 address in host type. |
| 210 | 160 | Michael Stahnke | |
| 211 | 160 | Michael Stahnke | The previous code was fairly lax in validation, and would allow a bunch of |
| 212 | 160 | Michael Stahnke | invalid addresses through - as well as rejecting some legal, but uncommon, |
| 213 | 160 | Michael Stahnke | IPv6 address types. |
| 214 | 160 | Michael Stahnke | |
| 215 | 160 | Michael Stahnke | This adds substantial testing, especially around IPv6 addressing, and replaces |
| 216 | 160 | Michael Stahnke | the older validation with new, fancy stuff that works for all the cases. |
| 217 | 158 | Michael Stahnke | |
| 218 | 158 | Michael Stahnke | ### Support symbolic file modes. |
| 219 | 158 | Michael Stahnke | Author: Daniel Pittman <daniel@puppetlabs.com> |
| 220 | 158 | Michael Stahnke | |
| 221 | 158 | Michael Stahnke | (#2927) Support symbolic file modes. |
| 222 | 158 | Michael Stahnke | |
| 223 | 158 | Michael Stahnke | This adds a new feature, support for symbolic file modes, to Puppet. In |
| 224 | 158 | Michael Stahnke | addition to being able to specify the octal mode, you can now use the same |
| 225 | 158 | Michael Stahnke | symbolic mode style that chmod supports: |
| 226 | 158 | Michael Stahnke | |
| 227 | 158 | Michael Stahnke | file { "/example": mode => "u=rw,go=r" } |
| 228 | 158 | Michael Stahnke | |
| 229 | 158 | Michael Stahnke | This also supports relative file modes: |
| 230 | 158 | Michael Stahnke | |
| 231 | 158 | Michael Stahnke | file { "/relative": mode = "u+w,go-wx" } |
| 232 | 158 | Michael Stahnke | |
| 233 | 158 | Michael Stahnke | Support is based on the common GNU and BSD symbolic modes of operation; you |
| 234 | 158 | Michael Stahnke | specify a comma separated list of actions to take in each you can sit: |
| 235 | 158 | Michael Stahnke | |
| 236 | 158 | Michael Stahnke | The user (u), group (g), other (o), or all (a) of the permission map. |
| 237 | 158 | Michael Stahnke | |
| 238 | 158 | Michael Stahnke | You can modify the ability to read (r), write (w), execute / search (x) on a |
| 239 | 158 | Michael Stahnke | file or directory. |
| 240 | 158 | Michael Stahnke | |
| 241 | 158 | Michael Stahnke | You can also modify the sticky bit (t), or the setuid and setgid bits (s). |
| 242 | 158 | Michael Stahnke | |
| 243 | 158 | Michael Stahnke | Finally, you can set conditional execute permissions (X), which will result in |
| 244 | 158 | Michael Stahnke | the file having the execute bit if the target is a directory, or if the target |
| 245 | 158 | Michael Stahnke | had *any* execute bit set. (eg: g+X will set x if the original was u=x,g=.) |
| 246 | 158 | Michael Stahnke | |
| 247 | 158 | Michael Stahnke | |
| 248 | 158 | Michael Stahnke | ### Only load facts once per puppet run |
| 249 | 158 | Michael Stahnke | |
| 250 | 158 | Michael Stahnke | Author: Patrick Carlisle <patrick@puppetlabs.com> |
| 251 | 158 | Michael Stahnke | |
| 252 | 158 | Michael Stahnke | (#8341) Only load facts once per puppet run |
| 253 | 158 | Michael Stahnke | |
| 254 | 158 | Michael Stahnke | Make the facter terminus the only place that loads facts (with the notable |
| 255 | 158 | Michael Stahnke | exception of pluginsync which loads any ruby code it syncs). |
| 256 | 158 | Michael Stahnke | |
| 257 | 158 | Michael Stahnke | This should satisfy several requirements: |
| 258 | 158 | Michael Stahnke | |
| 259 | 158 | Michael Stahnke | * daemonized puppet agent can get fresh facts on each run |
| 260 | 158 | Michael Stahnke | * puppet master can load facts |
| 261 | 158 | Michael Stahnke | * facts are not loaded more than once by the puppet agent fact handler |
| 262 | 158 | Michael Stahnke | |
| 263 | 158 | Michael Stahnke | ### Puppetd does not remove its pidfile when it exits |
| 264 | 158 | Michael Stahnke | Author: R.I.Pienaar <rip@devco.net> |
| 265 | 158 | Michael Stahnke | |
| 266 | 158 | Michael Stahnke | (#5246) Puppetd does not remove its pidfile when it exits |
| 267 | 158 | Michael Stahnke | |
| 268 | 158 | Michael Stahnke | The Puppet::Daemon instance sets up the pid file when it starts |
| 269 | 158 | Michael Stahnke | but it's up to the user of that object to arrange for stop to be |
| 270 | 158 | Michael Stahnke | called |
| 271 | 158 | Michael Stahnke | |
| 272 | 158 | Michael Stahnke | There are signal handlers setup to call stop but in a onetime run |
| 273 | 158 | Michael Stahnke | those are never called |
| 274 | 158 | Michael Stahnke | |
| 275 | 158 | Michael Stahnke | This change arrange for the stop method to be called after a onetime |
| 276 | 158 | Michael Stahnke | run is done but do not hand the task of exiting the application over |
| 277 | 158 | Michael Stahnke | to that so that the agent application can handle the report status |
| 278 | 158 | Michael Stahnke | based exit codes |
| 279 | 158 | Michael Stahnke | |
| 280 | 158 | Michael Stahnke | |
| 281 | 158 | Michael Stahnke | ### Retry inventory ActiveRecord transaction failure |
| 282 | 158 | Michael Stahnke | Author: Carl Caum <carl@carlcaum.com> |
| 283 | 158 | Michael Stahnke | |
| 284 | 158 | Michael Stahnke | Retry inventory ActiveRecord transaction failure |
| 285 | 158 | Michael Stahnke | |
| 286 | 158 | Michael Stahnke | Previous to this commit, if the ActiveRecord transaction for saving |
| 287 | 158 | Michael Stahnke | facts failed do to MySQL deadlock, for example, the transaction would |
| 288 | 158 | Michael Stahnke | fail printing a message to the user. This primarily occurred during a |
| 289 | 158 | Michael Stahnke | PE agent installation if multiple agent's were being creating |
| 290 | 158 | Michael Stahnke | simultaneously. |
| 291 | 158 | Michael Stahnke | |
| 292 | 158 | Michael Stahnke | This commit adds the ability to retry if a |
| 293 | 158 | Michael Stahnke | ActiveRecord::StatementInvalid exception is thrown. To accomplish this, |
| 294 | 158 | Michael Stahnke | this commit ports Cloud Provisioner's |
| 295 | 158 | Michael Stahnke | Puppet::CloudPack::Utils#retry_action method to Puppet core under |
| 296 | 158 | Michael Stahnke | Puppet::Util::RetryAction#retry_action. |
| 297 | 158 | Michael Stahnke | |
| 298 | 158 | Michael Stahnke | |
| 299 | 158 | Michael Stahnke | ### Properly track blockers when generating additional resources |
| 300 | 158 | Michael Stahnke | Author: Nick Lewis <nick@puppetlabs.com> |
| 301 | 158 | Michael Stahnke | |
| 302 | 158 | Michael Stahnke | (#11641) Properly track blockers when generating additional resources |
| 303 | 158 | Michael Stahnke | |
| 304 | 158 | Michael Stahnke | Previously, we would enqueue any unblocked resources as we added them to the |
| 305 | 158 | Michael Stahnke | graph. These were our initial resources, with no dependencies, and served as a |
| 306 | 158 | Michael Stahnke | starting place for traversal. However, we would |
| 307 | 158 | Michael Stahnke | add_dynamically_generated_resources before traversing, which could add |
| 308 | 158 | Michael Stahnke | additional resources and dependencies. We never accounted for these, causing |
| 309 | 158 | Michael Stahnke | our measure of blockedness to become incorrect (a resource could have more |
| 310 | 158 | Michael Stahnke | dependencies than we counted). |
| 311 | 158 | Michael Stahnke | |
| 312 | 158 | Michael Stahnke | This is similar to the case of eval_generate adding additional resources. In |
| 313 | 158 | Michael Stahnke | that case, we clear the blockers list and allow it to be recalculated on |
| 314 | 158 | Michael Stahnke | demand. Unfortunately, that approach doesn't work for the case where we add |
| 315 | 158 | Michael Stahnke | resources before traversing (as in add_dynamically_generated_resources), |
| 316 | 158 | Michael Stahnke | because we wouldn't have a reliable list of resources to begin traversal with. |
| 317 | 158 | Michael Stahnke | Now we no longer enqueue resources when adding them, and instead wait until |
| 318 | 158 | Michael Stahnke | after we have called add_dynamically_generated_resources (which happens only |
| 319 | 158 | Michael Stahnke | once). This allows us to add our root resources with the assurance they won't |
| 320 | 158 | Michael Stahnke | change before we start evaluating them. |
| 321 | 158 | Michael Stahnke | |
| 322 | 158 | Michael Stahnke | ### Make the Debian service provider handle services that don't conform to the debain policy manual. |
| 323 | 158 | Michael Stahnke | Author: Zach Leslie <zach@puppetlabs.com> |
| 324 | 158 | Michael Stahnke | |
| 325 | 158 | Michael Stahnke | (#7296) Make the Debian service provider handle services that don't conform to the debain policy manual. |
| 326 | 158 | Michael Stahnke | |
| 327 | 158 | Michael Stahnke | This change is to support initscripts that do not support the --query |
| 328 | 158 | Michael Stahnke | method of invoke-rc.d used by the Debian provider to determine if |
| 329 | 158 | Michael Stahnke | service is enabled. |
| 330 | 158 | Michael Stahnke | |
| 331 | 158 | Michael Stahnke | The fix checks that the link count in /etc/rc?.d is equal to 4, which is |
| 332 | 158 | Michael Stahnke | the number of links that should be present when using the Debian service |
| 333 | 158 | Michael Stahnke | provider, which is done by `update-rc.d #{service} defaults`. |
| 334 | 158 | Michael Stahnke | |
| 335 | 158 | Michael Stahnke | ### Write reports to a temporary file and move them into place |
| 336 | 158 | Michael Stahnke | Author: Ricky Zhou <ricky@fedoraproject.org> |
| 337 | 158 | Michael Stahnke | |
| 338 | 158 | Michael Stahnke | (#8119) Write reports to a temporary file and move them into place |
| 339 | 158 | Michael Stahnke | |
| 340 | 158 | Michael Stahnke | When writing reports, there is a window in between opening and writing to the |
| 341 | 158 | Michael Stahnke | report file when the report file exists as an empty file. This makes writing |
| 342 | 158 | Michael Stahnke | report processors a little annoying as they have to deal with this case. This |
| 343 | 158 | Michael Stahnke | writes the report into a temporary file then renames it to the report file. |
| 344 | 158 | Michael Stahnke | |
| 345 | 158 | Michael Stahnke | ### Test Augueas versions correctly with versioncmp |
| 346 | 158 | Michael Stahnke | Author: Dominic Cleal <dcleal@redhat.com> |
| 347 | 158 | Michael Stahnke | |
| 348 | 158 | Michael Stahnke | (#11414) Test Augeas versions correctly with versioncmp |
| 349 | 158 | Michael Stahnke | |
| 350 | 158 | Michael Stahnke | The release of Augeas 0.10.0 broke simplistic version comparisons with the >= |
| 351 | 158 | Michael Stahnke | operator, so now use versioncmp. |
| 352 | 158 | Michael Stahnke | |
| 353 | 158 | Michael Stahnke | ### Save/execute changes on versions of Augeas < 0.3.6 |
| 354 | 158 | Michael Stahnke | Author: Dominic Cleal <dcleal@redhat.com> |
| 355 | 158 | Michael Stahnke | |
| 356 | 158 | Michael Stahnke | (#11414) Save/execute changes on versions of Augeas < 0.3.6 |
| 357 | 158 | Michael Stahnke | |
| 358 | 158 | Michael Stahnke | Versions of Augeas prior to 0.3.6 didn't report their version number, so a |
| 359 | 158 | Michael Stahnke | fallback of executing changes once in need_to_run? and again in execute_changes |
| 360 | 158 | Michael Stahnke | is performed. Otherwise a save is done in need_to_run? and this is re-used in |
| 361 | 158 | Michael Stahnke | execute_changes. |
| 362 | 158 | Michael Stahnke | |
| 363 | 158 | Michael Stahnke | The /augeas/events/saved node is used to tell whether the latter optimisation |
| 364 | 158 | Michael Stahnke | happened, but the return value of #match wasn't tested correctly (it's an empty |
| 365 | 158 | Michael Stahnke | array). |
| 366 | 158 | Michael Stahnke | |
| 367 | 158 | Michael Stahnke | ### Make Puppet::Type.ensurable? false when exists? is undefined |
| 368 | 158 | Michael Stahnke | Author: Ilya Sher <ilya.sher@coding-knight.com> |
| 369 | 158 | Michael Stahnke | |
| 370 | 158 | Michael Stahnke | (#11333) Make Puppet::Type.ensurable? false when exists? is undefined |
| 371 | 158 | Michael Stahnke | |
| 372 | 158 | Michael Stahnke | Puppet::Type.ensurable? incorrectly returned true even when |
| 373 | 158 | Michael Stahnke | public_method_defined?(:exists?) was false because the check never |
| 374 | 158 | Michael Stahnke | actually happened. This make sure all the necessary methods are checked |
| 375 | 158 | Michael Stahnke | and adds tests. |
| 376 | 158 | Michael Stahnke | |
| 377 | 158 | Michael Stahnke | ### Consider package epoch version when comparing yum package versions |
| 378 | 158 | Michael Stahnke | Author: Jude Nagurney <jude@pwan.org> |
| 379 | 158 | Michael Stahnke | |
| 380 | 158 | Michael Stahnke | (#8062) Consider package epoch version when comparing yum package versions |
| 381 | 158 | Michael Stahnke | |
| 382 | 158 | Michael Stahnke | By including the epoch version in the version returned as the "latest" |
| 383 | 158 | Michael Stahnke | available, we can now properly consider package updates where only the |
| 384 | 158 | Michael Stahnke | epoch version has changed. |
| 385 | 158 | Michael Stahnke | |
| 386 | 158 | Michael Stahnke | ### Log when we start evaluating resource at the info level |
| 387 | 158 | Michael Stahnke | Author: Patrick Carlisle <patrick@puppetlabs.com> |
| 388 | 158 | Michael Stahnke | |
| 389 | 158 | Michael Stahnke | (#4865) Log when we start evaluating resources at the info level |
| 390 | 158 | Michael Stahnke | |
| 391 | 158 | Michael Stahnke | Since we log the final time at info it makes sense to log the start at info as |
| 392 | 158 | Michael Stahnke | well. |
| 393 | 158 | Michael Stahnke | |
| 394 | 158 | Michael Stahnke | ### Fix array support in schedule's range parameters |
| 395 | 158 | Michael Stahnke | Author: Sean Millichamp <sean@bruenor.org> |
| 396 | 158 | Michael Stahnke | |
| 397 | 158 | Michael Stahnke | (#10321) Fix array support in schedule's range parameter |
| 398 | 158 | Michael Stahnke | |
| 399 | 158 | Michael Stahnke | Change the schedule type's range parameter to properly evaluate |
| 400 | 158 | Michael Stahnke | all elements of a supplied array for validity instead of only |
| 401 | 158 | Michael Stahnke | checking the first member of the array. Add documentation to |
| 402 | 158 | Michael Stahnke | clarify that range does accept an array. |
| 403 | 158 | Michael Stahnke | |
| 404 | 158 | Michael Stahnke | Fix the associated tests to use must instead of should (Puppet::Type#should |
| 405 | 158 | Michael Stahnke | shadows the rspec should). |
| 406 | 158 | Michael Stahnke | |
| 407 | 158 | Michael Stahnke | ### Make resourcefile work with composite namevars |
| 408 | 158 | Michael Stahnke | Author: Max Martin <max@puppetlabs.com> |
| 409 | 158 | Michael Stahnke | |
| 410 | 158 | Michael Stahnke | (#10109) Make resourcefile work with composite namevars |
| 411 | 158 | Michael Stahnke | |
| 412 | 158 | Michael Stahnke | The code for creating the resourcefile was directly calling |
| 413 | 158 | Michael Stahnke | resource.name_var, which was causing problems with resources that have |
| 414 | 158 | Michael Stahnke | composite namevars (since, for these, Type#name_var will return false). |
| 415 | 158 | Michael Stahnke | This patch sanitizes the process by first checking whether there is a |
| 416 | 158 | Michael Stahnke | single namevar, and simply calling resource.ref if there is not one. |
| 417 | 158 | Michael Stahnke | |
| 418 | 158 | Michael Stahnke | |
| 419 | 158 | Michael Stahnke | ### Add README_DEVELOPER describing UTF-8 in Puppet |
| 420 | 158 | Michael Stahnke | Author: Jeff McCune <jeff@puppetlabs.com> |
| 421 | 158 | Michael Stahnke | |
| 422 | 158 | Michael Stahnke | (#11246) Add README_DEVELOPER describing UTF-8 in Puppet |
| 423 | 158 | Michael Stahnke | |
| 424 | 158 | Michael Stahnke | Without this patch, developers of Puppet don't have a clear place to get |
| 425 | 158 | Michael Stahnke | a high level understanding of the way other Puppet developers are |
| 426 | 158 | Michael Stahnke | working with UTF-8 and the differences in character encodings between |
| 427 | 158 | Michael Stahnke | Ruby 1.8 and 1.9. |
| 428 | 158 | Michael Stahnke | |
| 429 | 158 | Michael Stahnke | This patch addresses this problem by adding a new document, |
| 430 | 158 | Michael Stahnke | README_DEVELOPER.md where developers and contributors can look to for |
| 431 | 158 | Michael Stahnke | high level information. |
| 432 | 158 | Michael Stahnke | |
| 433 | 158 | Michael Stahnke | ### Better SSL error message certificate doesn't match key |
| 434 | 158 | Michael Stahnke | Author: Joshua Harlan Lifton <lifton@puppetlabs.com> |
| 435 | 158 | Michael Stahnke | |
| 436 | 158 | Michael Stahnke | (#7110) Better SSL error message certificate doesn't match key |
| 437 | 158 | Michael Stahnke | |
| 438 | 158 | Michael Stahnke | Previously, any error with the certificate retrieved from the master |
| 439 | 158 | Michael Stahnke | matching the agent's private key would give the same static error |
| 440 | 158 | Michael Stahnke | message, which wasn't particularly helpful. This commit differentiates |
| 441 | 158 | Michael Stahnke | three different error cases: missing certificate, missing private key, |
| 442 | 158 | Michael Stahnke | and certificate doesn't match private key. In the last case, the error |
| 443 | 158 | Michael Stahnke | message includes the fingerprint of the certificate in question and |
| 444 | 158 | Michael Stahnke | explicit command line instructions on how to fix the problem. |
| 445 | 158 | Michael Stahnke | |
| 446 | 158 | Michael Stahnke | ### Add a defaults argument to create_resources |
| 447 | 158 | Michael Stahnke | Author: Matthias Pigulla <mp@webfactory.de> |
| 448 | 158 | Michael Stahnke | |
| 449 | 158 | Michael Stahnke | (#9768) Add a defaults argument to create_resources |
| 450 | 158 | Michael Stahnke | |
| 451 | 158 | Michael Stahnke | Make it possible to supply defaults when calling create_resources using an |
| 452 | 158 | Michael Stahnke | optional hash argument. |
| 453 | 158 | Michael Stahnke | |
| 454 | 158 | Michael Stahnke | ### Link should autorequire target |
| 455 | 158 | Michael Stahnke | Author: Stefan Schulte <stefan.schulte@taunusstein.net> |
| 456 | 158 | Michael Stahnke | |
| 457 | 158 | Michael Stahnke | (#5421) Link should autorequire target |
| 458 | 158 | Michael Stahnke | |
| 459 | 158 | Michael Stahnke | When we manage a local link to a directory and the target directory is |
| 460 | 158 | Michael Stahnke | managed by puppet as well, establish an autorequire. So if we have |
| 461 | 158 | Michael Stahnke | something like |
| 462 | 158 | Michael Stahnke | |
| 463 | 158 | Michael Stahnke | file { '/foo': ensure => directory } |
| 464 | 158 | Michael Stahnke | file { '/link_to_foo': ensure => '/foo' } |
| 465 | 158 | Michael Stahnke | file { '/link_to_foo/bar': ensure => file } |
| 466 | 158 | Michael Stahnke | |
| 467 | 158 | Michael Stahnke | we can ensure that puppet does not create dead links and does not try to |
| 468 | 158 | Michael Stahnke | create '/link_to_foo/bar' before /foo is created. |
| 469 | 158 | Michael Stahnke | |
| 470 | 158 | Michael Stahnke | ### Use SMF's svcadm -s option to wait for errors |
| 471 | 158 | Michael Stahnke | Author: Dominic Cleal <dcleal@redhat.com> |
| 472 | 158 | Michael Stahnke | |
| 473 | 158 | Michael Stahnke | (#10807) Use SMF's svcadm -s option to wait for errors |
| 474 | 158 | Michael Stahnke | |
| 475 | 158 | Michael Stahnke | By default running `svcadm enable example` will start the service in the |
| 476 | 158 | Michael Stahnke | background and won't return errors if it fails. Using the -s option will cause |
| 477 | 158 | Michael Stahnke | svcadm to wait and return errors back to the provider if the service cannot |
| 478 | 158 | Michael Stahnke | start for some reason. |
| 479 | 158 | Michael Stahnke | |
| 480 | 158 | Michael Stahnke | ### Added missing RequestHeader entries to ext/rack/files/apache2.conf |
| 481 | 158 | Michael Stahnke | Author: Eli Klein <eklein@rallydev.com> |
| 482 | 158 | Michael Stahnke | |
| 483 | 158 | Michael Stahnke | Added missing RequestHeader entries to ext/rack/files/apache2.conf |
| 484 | 158 | Michael Stahnke | |
| 485 | 158 | Michael Stahnke | ### Debug logging when we start evaluating resources. |
| 486 | 158 | Michael Stahnke | Author: Daniel Pittman <daniel@puppetlabs.com> |
| 487 | 158 | Michael Stahnke | |
| 488 | 158 | Michael Stahnke | (#4865) Debug logging when we start evaluating resources. |
| 489 | 158 | Michael Stahnke | |
| 490 | 158 | Michael Stahnke | The `evaltrace` option allowed individual resource evaluation time to be |
| 491 | 158 | Michael Stahnke | tracked, which made it easier to post-hoc identify which resources took long |
| 492 | 158 | Michael Stahnke | periods of time to process. |
| 493 | 158 | Michael Stahnke | |
| 494 | 158 | Michael Stahnke | It is also helpful, when doing live debugging, to know where the hang happens; |
| 495 | 158 | Michael Stahnke | to support that we now log a debug message about starting the evaluation of |
| 496 | 158 | Michael Stahnke | the resource before we go into the process. |
| 497 | 158 | Michael Stahnke | |
| 498 | 158 | Michael Stahnke | ### Update storeconfigclean script to read puppet.conf |
| 499 | 158 | Michael Stahnke | Author: Nan Liu <nan@puppetlabs.com> |
| 500 | 158 | Michael Stahnke | |
| 501 | 158 | Michael Stahnke | (#8547) Update storeconfigclean script to read puppet.conf |
| 502 | 158 | Michael Stahnke | |
| 503 | 158 | Michael Stahnke | The existing storeconfig script is parsing and reading puppet.conf |
| 504 | 158 | Michael Stahnke | specifically from the master section. This change allows the script to |
| 505 | 158 | Michael Stahnke | read from the settings from puppet.conf in the order of master, main, |
| 506 | 158 | Michael Stahnke | and loads the rails default. This should match the puppet application |
| 507 | 158 | Michael Stahnke | behaviour. |
| 508 | 158 | Michael Stahnke | |
| 509 | 158 | Michael Stahnke | ### Add mysql2 gem support |
| 510 | 158 | Michael Stahnke | Author: Stefan Schulte <stefan.schulte@taunusstein.net> |
| 511 | 158 | Michael Stahnke | |
| 512 | 158 | Michael Stahnke | (#9997) Add mysql2 gem support |
| 513 | 158 | Michael Stahnke | |
| 514 | 158 | Michael Stahnke | Besides the mysql gem there is a mysql2 gem that is a "modern, simple |
| 515 | 158 | Michael Stahnke | and very fast Mysql library for Ruby" [1]. It can either be installed as a |
| 516 | 158 | Michael Stahnke | separate gem (v0.2.x) for ActiveRecord < 3.1 or can be used as part of |
| 517 | 158 | Michael Stahnke | ActiveRecord 3.1 |
| 518 | 158 | Michael Stahnke | |
| 519 | 158 | Michael Stahnke | To use mysql2 the dbadapter setting must be set to "mysql2" and this patch |
| 520 | 158 | Michael Stahnke | adds support for this setting. |
| 521 | 158 | Michael Stahnke | |
| 522 | 158 | Michael Stahnke | [1] https://github.com/brianmario/mysql2#readme |
| 523 | 158 | Michael Stahnke | |
| 524 | 158 | Michael Stahnke | |
| 525 | 158 | Michael Stahnke | # Mac Highlights # |
| 526 | 158 | Michael Stahnke | ### Fix OS X Ruby supplementary group handling |
| 527 | 158 | Michael Stahnke | Author: Gary Larizza <gary@puppetlabs.com> |
| 528 | 158 | Michael Stahnke | |
| 529 | 158 | Michael Stahnke | (#3419) Fix OS X Ruby supplementary group handling |
| 530 | 158 | Michael Stahnke | |
| 531 | 158 | Michael Stahnke | Catch Errno::EINVAL as some operating systems (OS X in particular) can |
| 532 | 158 | Michael Stahnke | cause troubles when using Process#groups= to change the user/process |
| 533 | 158 | Michael Stahnke | list of supplementary groups membership. |
| 534 | 158 | Michael Stahnke | |
| 535 | 158 | Michael Stahnke | Test coverage has been added to check for regressions. |
| 536 | 158 | Michael Stahnke | |
| 537 | 158 | Michael Stahnke | Add a test for the expected failure |
| 538 | 158 | Michael Stahnke | |
| 539 | 158 | Michael Stahnke | ### Fix group resource in OS X |
| 540 | 158 | Michael Stahnke | Author: Gary Larizza <gary@puppetlabs.com> |
| 541 | 158 | Michael Stahnke | |
| 542 | 158 | Michael Stahnke | (#4855) Fix group resource in OS X |
| 543 | 158 | Michael Stahnke | |
| 544 | 158 | Michael Stahnke | The group provider on OS X uses “dseditgroup” to manage group |
| 545 | 158 | Michael Stahnke | membership. Due to Apple bug 8481241 (“dseditgroup can’t remove unknown |
| 546 | 158 | Michael Stahnke | users from groups”), however, if the puppet group provider needs to |
| 547 | 158 | Michael Stahnke | remove a non-existant user from a group it manages, it will fail. |
| 548 | 158 | Michael Stahnke | |
| 549 | 158 | Michael Stahnke | To remedy this, in the meantime, the provider will call dscl to delete |
| 550 | 158 | Michael Stahnke | the non-existant member from the group. If that fails then the error |
| 551 | 158 | Michael Stahnke | is rescued and feedback is provided. |
| 552 | 158 | Michael Stahnke | |
| 553 | 158 | Michael Stahnke | ### Build a Rake task for building Apple Packages |
| 554 | 158 | Michael Stahnke | Author: Gary Larizza <gary@puppetlabs.com> |
| 555 | 158 | Michael Stahnke | |
| 556 | 158 | Michael Stahnke | Build a Rake task for building Apple Packages |
| 557 | 158 | Michael Stahnke | |
| 558 | 158 | Michael Stahnke | ### Use launchctl load -w in launchd provider |
| 559 | 158 | Michael Stahnke | Author: Gary Larizza <gary@puppetlabs.com> |
| 560 | 158 | Michael Stahnke | |
| 561 | 158 | Michael Stahnke | (#2773) Use launchctl load -w in launchd provider |
| 562 | 158 | Michael Stahnke | |
| 563 | 158 | Michael Stahnke | There was an issue where a service on OS X would be enabled but also |
| 564 | 158 | Michael Stahnke | stopped and the launchd service provider couldn't start it. In this |
| 565 | 158 | Michael Stahnke | case, the launchd service provider needed to execute `launchctl load -w |
| 566 | 158 | Michael Stahnke | <job_path>` to successfully start the service, but it wasn't programmed |
| 567 | 158 | Michael Stahnke | to do so. |
| 568 | 158 | Michael Stahnke | |
| 569 | 158 | Michael Stahnke | To remedy this, the launchd service provider's start method now checks |
| 570 | 158 | Michael Stahnke | if the job is disabled OR if the job is currently stopped. |
| 571 | 158 | Michael Stahnke | |
| 572 | 158 | Michael Stahnke | A spec test was added to catch for this unique situation. |
| 573 | 158 | Michael Stahnke | |
| 574 | 158 | Michael Stahnke | ### Add password get/set behavior for 10.7 |
| 575 | 158 | Michael Stahnke | Author: Gary Larizza <gary@puppetlabs.com> |
| 576 | 158 | Michael Stahnke | |
| 577 | 158 | Michael Stahnke | (#11293) Add password get/set behavior for 10.7 |
| 578 | 158 | Michael Stahnke | |
| 579 | 158 | Michael Stahnke | Puppet did not have the ability to get/set passwords in OS X version |
| 580 | 158 | Michael Stahnke | 10.7. This commit implements this behavior. Users in 10.7 have a |
| 581 | 158 | Michael Stahnke | binary plist file in /var/db/dslocal/nodes/Default/users that contains |
| 582 | 158 | Michael Stahnke | a 'ShadowHashData' key. The value for this key is actually a binary |
| 583 | 158 | Michael Stahnke | encrypted plist which contains a 'SALTED-SHA512' key containing |
| 584 | 158 | Michael Stahnke | a base64 encoded string. This string is actually the salted-SHA512 |
| 585 | 158 | Michael Stahnke | password hash with a 4 byte salt prepending the hash. Puppet expects |
| 586 | 158 | Michael Stahnke | this 4 byte salt + salted-SHA512 password hash in order to set the |
| 587 | 158 | Michael Stahnke | user's password. Since this value is drastically different from |
| 588 | 158 | Michael Stahnke | previous versions of OS X, Puppet will fail if you try and pass |
| 589 | 158 | Michael Stahnke | a SHA1 password hash that was used in previous versions of OS X. |
| 590 | 158 | Michael Stahnke | |
| 591 | 158 | Michael Stahnke | Spec tests were added to ensure that Puppet fails with an incorrect |
| 592 | 158 | Michael Stahnke | password, and that the get/set behavior works properly with OS X |
| 593 | 158 | Michael Stahnke | version 10.7. |
| 594 | 158 | Michael Stahnke | |
| 595 | 158 | Michael Stahnke | # Windows Highlights # |
| 596 | 158 | Michael Stahnke | |
| 597 | 158 | Michael Stahnke | ### Always serve files in binary mode |
| 598 | 158 | Michael Stahnke | Author: Josh Cooper <josh@puppetlabs.com> |
| 599 | 158 | Michael Stahnke | |
| 600 | 158 | Michael Stahnke | (#11929) Always serve files in binary mode |
| 601 | 158 | Michael Stahnke | |
| 602 | 158 | Michael Stahnke | Previously, Windows agents were reading files in text mode when serving |
| 603 | 158 | Michael Stahnke | them locally, such as when serving files from a local module, corrupting |
| 604 | 158 | Michael Stahnke | binary files in the process. |
| 605 | 158 | Michael Stahnke | |
| 606 | 158 | Michael Stahnke | This commit reads files in binary mode, which is a noop on Unix. |
| 607 | 158 | Michael Stahnke | |
| 608 | 158 | Michael Stahnke | ### Use `%~dp0` to resolve bat file's install directory |
| 609 | 158 | Michael Stahnke | Author: Josh Cooper <josh@puppetlabs.com> |
| 610 | 158 | Michael Stahnke | |
| 611 | 158 | Michael Stahnke | (#11714) Use `%~dp0` to resolve bat file's install directory |
| 612 | 158 | Michael Stahnke | |
| 613 | 158 | Michael Stahnke | This commit uses the `%~dp0` batch script modifier to resolve the |
| 614 | 158 | Michael Stahnke | drive and path of the directory containing the envpuppet.bat |
| 615 | 158 | Michael Stahnke | file. This eliminates the need for hard coded paths within the script |
| 616 | 158 | Michael Stahnke | tselfIt also uses `%VAR:\=/%` to substitute each backslash for a |
| 617 | 158 | Michael Stahnke | forward slash in the RUBYLIB environment |
| 618 | 158 | Michael Stahnke | |
| 619 | 158 | Michael Stahnke | Also added a section about running the spec tests on Windows. |
| 620 | 158 | Michael Stahnke | |
| 621 | 158 | Michael Stahnke | |
| 622 | 158 | Michael Stahnke | ### Add envpuppet batch file to run Puppet from source on Windows |
| 623 | 158 | Michael Stahnke | Author: Jeff McCune <jeff@puppetlabs.com> |
| 624 | 158 | Michael Stahnke | |
| 625 | 158 | Michael Stahnke | (#11714) Add envpuppet batch file to run Puppet from source on Windows |
| 626 | 158 | Michael Stahnke | |
| 627 | 158 | Michael Stahnke | Running Puppet on windows from source is non-trivial since the |
| 628 | 158 | Michael Stahnke | environment variables behave quite differently. In addition, it's not |
| 629 | 158 | Michael Stahnke | clear windows paths expect / rather than \ path separators. |
| 630 | 158 | Michael Stahnke | |
| 631 | 158 | Michael Stahnke | This patch provides an envpuppet batch file to run Puppet from source on |
| 632 | 158 | Michael Stahnke | Windows platforms. |
| 633 | 158 | Michael Stahnke | |
| 634 | 158 | Michael Stahnke | ### Don't hard code ruby install paths in Windows batch files |
| 635 | 158 | Michael Stahnke | Author: Josh Cooper <josh@puppetlabs.com> |
| 636 | 158 | Michael Stahnke | |
| 637 | 158 | Michael Stahnke | (#11847) Don't hard code ruby install paths in Windows batch files |
| 638 | 158 | Michael Stahnke | |
| 639 | 158 | Michael Stahnke | Previously, the {filebucket,pi,puppet,puppetdoc,ralsh}.bat files hard |
| 640 | 158 | Michael Stahnke | coded the path to the ruby installation, making it impossible to move |
| 641 | 158 | Michael Stahnke | the ruby install directory. |
| 642 | 158 | Michael Stahnke | |
| 643 | 158 | Michael Stahnke | This commit changes the script to use the `%~dp0` batch file modifier, |
| 644 | 158 | Michael Stahnke | which resolves to the drive letter and path of the directory of the |
| 645 | 158 | Michael Stahnke | batch file being executed. |
| 646 | 158 | Michael Stahnke | |
| 647 | 158 | Michael Stahnke | Windows XP and later all support the `%*` modifier, so this commit |
| 648 | 158 | Michael Stahnke | removes the Win 9x code paths that are not supported. |
| 649 | 158 | Michael Stahnke | |
| 650 | 158 | Michael Stahnke | ### Set password before creating user on Windows |
| 651 | 158 | Michael Stahnke | Author: Paul Tinsley <paul.tinsley@gmail.com> |
| 652 | 158 | Michael Stahnke | |
| 653 | 158 | Michael Stahnke | (#11717) Set password before creating user on Windows |
| 654 | 158 | Michael Stahnke | |
| 655 | 158 | Michael Stahnke | Previously, puppet could not create a user with no password when a |
| 656 | 158 | Michael Stahnke | local password complexity policy was set. This commit sets the |
| 657 | 158 | Michael Stahnke | password on the user prior to creating it, and updates the spec tests |
| 658 | 158 | Michael Stahnke | accordingly. |
| 659 | 158 | Michael Stahnke | |
| 660 | 158 | Michael Stahnke | ### Fix fact and plugin sync on Windows |
| 661 | 158 | Michael Stahnke | Author: Josh Cooper <josh@puppetlabs.com> |
| 662 | 158 | Michael Stahnke | |
| 663 | 158 | Michael Stahnke | (#11408) Fix fact and plugin sync on Windows |
| 664 | 158 | Michael Stahnke | |
| 665 | 158 | Michael Stahnke | Previously, fact and pluginsync were broken on Windows, because it was |
| 666 | 158 | Michael Stahnke | defaulting the owner and group to Process.uid/gid, and then failing to |
| 667 | 158 | Michael Stahnke | translate them into Windows SIDs. |
| 668 | 158 | Michael Stahnke | |
| 669 | 158 | Michael Stahnke | This commit changes the default file owner to the current user name, |
| 670 | 158 | Michael Stahnke | and the default file group to Nobody, which is the group that Windows |
| 671 | 158 | Michael Stahnke | typically applies to newly created files. |
| 672 | 158 | Michael Stahnke | |
| 673 | 158 | Michael Stahnke | ### Don't copy owner and group when sourcing files from master |
| 674 | 158 | Michael Stahnke | Author: Josh Cooper <josh@puppetlabs.com> |
| 675 | 158 | Michael Stahnke | |
| 676 | 158 | Michael Stahnke | (#10586) Don't copy owner and group when sourcing files from master |
| 677 | 158 | Michael Stahnke | |
| 678 | 158 | Michael Stahnke | Previously, puppet on Windows was not able to source files from the |
| 679 | 158 | Michael Stahnke | master, because it was attempting to translate the uid/gid from |
| 680 | 158 | Michael Stahnke | the Unix master into a Windows account, and obviously failing. |
| 681 | 158 | Michael Stahnke | |
| 682 | 158 | Michael Stahnke | This commit skips the owner and group properties when copying them |
| 683 | 158 | Michael Stahnke | from non-local sources, i.e. sources whose URIs have a 'puppet' |
| 684 | 158 | Michael Stahnke | scheme. |
| 685 | 158 | Michael Stahnke | |
| 686 | 158 | Michael Stahnke | If the source comes from a local source, then puppet behaves the same |
| 687 | 158 | Michael Stahnke | as it did previously, it copies the owner and group if the source |
| 688 | 158 | Michael Stahnke | volume supports Windows ACLs, e.g. C:/, samba mapped drives, or uses |
| 689 | 158 | Michael Stahnke | default values if the volume does not, e.g. VMware shared drives. |
| 690 | 158 | Michael Stahnke | |
| 691 | 163 | Michael Stahnke | |
| 692 | 163 | Michael Stahnke | ## FreeBSD Highlights |
| 693 | 163 | Michael Stahnke | ### Add support for user expiriy in pw user provider |
| 694 | 163 | Michael Stahnke | Author: Tim Bishop <tim@bishnet.net> |
| 695 | 163 | Michael Stahnke | |
| 696 | 163 | Michael Stahnke | (#11046) Add support for user expiry in pw user provider |
| 697 | 163 | Michael Stahnke | |
| 698 | 163 | Michael Stahnke | Add support for setting an expiry date for a user in the pw user |
| 699 | 163 | Michael Stahnke | provider. FreeBSD uses the format DD-MM-YYYY rather than Puppet's |
| 700 | 163 | Michael Stahnke | YYYY-MM-DD. Tests added to confirm the value is correctly swapped |
| 701 | 163 | Michael Stahnke | around. |
| 702 | 163 | Michael Stahnke | |
| 703 | 163 | Michael Stahnke | Also added custom accessor method to take the unix timestamp given |
| 704 | 163 | Michael Stahnke | by the operating system to a Puppet-style YYYY-MM-DD. This stops |
| 705 | 163 | Michael Stahnke | Puppet from repeatedly trying to set the expiry date if it's already |
| 706 | 163 | Michael Stahnke | correct. |
| 707 | 163 | Michael Stahnke | |
| 708 | 163 | Michael Stahnke | ### Improve pw group provider on FreeBSD |
| 709 | 163 | Michael Stahnke | Author: Tim Bishop <tim@bishnet.net> |
| 710 | 163 | Michael Stahnke | |
| 711 | 163 | Michael Stahnke | (#11046) Improve pw group provider on FreeBSD |
| 712 | 163 | Michael Stahnke | |
| 713 | 163 | Michael Stahnke | Make the pw group provider on FreeBSD support managing group members. |
| 714 | 163 | Michael Stahnke | Also readd the allowdupe feature since in testing on FreeBSD 7, 8 |
| 715 | 163 | Michael Stahnke | and 9 the -o flag to pw works as documented. |
| 716 | 163 | Michael Stahnke | |
| 717 | 163 | Michael Stahnke | Add tests for the provider. |
| 718 | 163 | Michael Stahnke | |
| 719 | 163 | Michael Stahnke | ### Make sure managehome is respected on FreeBSD |
| 720 | 163 | Michael Stahnke | Author: Tim Bishop <tim@bishnet.net> |
| 721 | 163 | Michael Stahnke | |
| 722 | 163 | Michael Stahnke | (#10962) Make sure managehome is respected on FreeBSD |
| 723 | 163 | Michael Stahnke | |
| 724 | 163 | Michael Stahnke | When modifying the home directory of a user and managehome is set |
| 725 | 163 | Michael Stahnke | the -m flag should be used with pw. This ensures that the new home |
| 726 | 163 | Michael Stahnke | directory is created if it doesn't exist. |
| 727 | 163 | Michael Stahnke | |
| 728 | 163 | Michael Stahnke | Also add test to verify this behaviour. |
| 729 | 163 | Michael Stahnke | |
| 730 | 163 | Michael Stahnke | ### Add password management on FreeBSD |
| 731 | 163 | Michael Stahnke | Author: Tim Bishop <tim@bishnet.net> |
| 732 | 163 | Michael Stahnke | |
| 733 | 163 | Michael Stahnke | (#11318) Add password management on FreeBSD |
| 734 | 163 | Michael Stahnke | |
| 735 | 163 | Michael Stahnke | This adds the manages_passwords feature to the pw user provider. It is based |
| 736 | 163 | Michael Stahnke | on the patch by Andrew Hust that was integrated into FreeBSD puppet port. It |
| 737 | 163 | Michael Stahnke | adds tests covering the create, delete and modify processes of the provider. |
| 738 | 163 | Michael Stahnke | |
| 739 | 163 | Michael Stahnke | This integrates a fix for #7500 that was introduced by the original patch. |
| 740 | 163 | Michael Stahnke | The existing code takes the first character of each property and uses it as a |
| 741 | 163 | Michael Stahnke | flag. However, with pw, the -p flag is for setting the password expiration. |
| 742 | 163 | Michael Stahnke | The result is that the password isn't set at create time and that the password |
| 743 | 163 | Michael Stahnke | is set to expire. The next run of puppet correctly sets the password but the |
| 744 | 163 | Michael Stahnke | expiry is still set. The new code avoids using -p for passwords, and also sets |
| 745 | 163 | Michael Stahnke | the password correctly when an account is created. |
| 746 | 163 | Michael Stahnke | |
| 747 | 154 | Matthaus Litteken | # 2.7.9 |
| 748 | 154 | Matthaus Litteken | |
| 749 | 156 | Matthaus Litteken | This is a bug fix release for regression (#11306) in 2.7.8 on Ruby 1.8.5. |
| 750 | 154 | Matthaus Litteken | |
| 751 | 156 | Matthaus Litteken | The 1.8.5-incompatible code wasn’t caught because of a long-standing bug in our tests that went unnoticed because of a bug in our CI setup. The former issue caused specs to fail before they even started running on 1.8.5, and the latter caused the run to still be reported as successful. We’ve fixed the former bug, but haven’t yet figured out a way to fix the latter (as it seems to be a bug in Ruby 1.8.5 + rspec). We will, however, be taking steps to ensure that such problems with our CI setup are more visible and caught sooner. |
| 752 | 154 | Matthaus Litteken | |
| 753 | 155 | Matthaus Litteken | (#11306) |
| 754 | 154 | Matthaus Litteken | Fix Ruby 1.8.5-incompatible code in Transaction#eval_generate |
| 755 | 154 | Matthaus Litteken | |
| 756 | 154 | Matthaus Litteken | This was previously creating a Hash from an array of pairs. |
| 757 | 154 | Matthaus Litteken | Unfortunately, Ruby 1.8.5 only supports an argument list of pairs rather |
| 758 | 154 | Matthaus Litteken | than an array, so this code didn't work with that version. |
| 759 | 1 | ||
| 760 | 152 | Nick Fagerlund | # 2.7.8 |
| 761 | 146 | Michael Stahnke | |
| 762 | 151 | Nick Fagerlund | This is a **feature and bug fix** release in the 2.7.x branch. |
| 763 | 146 | Michael Stahnke | |
| 764 | 153 | Nick Fagerlund | ## Known Issues |
| 765 | 153 | Nick Fagerlund | |
| 766 | 153 | Nick Fagerlund | **This release introduced a regression that causes errors under Ruby 1.8.5,** which was not noticed until after release. See issue #11306 for more details as we investigate, and delay upgrading to this version if you depend on Ruby 1.8.5 in your node population. |
| 767 | 153 | Nick Fagerlund | |
| 768 | 151 | Nick Fagerlund | ## New Features |
| 769 | 146 | Michael Stahnke | |
| 770 | 151 | Nick Fagerlund | ### Display file diffs through the Puppet log system. |
| 771 | 146 | Michael Stahnke | |
| 772 | 151 | Nick Fagerlund | (#2744) |
| 773 | 146 | Michael Stahnke | |
| 774 | 151 | Nick Fagerlund | When Puppet generated a diff after changing a file on disk, it previously |
| 775 | 151 | Nick Fagerlund | printed it directly to stdout; although a user could view it, it |
| 776 | 151 | Nick Fagerlund | was lost to the rest of the system, and did not appear in monitoring, logs, or reports. |
| 777 | 146 | Michael Stahnke | |
| 778 | 151 | Nick Fagerlund | We now send file diffs through our regular logging system, so that they can be viewed in reports and logs. **Note that this may have security implications if reports are being sent to an untrusted destination, as Puppet now exposes partial file contents in reports.** |
| 779 | 146 | Michael Stahnke | |
| 780 | 151 | Nick Fagerlund | ### Allow optional trailing comma in argument lists. |
| 781 | 146 | Michael Stahnke | |
| 782 | 151 | Nick Fagerlund | (#6335) |
| 783 | 146 | Michael Stahnke | |
| 784 | 151 | Nick Fagerlund | You can now put an optional comma at the end of argument lists for parameterized |
| 785 | 151 | Nick Fagerlund | class definitions and defined types. This makes parameter lists more closely |
| 786 | 151 | Nick Fagerlund | resemble resource attributes. |
| 787 | 146 | Michael Stahnke | |
| 788 | 151 | Nick Fagerlund | ## Bug Fixes |
| 789 | 146 | Michael Stahnke | |
| 790 | 146 | Michael Stahnke | |
| 791 | 151 | Nick Fagerlund | ### Provide default subjectAltNames when bootstrapping master |
| 792 | 146 | Michael Stahnke | |
| 793 | 151 | Nick Fagerlund | (#10739) |
| 794 | 146 | Michael Stahnke | |
| 795 | 151 | Nick Fagerlund | When bootstrapping a new puppet master without explicitly setting its valid alternate DNS names, we've always added some default Subject Alternative Names to its certificate so agents could reach it at `puppet` and `puppet.<domain>`. This got broken in the process of fixing #2848 (the CVE-2011-3872 AltNames vulnerability), which caused new puppet masters to get certificates with no valid Subject Alternative Names. (That is, the master could only be reached at its FQDN, not at `puppet`.) |
| 796 | 146 | Michael Stahnke | |
| 797 | 151 | Nick Fagerlund | This fix brings back the default AltNames behavior for initial puppet master certificates, while staying true to the policy changes we made for #2848 and making sure the default names never end up in agent certs. As ever, the default DNS names are only used if the `dns_alt_names` setting isn't explicitly set. |
| 798 | 1 | ||
| 799 | 151 | Nick Fagerlund | ### Don't automatically enable `show_diff` in noop mode |
| 800 | 141 | Michael Stahnke | |
| 801 | 151 | Nick Fagerlund | (#2744) |
| 802 | 1 | ||
| 803 | 151 | Nick Fagerlund | As of 845825a, file diffs are now logged, rather than printed to |
| 804 | 151 | Nick Fagerlund | console. Because log messages may be stored and are more broadly readable, |
| 805 | 151 | Nick Fagerlund | we no longer implicitly set `show_diff` in noop mode. |
| 806 | 141 | Michael Stahnke | |
| 807 | 1 | ||
| 808 | 151 | Nick Fagerlund | ### Allow providers to be used in the run they become suitable |
| 809 | 146 | Michael Stahnke | |
| 810 | 151 | Nick Fagerlund | (#6907) |
| 811 | 146 | Michael Stahnke | |
| 812 | 151 | Nick Fagerlund | At long last! You can now deliver a provider with pluginsync, use a Puppet resource to install executables or files the provider depends on, and use that provider in resources during the same run. |
| 813 | 146 | Michael Stahnke | |
| 814 | 151 | Nick Fagerlund | This works for both explicitly selected providers and providers that would be the default for their type. |
| 815 | 141 | Michael Stahnke | |
| 816 | 151 | Nick Fagerlund | ### Output four-digit file modes in logging and reporting |
| 817 | 141 | Michael Stahnke | |
| 818 | 151 | Nick Fagerlund | (#7274) |
| 819 | 141 | Michael Stahnke | |
| 820 | 151 | Nick Fagerlund | When reporting a change to a file's mode, Puppet now outputs the four-digit |
| 821 | 151 | Nick Fagerlund | file mode instead of omitting the leading 0, i.e. 0755 instead of 755. This |
| 822 | 151 | Nick Fagerlund | reduces the likelihood of setting the wrong mode on a file through a |
| 823 | 151 | Nick Fagerlund | copy/paste accident. |
| 824 | 1 | ||
| 825 | 151 | Nick Fagerlund | ### Fix "parenthesize method arguments" warnings under Ruby 1.8.6 |
| 826 | 146 | Michael Stahnke | |
| 827 | 151 | Nick Fagerlund | (#10161) |
| 828 | 146 | Michael Stahnke | |
| 829 | 151 | Nick Fagerlund | In the process of Windows development, we introduced some warnings under Ruby 1.8.6: |
| 830 | 1 | ||
| 831 | 151 | Nick Fagerlund | warning: parenthsize arguments(s) for future versions |
| 832 | 1 | ||
| 833 | 151 | Nick Fagerlund | These have been fixed, along with several testing/spec improvements around order dependent tests, and testing on Windows. |
| 834 | 146 | Michael Stahnke | |
| 835 | 151 | Nick Fagerlund | ### Restore Mongrel XMLRPC functionality |
| 836 | 1 | ||
| 837 | 151 | Nick Fagerlund | (#10244) |
| 838 | 141 | Michael Stahnke | |
| 839 | 151 | Nick Fagerlund | Some code was over-eagerly removed, which turned out to still be necessary for backward compatibility with XMLRPC clients. It has been re-instated in this release. |
| 840 | 146 | Michael Stahnke | |
| 841 | 151 | Nick Fagerlund | ### Fix missing facts under Mongrel |
| 842 | 146 | Michael Stahnke | |
| 843 | 151 | Nick Fagerlund | (#9109) |
| 844 | 1 | ||
| 845 | 151 | Nick Fagerlund | When using Puppet with Mongrel, facts were being lost from agent nodes running |
| 846 | 151 | Nick Fagerlund | 2.7.0 or higher. This was caused by Mongrel puppet masters only retrieving |
| 847 | 151 | Nick Fagerlund | request parameters from the query parameters of the URL, which mixed badly |
| 848 | 151 | Nick Fagerlund | with clients that submit their facts in a POST request. This has been fixed, |
| 849 | 151 | Nick Fagerlund | and Mongrel puppet masters can merge the POST request body with the query |
| 850 | 151 | Nick Fagerlund | parameters. |
| 851 | 146 | Michael Stahnke | |
| 852 | 151 | Nick Fagerlund | ### Speed up recursive file management in 2.7 |
| 853 | 141 | Michael Stahnke | |
| 854 | 151 | Nick Fagerlund | (#9671) |
| 855 | 146 | Michael Stahnke | |
| 856 | 151 | Nick Fagerlund | Recursively managing file ownership and permissions |
| 857 | 151 | Nick Fagerlund | is now at least ten times faster. This |
| 858 | 151 | Nick Fagerlund | speed improvement can also |
| 859 | 151 | Nick Fagerlund | be seen in some other scenarios. |
| 860 | 146 | Michael Stahnke | |
| 861 | 151 | Nick Fagerlund | ### Windows: Handle files on non-ACL volumes more gracefully |
| 862 | 146 | Michael Stahnke | |
| 863 | 151 | Nick Fagerlund | (#10614) |
| 864 | 141 | Michael Stahnke | |
| 865 | 151 | Nick Fagerlund | * We now check whether a Windows volume supports ACLs before just trying to get or set them. This eliminates a nasty error that would arise when managing owner, group, and/or mode on a file whose volume didn't support ACLs. |
| 866 | 151 | Nick Fagerlund | * We also insert default ACL values when sourcing file content from a volume that doesn't support Windows ACLs (e.g. a VMware shared drive) to a volume that does; this allows content to be sourced without requiring the owner, group, and mode to be specified in the manifest. A file's owner now defaults to Administrators, its group defaults to Nobody, and its mode defaults to 0644. |
| 867 | 151 | Nick Fagerlund | * Setting and clearing of the read-only attribute is improved. |
| 868 | 151 | Nick Fagerlund | * Potential segfaults when attempting to manage ACLs on non-ACL volumes have been fixed by improving our handling of return values from the Windows APIs. |
| 869 | 146 | Michael Stahnke | |
| 870 | 151 | Nick Fagerlund | These fixes do not affect the POSIX file provider. |
| 871 | 141 | Michael Stahnke | |
| 872 | 151 | Nick Fagerlund | |
| 873 | 151 | Nick Fagerlund | ### Ruby 1.8.1: Don't rely on Kernel#Pathname |
| 874 | 151 | Nick Fagerlund | |
| 875 | 151 | Nick Fagerlund | (#10727) |
| 876 | 151 | Nick Fagerlund | |
| 877 | 151 | Nick Fagerlund | We've removed an unnecessary incompatibility with pre-1.8.5 Rubies in `Puppet::Type::File`, which was caused by using Kernel#Pathname. |
| 878 | 151 | Nick Fagerlund | |
| 879 | 151 | Nick Fagerlund | |
| 880 | 151 | Nick Fagerlund | ### Allow authenticated clients to access anything clients _without_ certificates can access |
| 881 | 151 | Nick Fagerlund | |
| 882 | 151 | Nick Fagerlund | (#9508) |
| 883 | 151 | Nick Fagerlund | |
| 884 | 151 | Nick Fagerlund | Previously, the default `auth.conf` allowed anonymous clients *more* access to the certificate endpoint than authenticated clients. We now allow authenticated clients to access any endpoint that we trust anonymous clients to use. This improves support for distributed certificate management workflows. |
| 885 | 151 | Nick Fagerlund | |
| 886 | 151 | Nick Fagerlund | ### Serve file content in binary mode |
| 887 | 151 | Nick Fagerlund | |
| 888 | 151 | Nick Fagerlund | (#9983) |
| 889 | 151 | Nick Fagerlund | |
| 890 | 1 | Previously, Puppet::FileServing::Content opened files in text |
|
| 891 | 1 | mode. This has been changed to use binary mode. |
|
| 892 | 152 | Nick Fagerlund | |
| 893 | 152 | Nick Fagerlund | # 2.7.7 |
| 894 | 152 | Nick Fagerlund | |
| 895 | 152 | Nick Fagerlund | 2.7.7 was killed in the Thunderdome by 2.7.8. It was never released. |
| 896 | 151 | Nick Fagerlund | |
| 897 | 141 | Michael Stahnke | # 2.7.6 |
| 898 | 141 | Michael Stahnke | |
| 899 | 141 | Michael Stahnke | This is a **security, feature, and bug fix** release in the 2.7.x branch. |
| 900 | 146 | Michael Stahnke | |
| 901 | 146 | Michael Stahnke | ## Security Fixes |
| 902 | 146 | Michael Stahnke | |
| 903 | 136 | Michael Stahnke | ### CVE-2011-3872 (AltNames vulnerability) |
| 904 | 138 | Nick Fagerlund | |
| 905 | 1 | [(Full vulnerability and mitigation details)][cve20113872] |
|
| 906 | 138 | Nick Fagerlund | |
| 907 | 1 | [cve20113872]: http://puppetlabs.com/security/cve/cve-2011-3872/ |
|
| 908 | 138 | Nick Fagerlund | |
| 909 | 1 | **This is a major security vulnerability which must be manually remediated;** |
|
| 910 | 138 | Nick Fagerlund | upgrading Puppet will not fully protect a site from this vulnerability. |
| 911 | 1 | ||
| 912 | 138 | Nick Fagerlund | A bug in all previous versions causes Puppet to insert the puppet master’s DNS |
| 913 | 134 | Michael Stahnke | alt names ("certdnsnames" in puppet.conf) into the X.509 Subject Alternative |
| 914 | 138 | Nick Fagerlund | Name field of all certificates, rather than just the puppet master’s |
| 915 | 138 | Nick Fagerlund | certificate. |
| 916 | 1 | ||
| 917 | 138 | Nick Fagerlund | Since the puppet agent daemon can use the Subject Alternative Name field to |
| 918 | 138 | Nick Fagerlund | identify its puppet master, your site may contain agent certificates that can |
| 919 | 138 | Nick Fagerlund | be used in a Man in the Middle (MITM) attack to impersonate the puppet master. |
| 920 | 138 | Nick Fagerlund | |
| 921 | 1 | This release fixes the underlying bug that caused dangerous certificates to be |
|
| 922 | 138 | Nick Fagerlund | issued, but **any existing certificates with improper DNS alternate names will |
| 923 | 138 | Nick Fagerlund | remain dangerous until your agent nodes have been reconfigured.** |
| 924 | 138 | Nick Fagerlund | |
| 925 | 134 | Michael Stahnke | Any site where the puppet master's `certdnsnames` setting has been enabled is |
| 926 | 138 | Nick Fagerlund | vulnerable to attack. See the [CVE-2011-3872 details page][cve20113872] for |
| 927 | 138 | Nick Fagerlund | more information, including: |
| 928 | 138 | Nick Fagerlund | |
| 929 | 134 | Michael Stahnke | * How to determine whether you are affected |
| 930 | 138 | Nick Fagerlund | * How to fully remediate the vulnerability |
| 931 | 138 | Nick Fagerlund | * How to download and use the automated remediation toolkit released by Puppet Labs |
| 932 | 134 | Michael Stahnke | |
| 933 | 138 | Nick Fagerlund | ## Features and Enhancements |
| 934 | 138 | Nick Fagerlund | |
| 935 | 138 | Nick Fagerlund | ### Enhancement: User/group management on Windows |
| 936 | 151 | Nick Fagerlund | |
| 937 | 138 | Nick Fagerlund | (#9328) Retrieve user and group SIDs on windows. |
| 938 | 134 | Michael Stahnke | |
| 939 | 138 | Nick Fagerlund | Puppet can now manage user and group resources on Windows, and will use |
| 940 | 134 | Michael Stahnke | Windows security identifiers (SIDs) for the uid and gid properties. (The uid |
| 941 | 138 | Nick Fagerlund | and gid properties are read-only for the time being.) |
| 942 | 134 | Michael Stahnke | |
| 943 | 138 | Nick Fagerlund | ### Enhancement: Better file support on Windows |
| 944 | 138 | Nick Fagerlund | |
| 945 | 134 | Michael Stahnke | The file type and providers have been significantly refactored to properly |
| 946 | 138 | Nick Fagerlund | manage the owners, groups, and permissions of files on Windows. |
| 947 | 134 | Michael Stahnke | |
| 948 | 138 | Nick Fagerlund | Some subtleties to be aware of: |
| 949 | 138 | Nick Fagerlund | |
| 950 | 134 | Michael Stahnke | * In general, this implementation only supports "typical" permissions, |
| 951 | 138 | Nick Fagerlund | where group permissions are a subset of user, and other permissions |
| 952 | 151 | Nick Fagerlund | are a subset of group, e.g. 754, but not 467. |
| 953 | 138 | Nick Fagerlund | * The owner can be either a user or group SID, and most system files |
| 954 | 138 | Nick Fagerlund | are owned by the Administrators group. |
| 955 | 138 | Nick Fagerlund | * The group can be either a user or group SID. |
| 956 | 138 | Nick Fagerlund | * Unexpected results can occur if the owner and group are the |
| 957 | 138 | Nick Fagerlund | same, but the user and group classes are different, e.g. 750. In |
| 958 | 138 | Nick Fagerlund | this case, it is not possible to allow write access to the owner, |
| 959 | 138 | Nick Fagerlund | but not the group. As a result, the actual permissions set on the |
| 960 | 138 | Nick Fagerlund | file would be 770. |
| 961 | 138 | Nick Fagerlund | * In general, only privileged users can set the owner, group, or |
| 962 | 138 | Nick Fagerlund | change the mode for files they do not own. In 2003, the user must |
| 963 | 138 | Nick Fagerlund | be a member of the Administrators group. In Vista/2008, the user |
| 964 | 138 | Nick Fagerlund | must be running with elevated privileges. |
| 965 | 138 | Nick Fagerlund | * A file/dir can be deleted by anyone with the DELETE access right |
| 966 | 138 | Nick Fagerlund | OR by anyone that has the FILE_DELETE_CHILD access right for the |
| 967 | 138 | Nick Fagerlund | parent. See http://support.microsoft.com/kb/238018. But on Unix, |
| 968 | 138 | Nick Fagerlund | the user must have write access to the file/dir AND execute access |
| 969 | 138 | Nick Fagerlund | to all of the parent path components. |
| 970 | 138 | Nick Fagerlund | * Many access control entries are inherited from parent directories, |
| 971 | 138 | Nick Fagerlund | and it is common for file/dirs to have more than 3 entries, |
| 972 | 138 | Nick Fagerlund | e.g. Users, Power Users, Administrators, SYSTEM, etc, which cannot |
| 973 | 138 | Nick Fagerlund | be mapped into the 3 class POSIX model. The get_mode method will |
| 974 | 138 | Nick Fagerlund | set the S_IEXTRA bit flag indicating that an access control entry |
| 975 | 138 | Nick Fagerlund | was found whose SID is neither the owner, group, or other. This |
| 976 | 138 | Nick Fagerlund | enables Puppet to detect when file/dirs are out-of-sync, |
| 977 | 138 | Nick Fagerlund | especially those that Puppet did not create, but is attempting |
| 978 | 138 | Nick Fagerlund | to manage. |
| 979 | 138 | Nick Fagerlund | * On Unix, the owner and group can be modified without changing the |
| 980 | 138 | Nick Fagerlund | mode. But on Windows, an access control entry specifies which SID |
| 981 | 138 | Nick Fagerlund | it applies to. As a result, the set_owner and set_group methods |
| 982 | 134 | Michael Stahnke | automatically rebuild the access control list based on the new |
| 983 | 138 | Nick Fagerlund | (and different) owner or group. |
| 984 | 134 | Michael Stahnke | |
| 985 | 138 | Nick Fagerlund | ### Enhancement: Support plaintext password in Windows |
| 986 | 138 | Nick Fagerlund | |
| 987 | 138 | Nick Fagerlund | (#9326) Support plaintext passwords in Windows 'user' provider. |
| 988 | 134 | Michael Stahnke | |
| 989 | 138 | Nick Fagerlund | The Windows 'user' provider now includes password support, although passwords |
| 990 | 134 | Michael Stahnke | must be passed as plaintext instead of as hashes. |
| 991 | 138 | Nick Fagerlund | |
| 992 | 134 | Michael Stahnke | ### Enhancement: Return reports on ral save |
| 993 | 138 | Nick Fagerlund | |
| 994 | 138 | Nick Fagerlund | (#9838) Return the transaction report when doing a ral save |
| 995 | 138 | Nick Fagerlund | |
| 996 | 138 | Nick Fagerlund | When using puppet resource from the command line, using `puppet resource` |
| 997 | 138 | Nick Fagerlund | to do a save will log error messages to the console when |
| 998 | 134 | Michael Stahnke | saving using the ral indirection. However, this doesn't help when using |
| 999 | 138 | Nick Fagerlund | that indirection in Ruby like you might from MCollective's puppetral |
| 1000 | 138 | Nick Fagerlund | agent. |
| 1001 | 134 | Michael Stahnke | |
| 1002 | 138 | Nick Fagerlund | So we now return the transaction report you get from applying the |
| 1003 | 138 | Nick Fagerlund | catalog. |
| 1004 | 138 | Nick Fagerlund | |
| 1005 | 138 | Nick Fagerlund | The only place we could find this indirection being used was in the |
| 1006 | 138 | Nick Fagerlund | `puppet resource` application, although it's possible that code external |
| 1007 | 138 | Nick Fagerlund | to puppet uses this indirection and will need to change what it expects |
| 1008 | 138 | Nick Fagerlund | for the return value of save. |
| 1009 | 138 | Nick Fagerlund | |
| 1010 | 138 | Nick Fagerlund | ## Bug Fixes |
| 1011 | 138 | Nick Fagerlund | |
| 1012 | 138 | Nick Fagerlund | ### Fix: Recognize more duplicate resources |
| 1013 | 138 | Nick Fagerlund | |
| 1014 | 138 | Nick Fagerlund | (#8596) Title and name must be unique within a given resource |
| 1015 | 138 | Nick Fagerlund | |
| 1016 | 138 | Nick Fagerlund | Puppet 2.6 introduced a bug where titles were no longer being compared to |
| 1017 | 138 | Nick Fagerlund | names when identifying duplicate resources. For example: |
| 1018 | 138 | Nick Fagerlund | |
| 1019 | 138 | Nick Fagerlund | file { '/tmp/foo': |
| 1020 | 138 | Nick Fagerlund | ensure => file, |
| 1021 | 138 | Nick Fagerlund | } |
| 1022 | 151 | Nick Fagerlund | |
| 1023 | 134 | Michael Stahnke | file { 'same_file': |
| 1024 | 138 | Nick Fagerlund | path => '/tmp/foo', |
| 1025 | 134 | Michael Stahnke | ensure => absent, |
| 1026 | 138 | Nick Fagerlund | } |
| 1027 | 138 | Nick Fagerlund | |
| 1028 | 138 | Nick Fagerlund | This would work, but wasn't supposed to. It will now register as a duplicate, as intended. |
| 1029 | 138 | Nick Fagerlund | |
| 1030 | 138 | Nick Fagerlund | ### Fix: Allow multi-line exec resources |
| 1031 | 1 | ||
| 1032 | 138 | Nick Fagerlund | (#9996) Restore functionality for multi-line commands in exec resources |
| 1033 | 138 | Nick Fagerlund | |
| 1034 | 138 | Nick Fagerlund | |
| 1035 | 151 | Nick Fagerlund | ### Fix: Eliminate warning on groupadd |
| 1036 | 138 | Nick Fagerlund | |
| 1037 | 138 | Nick Fagerlund | (#9027) Get rid of spurious info messages in groupadd |
| 1038 | 138 | Nick Fagerlund | |
| 1039 | 138 | Nick Fagerlund | Usage of the groupadd provider was leading to spurious log messages of |
| 1040 | 138 | Nick Fagerlund | this form: |
| 1041 | 138 | Nick Fagerlund | |
| 1042 | 138 | Nick Fagerlund | info: /Group[developer]: Provider groupadd does not support features |
| 1043 | 138 | Nick Fagerlund | manages_aix_lam; not managing attribute ia_load_module |
| 1044 | 138 | Nick Fagerlund | |
| 1045 | 138 | Nick Fagerlund | These messages have been eliminated. See also issue #7137, covering |
| 1046 | 151 | Nick Fagerlund | similar issues with the useradd provider. |
| 1047 | 138 | Nick Fagerlund | |
| 1048 | 138 | Nick Fagerlund | ### Fix: Remove unnecessary deprecation warning in puppet resource |
| 1049 | 138 | Nick Fagerlund | |
| 1050 | 138 | Nick Fagerlund | (#9837) Call puppet apply to avoid deprecation warning |
| 1051 | 138 | Nick Fagerlund | |
| 1052 | 151 | Nick Fagerlund | `puppet resource --edit` was causing unnecessary deprecation warnings similar to the following: |
| 1053 | 138 | Nick Fagerlund | |
| 1054 | 138 | Nick Fagerlund | warning: Implicit invocation of 'puppet apply' by passing files (or flags) directly |
| 1055 | 138 | Nick Fagerlund | to 'puppet' is deprecated, and will be removed in the 2.8 series. Please |
| 1056 | 138 | Nick Fagerlund | invoke 'puppet apply' directly in the future. |
| 1057 | 138 | Nick Fagerlund | |
| 1058 | 151 | Nick Fagerlund | These have been resolved. |
| 1059 | 151 | Nick Fagerlund | |
| 1060 | 138 | Nick Fagerlund | ### Fix: Resolve issues with Windows URIs |
| 1061 | 151 | Nick Fagerlund | |
| 1062 | 138 | Nick Fagerlund | Previously, specifying a Windows file URI of the form 'file:///C:/foo' |
| 1063 | 138 | Nick Fagerlund | as a file source failed to strip the leading slash when attempting to |
| 1064 | 134 | Michael Stahnke | source the file. (Also, there was ambiguity after values were munged, since a |
| 1065 | 138 | Nick Fagerlund | value of the form 'C:/foo' could either be a Windows file path or a |
| 1066 | 138 | Nick Fagerlund | URI whose scheme is 'C'.) |
| 1067 | 138 | Nick Fagerlund | |
| 1068 | 138 | Nick Fagerlund | This behavior has been fixed, and Windows file URIs can be used safely. |
| 1069 | 138 | Nick Fagerlund | |
| 1070 | 138 | Nick Fagerlund | ### Fix: Expose all functions in templates |
| 1071 | 138 | Nick Fagerlund | |
| 1072 | 138 | Nick Fagerlund | (#4549) Fix templates to be able to call all functions |
| 1073 | 138 | Nick Fagerlund | |
| 1074 | 138 | Nick Fagerlund | Only a small subset of Puppet functions were available on the scope in |
| 1075 | 138 | Nick Fagerlund | templates. This had people doing workarounds like: |
| 1076 | 138 | Nick Fagerlund | |
| 1077 | 138 | Nick Fagerlund | inline_template("<%= Puppet::Parser::Functions.autoloader.loadall; scope.function_extlookup(['hello world']) %>") |
| 1078 | 138 | Nick Fagerlund | |
| 1079 | 138 | Nick Fagerlund | These workarounds are no longer necessary, and templates can load any available |
| 1080 | 134 | Michael Stahnke | Puppet function. |
| 1081 | 138 | Nick Fagerlund | |
| 1082 | 134 | Michael Stahnke | ### Fix: Update pluginsync to only load ruby files. |
| 1083 | 151 | Nick Fagerlund | |
| 1084 | 138 | Nick Fagerlund | (#4135) Update pluginsync to only load ruby files. |
| 1085 | 138 | Nick Fagerlund | |
| 1086 | 134 | Michael Stahnke | Previously, puppet agent would attempt to load any file distributed via |
| 1087 | 138 | Nick Fagerlund | pluginsync as though it were Ruby code. This was causing errors by loading, |
| 1088 | 138 | Nick Fagerlund | for example, README files. |
| 1089 | 138 | Nick Fagerlund | |
| 1090 | 138 | Nick Fagerlund | Pluginsync will still distribute any type of file, but puppet agent will no |
| 1091 | 138 | Nick Fagerlund | longer attempt to load non-Ruby files. |
| 1092 | 138 | Nick Fagerlund | |
| 1093 | 138 | Nick Fagerlund | ### Fix: Fix logging on Windows |
| 1094 | 138 | Nick Fagerlund | |
| 1095 | 138 | Nick Fagerlund | (#9435) Gracefully handle when syslog feature is unavailable |
| 1096 | 138 | Nick Fagerlund | |
| 1097 | 138 | Nick Fagerlund | Previously, Puppet would try to create a syslog log destination when run |
| 1098 | 138 | Nick Fagerlund | without a log destination, which would fail on Windows because the Syslog |
| 1099 | 138 | Nick Fagerlund | module was not available. Behavior when syslog isn't available has been fixed. |
| 1100 | 138 | Nick Fagerlund | |
| 1101 | 138 | Nick Fagerlund | ### Fix: Disable daemonizing on Windows |
| 1102 | 138 | Nick Fagerlund | |
| 1103 | 138 | Nick Fagerlund | (#9329) Disable agent daemonizing on Windows |
| 1104 | 138 | Nick Fagerlund | |
| 1105 | 138 | Nick Fagerlund | For this release, we will not be providing the |
| 1106 | 138 | Nick Fagerlund | code to run puppet agent as a service, though we have verified that |
| 1107 | 138 | Nick Fagerlund | puppet will run as a service using a third-party service wrapper, |
| 1108 | 138 | Nick Fagerlund | nssm. |
| 1109 | 138 | Nick Fagerlund | |
| 1110 | 138 | Nick Fagerlund | Until support for running the agent as a service is complete, we have changed |
| 1111 | 138 | Nick Fagerlund | the default `daemonize` setting on Windows. Puppet will also report an error if |
| 1112 | 134 | Michael Stahnke | `daemonize` is set to true on Windows. |
| 1113 | 134 | Michael Stahnke | |
| 1114 | 138 | Nick Fagerlund | |
| 1115 | 138 | Nick Fagerlund | # 2.7.5 |
| 1116 | 134 | Michael Stahnke | |
| 1117 | 151 | Nick Fagerlund | Puppet 2.7.5 is a **security and regression fix** release in the 2.7.x branch. |
| 1118 | 134 | Michael Stahnke | |
| 1119 | 139 | Nick Fagerlund | * See the 2.7.5 [announcement](http://groups.google.com/group/puppet-announce/t/5c363480686372e3) on puppet-announce |
| 1120 | 1 | * You can also see the general [security notice email](http://groups.google.com/group/puppet-announce/t/91e3b46d2328a1cb) |
|
| 1121 | 139 | Nick Fagerlund | |
| 1122 | 139 | Nick Fagerlund | ## Security Fixes |
| 1123 | 139 | Nick Fagerlund | |
| 1124 | 139 | Nick Fagerlund | ### Three security vulnerabilities |
| 1125 | 139 | Nick Fagerlund | |
| 1126 | 139 | Nick Fagerlund | This release resolves the following security vulnerabilities: |
| 1127 | 139 | Nick Fagerlund | |
| 1128 | 139 | Nick Fagerlund | * [CVE-2011-3869 -- k5login can overwrite arbitrary files as root][cve20113869] |
| 1129 | 139 | Nick Fagerlund | * [CVE-2011-3870 -- SSH auth key local privilege escalation][cve20113870] |
| 1130 | 139 | Nick Fagerlund | * [CVE-2011-3871 -- Predictable temporary filename in puppet resource/ralsh][cve20113871] |
| 1131 | 139 | Nick Fagerlund | |
| 1132 | 139 | Nick Fagerlund | Follow the links above for details on each vulnerability. |
| 1133 | 139 | Nick Fagerlund | |
| 1134 | 139 | Nick Fagerlund | [cve20113871]: http://puppetlabs.com/security/cve/cve-2011-3871/ |
| 1135 | 138 | Nick Fagerlund | [cve20113870]: http://puppetlabs.com/security/cve/cve-2011-3870/ |
| 1136 | 138 | Nick Fagerlund | [cve20113869]: http://puppetlabs.com/security/cve/cve-2011-3869/ |
| 1137 | 138 | Nick Fagerlund | |
| 1138 | 138 | Nick Fagerlund | ## Bug Fixes |
| 1139 | 138 | Nick Fagerlund | |
| 1140 | 1 | ### Fix: storeconfigs regression from 2.7.4 |
|
| 1141 | 131 | Michael Stahnke | |
| 1142 | 1 | (#9832) General StoreConfigs regression. |
|
| 1143 | 1 | ||
| 1144 | 131 | Michael Stahnke | Some StoreConfigs exported and imported resources were not being |
| 1145 | 1 | found under PostgreSQL. This fix resolves the regression. |
|
| 1146 | 1 | ||
| 1147 | 139 | Nick Fagerlund | |
| 1148 | 131 | Michael Stahnke | # 2.7.4 |
| 1149 | 1 | ||
| 1150 | 1 | Puppet 2.7.4 is security and feature release in the 2.7.x branch. Due to the security patches included, it is recommended anybody using the 2.7.x series update to 2.7.4. |
|
| 1151 | 139 | Nick Fagerlund | |
| 1152 | 131 | Michael Stahnke | In addition to the security patch, this release adds functional Windows providers for several types, and makes changes to the storeconfigs indirection. |
| 1153 | 139 | Nick Fagerlund | |
| 1154 | 131 | Michael Stahnke | ## Security Fixes |
| 1155 | 139 | Nick Fagerlund | |
| 1156 | 131 | Michael Stahnke | ### CVE-2011-3848 (directory traversal attacks through indirections) |
| 1157 | 139 | Nick Fagerlund | |
| 1158 | 139 | Nick Fagerlund | [cve20113848]: http://puppetlabs.com/security/cve/cve-2011-3848/ |
| 1159 | 132 | Nick Fagerlund | |
| 1160 | 132 | Nick Fagerlund | [(Full vulnerability details)][cve20113848] |
| 1161 | 132 | Nick Fagerlund | |
| 1162 | 132 | Nick Fagerlund | In various versions of Puppet it was possible to cause a directory traversal |
| 1163 | 131 | Michael Stahnke | attack through the SSLFile indirection base class. This was variously |
| 1164 | 132 | Nick Fagerlund | triggered through the user-supplied key, or the Subject of the certificate, in |
| 1165 | 132 | Nick Fagerlund | the code. |
| 1166 | 132 | Nick Fagerlund | |
| 1167 | 132 | Nick Fagerlund | Now, we detect bad patterns down in the base class for our indirections, and |
| 1168 | 126 | Matthaus Litteken | fail hard on them. This reduces the attack surface with as little disruption |
| 1169 | 132 | Nick Fagerlund | to the overall codebase as possible, making it suitable to deploy as part of |
| 1170 | 132 | Nick Fagerlund | older, stable versions of Puppet. |
| 1171 | 1 | ||
| 1172 | 132 | Nick Fagerlund | In the long term we will also address this higher up the stack, to prevent |
| 1173 | 143 | Nick Fagerlund | these problems from reoccurring, but for now this will suffice. |
| 1174 | 143 | Nick Fagerlund | |
| 1175 | 1 | Huge thanks to Kristian Erik Hermansen <kristian.hermansen@gmail.com> for the |
|
| 1176 | 132 | Nick Fagerlund | responsible disclosure, and useful analysis, around this defect. |
| 1177 | 1 | ||
| 1178 | 132 | Nick Fagerlund | ## Fixes and Enhancements |
| 1179 | 1 | ||
| 1180 | 132 | Nick Fagerlund | ### Allow cron vars to have leading whitespace |
| 1181 | 132 | Nick Fagerlund | |
| 1182 | 132 | Nick Fagerlund | Fix #9440 |
| 1183 | 132 | Nick Fagerlund | |
| 1184 | 132 | Nick Fagerlund | Patch applied from Jeremy Thornhill. This allows whitespace to appear before |
| 1185 | 129 | Matthaus Litteken | cron variables. Previously, whitespace before cron variables would trigger a |
| 1186 | 132 | Nick Fagerlund | parse failure, and the crontab, except for the puppet managed portion, would |
| 1187 | 1 | get removed. This addresses that issue. It also includes a test for this issue, |
|
| 1188 | 132 | Nick Fagerlund | added into the tests directory, which seems to be where the crontab tests live. |
| 1189 | 1 | ||
| 1190 | 132 | Nick Fagerlund | ### Write out a list of resources that are managed by puppet agent |
| 1191 | 132 | Nick Fagerlund | |
| 1192 | 132 | Nick Fagerlund | Feature #8667 |
| 1193 | 132 | Nick Fagerlund | |
| 1194 | 132 | Nick Fagerlund | Similar to how the Puppet classes are written out each catalog apply, |
| 1195 | 1 | the list of resources is now being written out to a text file that can |
|
| 1196 | 132 | Nick Fagerlund | be easily used by tools like MCollective. This allows tools that do |
| 1197 | 125 | Matthaus Litteken | ad-hoc management of resources to know if they're changing a resource |
| 1198 | 132 | Nick Fagerlund | that puppet manages, and adjust behavior accordingly. |
| 1199 | 125 | Matthaus Litteken | |
| 1200 | 132 | Nick Fagerlund | ### Fix value validation on options |
| 1201 | 132 | Nick Fagerlund | |
| 1202 | 132 | Nick Fagerlund | Fix #7114 |
| 1203 | 132 | Nick Fagerlund | |
| 1204 | 125 | Matthaus Litteken | Support single options that legally include a comma like |
| 1205 | 132 | Nick Fagerlund | "from=host1,host2". We now basically allow either "word" or "key=value" |
| 1206 | 125 | Matthaus Litteken | as options. That's also what the parsedfile provider currently supports |
| 1207 | 132 | Nick Fagerlund | when parsing options. |
| 1208 | 125 | Matthaus Litteken | |
| 1209 | 132 | Nick Fagerlund | ### GigabitEthernet/TenGigabitEthernet are uncorrectly parsed |
| 1210 | 132 | Nick Fagerlund | |
| 1211 | 132 | Nick Fagerlund | Fix #7984 |
| 1212 | 125 | Matthaus Litteken | |
| 1213 | 132 | Nick Fagerlund | The interface name abbreviation to canonical name doesn't return |
| 1214 | 125 | Matthaus Litteken | the correct name for GigabitEthernet and doesn't support TenGigabitEthernet |
| 1215 | 132 | Nick Fagerlund | interfaces. |
| 1216 | 125 | Matthaus Litteken | |
| 1217 | 132 | Nick Fagerlund | ### Allow macauthorization provider to work on OS X Lion 10.7 |
| 1218 | 132 | Nick Fagerlund | |
| 1219 | 132 | Nick Fagerlund | Fix #9143 |
| 1220 | 123 | Matthaus Litteken | |
| 1221 | 123 | Matthaus Litteken | We've flipped around the confine check so we explicitly exclude the |
| 1222 | 132 | Nick Fagerlund | versions of OS X where this provider won't work, rather than working |
| 1223 | 123 | Matthaus Litteken | from a whitelist. |
| 1224 | 132 | Nick Fagerlund | |
| 1225 | 123 | Matthaus Litteken | |
| 1226 | 132 | Nick Fagerlund | ### Move complex collect expression error into terminus. |
| 1227 | 132 | Nick Fagerlund | |
| 1228 | 132 | Nick Fagerlund | Fix #9051 |
| 1229 | 123 | Matthaus Litteken | |
| 1230 | 132 | Nick Fagerlund | When the StoreConfig system was extracted from core to a set of termini, most |
| 1231 | 132 | Nick Fagerlund | of the rules about permitted syntax were pushed down into the same place, to |
| 1232 | 132 | Nick Fagerlund | allow them to also be replaced. |
| 1233 | 123 | Matthaus Litteken | |
| 1234 | 132 | Nick Fagerlund | One set of restrictions were missed, the limitation that complex search |
| 1235 | 132 | Nick Fagerlund | criteria (like and, or, or parenthetical expressions) were not permitted, and |
| 1236 | 132 | Nick Fagerlund | remained in our parser. |
| 1237 | 123 | Matthaus Litteken | |
| 1238 | 132 | Nick Fagerlund | Now, they live in the terminus, and we enforce them only there. This ensures |
| 1239 | 123 | Matthaus Litteken | that StoreConfigs can be replaced with a back-end that supports complex |
| 1240 | 132 | Nick Fagerlund | collection criteria without other changes to the Puppet core. |
| 1241 | 123 | Matthaus Litteken | |
| 1242 | 132 | Nick Fagerlund | ### Don't rely on error message to detect UAC capable platform |
| 1243 | 132 | Nick Fagerlund | |
| 1244 | 132 | Nick Fagerlund | Fix #8662 |
| 1245 | 132 | Nick Fagerlund | |
| 1246 | 132 | Nick Fagerlund | The call to Win32::Security.elevated_privileges? can raise an |
| 1247 | 132 | Nick Fagerlund | exception when running on a pre-Vista computer or if the process fails |
| 1248 | 1 | to open its process token. |
|
| 1249 | 132 | Nick Fagerlund | |
| 1250 | 132 | Nick Fagerlund | Previously, we were looking at the exception message to determine |
| 1251 | 132 | Nick Fagerlund | which case it was. However, Windows 2003 and 2003 R2 return different |
| 1252 | 1 | error codes (and therefore messages) for the pre-Vista case. In 2003, |
|
| 1253 | 132 | Nick Fagerlund | it returns error code 1 (Incorrect function), but in 2003 R2 it |
| 1254 | 132 | Nick Fagerlund | returns 87 (The parameter is incorrect). Since SUIDManager was only |
| 1255 | 132 | Nick Fagerlund | looking for Incorrect function, SUIDManager.root? would always return |
| 1256 | 132 | Nick Fagerlund | false on 2003 R2. |
| 1257 | 132 | Nick Fagerlund | |
| 1258 | 132 | Nick Fagerlund | Ideally, we could just check if the GetTokenInformation Win32 API was |
| 1259 | 132 | Nick Fagerlund | available, and only call it on platforms where it makes sense. But |
| 1260 | 132 | Nick Fagerlund | this API is available on all recent version of Windows. What's new in |
| 1261 | 132 | Nick Fagerlund | Vista and up is the TokenElevation value of the |
| 1262 | 132 | Nick Fagerlund | `TOKEN_INFORMATION_CLASS` enumeration. |
| 1263 | 132 | Nick Fagerlund | |
| 1264 | 132 | Nick Fagerlund | This commit changes the suidmanager to only call GetTokenInformation |
| 1265 | 132 | Nick Fagerlund | when the major kernel version, as reported by facter, is 6.0 or |
| 1266 | 132 | Nick Fagerlund | greater, which corresponds to Vista/2008. See: |
| 1267 | 132 | Nick Fagerlund | |
| 1268 | 132 | Nick Fagerlund | <http://msdn.microsoft.com/en-us/library/ms724833(v=vs.85).aspx> |
| 1269 | 132 | Nick Fagerlund | |
| 1270 | 132 | Nick Fagerlund | ### Add MSI package provider for use with Windows |
| 1271 | 132 | Nick Fagerlund | |
| 1272 | 151 | Nick Fagerlund | Feature #8412 |
| 1273 | 132 | Nick Fagerlund | |
| 1274 | 132 | Nick Fagerlund | This provider takes some of its inspiration from the appdmg provider |
| 1275 | 132 | Nick Fagerlund | used with OS X. It will maintain a list of packages that have been |
| 1276 | 132 | Nick Fagerlund | installed and removed from the system via the provider in a directory |
| 1277 | 132 | Nick Fagerlund | under Puppet's vardir called db/package/msi. These state files will |
| 1278 | 132 | Nick Fagerlund | be named the same as the resource name with '.yml' appended. The |
| 1279 | 1 | state files will be a hash containing the resource name, the install |
|
| 1280 | 132 | Nick Fagerlund | options used, and the source location of the MSI. |
| 1281 | 1 | ||
| 1282 | 132 | Nick Fagerlund | Any properties that a user wishes to provide to the MSI can be |
| 1283 | 1 | specified as key/value pairs in the install_options parameter. For |
|
| 1284 | 132 | Nick Fagerlund | example: |
| 1285 | 1 | ||
| 1286 | 1 | package { 'mysql': |
|
| 1287 | 132 | Nick Fagerlund | provider => msi, |
| 1288 | 132 | Nick Fagerlund | source => 'E:\mysql.msi', |
| 1289 | 132 | Nick Fagerlund | ensure => installed, |
| 1290 | 132 | Nick Fagerlund | install_options => { 'INSTALLDIR' => 'C:\mysql' }, |
| 1291 | 132 | Nick Fagerlund | } |
| 1292 | 132 | Nick Fagerlund | |
| 1293 | 132 | Nick Fagerlund | The MSI properties specified by install_options will be appropriately |
| 1294 | 132 | Nick Fagerlund | quoted when invoking msiexec.exe to install the MSI. |
| 1295 | 132 | Nick Fagerlund | |
| 1296 | 132 | Nick Fagerlund | Because the source parameter is integral to the functionality of being |
| 1297 | 1 | able to install and uninstall MSI packages, we also override |
|
| 1298 | 132 | Nick Fagerlund | validate_source to make sure that the source parameter is always set, |
| 1299 | 132 | Nick Fagerlund | and is not an empty string when using this provider. |
| 1300 | 132 | Nick Fagerlund | |
| 1301 | 132 | Nick Fagerlund | ### Add a Windows exec provider |
| 1302 | 132 | Nick Fagerlund | |
| 1303 | 132 | Nick Fagerlund | Feature #8140 |
| 1304 | 132 | Nick Fagerlund | |
| 1305 | 132 | Nick Fagerlund | This provider inherits from the `Puppet::Provider::Exec` class, and is |
| 1306 | 132 | Nick Fagerlund | very similar to the posix provider in its behavior. This provider |
| 1307 | 132 | Nick Fagerlund | doesn't have the ability to run as a particular user or group and will |
| 1308 | 132 | Nick Fagerlund | fail if that is attempted, but does support setting all other |
| 1309 | 132 | Nick Fagerlund | parameters, as well as autorequires. |
| 1310 | 132 | Nick Fagerlund | |
| 1311 | 1 | Rather than the shell provider inheriting from the posix provider, they |
|
| 1312 | 132 | Nick Fagerlund | both now inherit from a common `Puppet::Provider::Exec` class. This new |
| 1313 | 132 | Nick Fagerlund | base class and inheritance structure will allow the forthcoming windows |
| 1314 | 132 | Nick Fagerlund | provider to also inherit from that class, rather than from the |
| 1315 | 132 | Nick Fagerlund | unsuitable posix provider. |
| 1316 | 132 | Nick Fagerlund | |
| 1317 | 132 | Nick Fagerlund | Also, now that Puppet::Util.execute supports commands as strings in |
| 1318 | 132 | Nick Fagerlund | addition to arrays, the command to execute is passed to |
| 1319 | 132 | Nick Fagerlund | `Puppet::Util::SUIDManager.run_and_capture` as a string, rather than a |
| 1320 | 132 | Nick Fagerlund | string wrapped in an array. This ensures we will never improperly quote |
| 1321 | 132 | Nick Fagerlund | a command with arguments provided as a single string. |
| 1322 | 132 | Nick Fagerlund | |
| 1323 | 132 | Nick Fagerlund | ### Default config dir to %PROGRAMDATA% on Windows |
| 1324 | 132 | Nick Fagerlund | |
| 1325 | 132 | Nick Fagerlund | Fix #8660 |
| 1326 | 132 | Nick Fagerlund | |
| 1327 | 132 | Nick Fagerlund | The puppet install.rb script now defaults the config directory to |
| 1328 | 132 | Nick Fagerlund | %PROGRAMDATA%\PuppetLabs\puppet\etc on Windows. This is more inline |
| 1329 | 132 | Nick Fagerlund | with Windows best-practices, as this directory is used to store |
| 1330 | 132 | Nick Fagerlund | application data across all users. The PROGRAMDATA environment |
| 1331 | 132 | Nick Fagerlund | variable also takes into account alternate system drives, by using the |
| 1332 | 132 | Nick Fagerlund | SYSTEMDRIVE environment variable. |
| 1333 | 132 | Nick Fagerlund | |
| 1334 | 132 | Nick Fagerlund | Note that the `Dir::COMMON_APPDATA` constant is so named because it |
| 1335 | 132 | Nick Fagerlund | corresponds to the `CSIDL_COMMON_APPDATA` constant, which on 2000, XP, |
| 1336 | 132 | Nick Fagerlund | and 2003 is `%ALLUSERSPROFILE%\Application Data`, and on Vista, Win7 and |
| 1337 | 132 | Nick Fagerlund | 2008 is `%SYSTEMDRIVE%\ProgramData`. |
| 1338 | 132 | Nick Fagerlund | |
| 1339 | 132 | Nick Fagerlund | This commit also updates puppet's default run_mode var and conf |
| 1340 | 132 | Nick Fagerlund | directories when running as "root" to match the install script, and |
| 1341 | 132 | Nick Fagerlund | fixes the spec test, which was looking in the `Dir::WINDOWS` directory. |
| 1342 | 132 | Nick Fagerlund | |
| 1343 | 132 | Nick Fagerlund | |
| 1344 | 132 | Nick Fagerlund | |
| 1345 | 132 | Nick Fagerlund | |
| 1346 | 132 | Nick Fagerlund | # 2.7.3 |
| 1347 | 132 | Nick Fagerlund | |
| 1348 | 132 | Nick Fagerlund | 2.7.3 is a maintenance and enhancement release in the 2.7.x branch. |
| 1349 | 132 | Nick Fagerlund | |
| 1350 | 132 | Nick Fagerlund | ### Add Node Clean action |
| 1351 | 117 | Michael Stahnke | |
| 1352 | 117 | Michael Stahnke | Fix #1886 - Add node cleanup capability |
| 1353 | 132 | Nick Fagerlund | |
| 1354 | 117 | Michael Stahnke | This adds a new "clean" action to the puppet node face, which removes all traces of a node on the puppetmaster |
| 1355 | 132 | Nick Fagerlund | (including certs, cached facts and nodes, reports, and storedconfig |
| 1356 | 132 | Nick Fagerlund | entries). |
| 1357 | 132 | Nick Fagerlund | |
| 1358 | 132 | Nick Fagerlund | Furthermore, it is capable of unexporting exported resources of a |
| 1359 | 132 | Nick Fagerlund | host so that consumers of these resources can remove the exported |
| 1360 | 132 | Nick Fagerlund | resources and we will safely remove the node from our |
| 1361 | 132 | Nick Fagerlund | infrastructure. |
| 1362 | 132 | Nick Fagerlund | |
| 1363 | 132 | Nick Fagerlund | Usage: |
| 1364 | 132 | Nick Fagerlund | |
| 1365 | 132 | Nick Fagerlund | puppet node clean [--unexport] <host> [<host2> ...] |
| 1366 | 1 | ||
| 1367 | 132 | Nick Fagerlund | To achieve this we add different destroy methods to the different |
| 1368 | 132 | Nick Fagerlund | parts of the indirector. So for example for yaml indirections we |
| 1369 | 132 | Nick Fagerlund | already offer read access for the yaml, this changeset adds |
| 1370 | 132 | Nick Fagerlund | the destroy handler which only removes the yaml file for |
| 1371 | 117 | Michael Stahnke | a request. This can be used to remove cached entries. |
| 1372 | 117 | Michael Stahnke | |
| 1373 | 132 | Nick Fagerlund | ### Deprecate RestAuthConfig#allowed? in favor of #check_authorization |
| 1374 | 132 | Nick Fagerlund | |
| 1375 | 132 | Nick Fagerlund | #allowed? was a poorly named method since it isn't actually a predicate |
| 1376 | 132 | Nick Fagerlund | method. Instead of returning a boolean, this methods throws an |
| 1377 | 132 | Nick Fagerlund | exception when the access is denied (in order to keep the full context |
| 1378 | 117 | Michael Stahnke | of what ACE triggered the deny). |
| 1379 | 132 | Nick Fagerlund | |
| 1380 | 117 | Michael Stahnke | Given that #allowed? was overriding the behavior from AuthConfig, we |
| 1381 | 132 | Nick Fagerlund | leave a version of #allowed? in place that will issue a deprecation |
| 1382 | 1 | warning before delegating to #check_authorization. Once support for |
|
| 1383 | 132 | Nick Fagerlund | XML-RPC agents is removed from the master, we will be able to remove |
| 1384 | 132 | Nick Fagerlund | this delegation, since there should no longer be a reason for a |
| 1385 | 132 | Nick Fagerlund | distinction between AuthConfig and RestAuthConfig. |
| 1386 | 117 | Michael Stahnke | |
| 1387 | 132 | Nick Fagerlund | |
| 1388 | 132 | Nick Fagerlund | ### #6026 - security file should support inline comments |
| 1389 | 132 | Nick Fagerlund | |
| 1390 | 132 | Nick Fagerlund | Auth.conf, namespaceauth.conf and fileserver.conf were not supporting |
| 1391 | 132 | Nick Fagerlund | trailing inlined comments. |
| 1392 | 132 | Nick Fagerlund | Also this commit fixes some indentation and error management. |
| 1393 | 1 | ||
| 1394 | 117 | Michael Stahnke | |
| 1395 | 132 | Nick Fagerlund | ### Suggest where to start troubleshooting SSL error message |
| 1396 | 132 | Nick Fagerlund | |
| 1397 | 132 | Nick Fagerlund | Much like the infamous "hostname was not match" error message, there is |
| 1398 | 132 | Nick Fagerlund | another SSL error that people run into that is not clear how to |
| 1399 | 132 | Nick Fagerlund | troubleshoot. |
| 1400 | 132 | Nick Fagerlund | |
| 1401 | 132 | Nick Fagerlund | err: Could not send report: SSL_connect returned=1 errno=0 |
| 1402 | 132 | Nick Fagerlund | state=SSLv3 read server certificate B: certificate verify failed. |
| 1403 | 132 | Nick Fagerlund | |
| 1404 | 132 | Nick Fagerlund | As far as I can tell this only ever happens when the clock is off on the |
| 1405 | 132 | Nick Fagerlund | master or client. People seem to think it will happen other times, but |
| 1406 | 132 | Nick Fagerlund | I have not been able to reproduce it other ways - missing private key, |
| 1407 | 132 | Nick Fagerlund | revoked cert, offline CA all have their own errors. I googled around |
| 1408 | 132 | Nick Fagerlund | and the only thing I've seen for this error in relation to puppet is the |
| 1409 | 132 | Nick Fagerlund | time sync problem. |
| 1410 | 132 | Nick Fagerlund | |
| 1411 | 132 | Nick Fagerlund | So the error message text just has some additional info to suggest you |
| 1412 | 132 | Nick Fagerlund | check your clocks. |
| 1413 | 132 | Nick Fagerlund | |
| 1414 | 132 | Nick Fagerlund | |
| 1415 | 132 | Nick Fagerlund | ### #8596 Detect resource alias conflicts when titles do not match |
| 1416 | 132 | Nick Fagerlund | |
| 1417 | 132 | Nick Fagerlund | The introduction of composite namevars caused the resource title used in |
| 1418 | 132 | Nick Fagerlund | resource aliases to be set as an array, even when the resource only had one |
| 1419 | 132 | Nick Fagerlund | namevar. This would fail to conflict with non-alias entries in the resource |
| 1420 | 132 | Nick Fagerlund | table, which used a string for the title, even though the single element array |
| 1421 | 132 | Nick Fagerlund | contained the same string. |
| 1422 | 132 | Nick Fagerlund | |
| 1423 | 132 | Nick Fagerlund | Now, we flatten the key used in the resource table, so that single element |
| 1424 | 132 | Nick Fagerlund | arrays are represented as strings, and will properly conflict with resource |
| 1425 | 132 | Nick Fagerlund | titles. |
| 1426 | 132 | Nick Fagerlund | |
| 1427 | 132 | Nick Fagerlund | |
| 1428 | 132 | Nick Fagerlund | ### maint: Adding logging to include environment when source fails |
| 1429 | 132 | Nick Fagerlund | |
| 1430 | 132 | Nick Fagerlund | ### maint: Add debug logging when the master receives a report |
| 1431 | 132 | Nick Fagerlund | |
| 1432 | 132 | Nick Fagerlund | It's always bothered me that when running puppet inspect (or any |
| 1433 | 132 | Nick Fagerlund | application that produces a report really) the master gives no |
| 1434 | 132 | Nick Fagerlund | indication that anything happened when it processes the report. |
| 1435 | 132 | Nick Fagerlund | |
| 1436 | 132 | Nick Fagerlund | ### #6789 Port SSL::CertificateAuthority::Interface to a Face |
| 1437 | 132 | Nick Fagerlund | |
| 1438 | 132 | Nick Fagerlund | The Puppet::SSL::CertificateAuthority::Interface class was an early prototype |
| 1439 | 132 | Nick Fagerlund | heading toward building out a system like Faces. Now that we have done that, |
| 1440 | 132 | Nick Fagerlund | this changeset ports the early code to a new face. |
| 1441 | 132 | Nick Fagerlund | |
| 1442 | 132 | Nick Fagerlund | ### #8401 Document that --detailed-exitcodes is a bitmask |
| 1443 | 132 | Nick Fagerlund | |
| 1444 | 132 | Nick Fagerlund | The agent/apply/device man pages mentioned the 2 and 4 exit codes, but didn't |
| 1445 | 132 | Nick Fagerlund | mention that they can combine to make 6 if there are both changes and failures. |
| 1446 | 132 | Nick Fagerlund | This commit adds the missing information to all three man pages. |
| 1447 | 132 | Nick Fagerlund | |
| 1448 | 132 | Nick Fagerlund | ### #4142 Fix module check not to fail when empty metadata.json |
| 1449 | 1 | ||
| 1450 | 132 | Nick Fagerlund | Even though the puppet module tool was fixed to generate the required |
| 1451 | 132 | Nick Fagerlund | metadata attributes when it packages modules, it still creates an empty |
| 1452 | 132 | Nick Fagerlund | metadata.json file that gets checked into everybody's module repos. |
| 1453 | 1 | This causes the module to be unusable straight from a git clone since |
|
| 1454 | 132 | Nick Fagerlund | puppet was requiring all the required metadata attributes just with the |
| 1455 | 1 | presence of that file, and resulting in the error: |
|
| 1456 | 132 | Nick Fagerlund | |
| 1457 | 132 | Nick Fagerlund | No source module metadata provided for mcollective at |
| 1458 | 132 | Nick Fagerlund | |
| 1459 | 1 | This change makes it so that if you have an empty metadata.json (like |
|
| 1460 | 132 | Nick Fagerlund | the moduletool generates), puppet doesn't consider it to have metadata. |
| 1461 | 132 | Nick Fagerlund | If you have ANY metadata attributes in that file, it will still check to |
| 1462 | 132 | Nick Fagerlund | make sure all the required attributes are present. |
| 1463 | 132 | Nick Fagerlund | |
| 1464 | 132 | Nick Fagerlund | The work around up to this point has just been to delete the |
| 1465 | 132 | Nick Fagerlund | metadata.json file in git cloned modules. |
| 1466 | 1 | ||
| 1467 | 132 | Nick Fagerlund | This also fixed the tests around this to actually run, since previously |
| 1468 | 132 | Nick Fagerlund | the tests depended on the a json feature, which we didn't have. We do, |
| 1469 | 1 | however, have a pson feature. |
|
| 1470 | 132 | Nick Fagerlund | |
| 1471 | 132 | Nick Fagerlund | ### #8147 Change default reporturl to match newer Dashboard versions |
| 1472 | 132 | Nick Fagerlund | |
| 1473 | 132 | Nick Fagerlund | Puppet's default reporturl setting was http://localhost:3000/reports, which has |
| 1474 | 132 | Nick Fagerlund | been deprecated in Puppet Dashboard in favor of |
| 1475 | 1 | http://localhost:3000/reports/upload. As Dashboard is the first-class |
|
| 1476 | 132 | Nick Fagerlund | destination for the http report processor, this commit changes Puppet's default |
| 1477 | 132 | Nick Fagerlund | to match what current versions of Dashboard expect. |
| 1478 | 132 | Nick Fagerlund | |
| 1479 | 132 | Nick Fagerlund | ### #6857 Password disclosure when changing a user's password |
| 1480 | 1 | ||
| 1481 | 132 | Nick Fagerlund | Make the should_to_s and is_to_s functions to return a form of 'redacted'. |
| 1482 | 132 | Nick Fagerlund | |
| 1483 | 1 | Rather than send the password hash to system logs in cases of failure or |
|
| 1484 | 132 | Nick Fagerlund | running in --noop mode, just state whether it's the new or old hash. We're |
| 1485 | 132 | Nick Fagerlund | already doing this with password changes that work, so this just brings it |
| 1486 | 132 | Nick Fagerlund | inline with those, albeit via a slightly different pair of methods. |
| 1487 | 132 | Nick Fagerlund | |
| 1488 | 132 | Nick Fagerlund | ### Additional Notes |
| 1489 | 132 | Nick Fagerlund | |
| 1490 | 151 | Nick Fagerlund | * Several odd behaviors seen in 2.7.2rc2 should now meet expectations. |
| 1491 | 1 | * 8ec0804 #8301 Red Hat spec file for 2.7.2rc1 won't work |
|
| 1492 | 132 | Nick Fagerlund | * 2263be6 #5108 Update service type docs for new hasstatus default |
| 1493 | 132 | Nick Fagerlund | |
| 1494 | 151 | Nick Fagerlund | This merges up all changes in the 2.6.9 release that were unable to be merged into 2.7.{0,1} due to 2.7 being frozen in release candidate state. |
| 1495 | 132 | Nick Fagerlund | |
| 1496 | 132 | Nick Fagerlund | Highlights include: |
| 1497 | 132 | Nick Fagerlund | |
| 1498 | 132 | Nick Fagerlund | * 99330fa (#7224) Reword 'hostname was not match' error message |
| 1499 | 132 | Nick Fagerlund | * 1d867b0 (#7224) Add a helper to Puppet::SSL::Certificate to retrieve alternate names |
| 1500 | 1 | * db1a392 (#7506) Organize READMEs; specify supported Ruby versions in README.md |
|
| 1501 | 132 | Nick Fagerlund | * 98ba407 (#7127) Stop puppet if a prerun command fails |
| 1502 | 132 | Nick Fagerlund | * caca469 (#4416) Ensure types are providified after reloading |
| 1503 | 132 | Nick Fagerlund | * 413b136 (#4416) Always remove old provider before recreating it |
| 1504 | 132 | Nick Fagerlund | * 98f58ce (#2128) Add WARNING for node_name_{fact,value} descriptions |
| 1505 | 132 | Nick Fagerlund | * 3f0dbb5 (#650) Allow symlinks for configuration directories |
| 1506 | 132 | Nick Fagerlund | * 1c70f0c (#2128) Add support for setting node name based on a fact |
| 1507 | 117 | Michael Stahnke | * c629958 (#2128) Get facts before retrieving catalog |
| 1508 | 117 | Michael Stahnke | * 8eb0e16 (#2728) Add diff output for changes made by Augeas provider |
| 1509 | 118 | Michael Stahnke | * c02126d (#5966) Add support for hostname regular expressions in auth.conf |
| 1510 | 117 | Michael Stahnke | * 75e2764 (#5318) Always notice changes to manifests when compiling. |
| 1511 | 117 | Michael Stahnke | * 0bcbca5 maint: Dedup the loadpath so we don't have to walk it multiple times |
| 1512 | 1 | * 89d447b (#6962) Add "arguments" method to help API |
|
| 1513 | 1 | * 8eea3f5 Added the vcsrepo type and providers to the core |
|
| 1514 | 1 | * 107b38a maint: Fix pacman provider to work with Ruby 1.9 |
|
| 1515 | 117 | Michael Stahnke | * 0b8ebac (#7300) Fix instances method of mount provider |
| 1516 | 113 | Michael Stahnke | |
| 1517 | 121 | Michael Stahnke | # 2.7.2 |
| 1518 | 121 | Michael Stahnke | |
| 1519 | 121 | Michael Stahnke | 2.7.2 was slain in the Thunderdome by 2.7.3. |
| 1520 | 121 | Michael Stahnke | |
| 1521 | 151 | Nick Fagerlund | # 2.7.1 |
| 1522 | 109 | Michael Stahnke | |
| 1523 | 151 | Nick Fagerlund | 2.7.1 is a bug fix release in the 2.7.x branch. |
| 1524 | 109 | Michael Stahnke | |
| 1525 | 151 | Nick Fagerlund | Fixing bug #8048. This made users of Puppet as a gem unable to install Puppet 2.7.0 release if gem was configured to use rdoc, as rdoc failed to parse on one file. |
| 1526 | 142 | Nick Fagerlund | |
| 1527 | 151 | Nick Fagerlund | This issue only impacted users of Puppet as a gem. |
| 1528 | 151 | Nick Fagerlund | |
| 1529 | 111 | Michael Stahnke | # 2.7.0 |
| 1530 | 111 | Michael Stahnke | |
| 1531 | 111 | Michael Stahnke | |
| 1532 | 111 | Michael Stahnke | 2.7.0 is a new feature release of Puppet. |
| 1533 | 111 | Michael Stahnke | |
| 1534 | 111 | Michael Stahnke | Notable Features and Bug Fixes |
| 1535 | 111 | Michael Stahnke | ------------------------------ |
| 1536 | 111 | Michael Stahnke | |
| 1537 | 111 | Michael Stahnke | ### Apache License |
| 1538 | 1 | ||
| 1539 | 151 | Nick Fagerlund | Puppet is now released under the Apache 2.0 license. More info is available [here](http://docs.puppetlabs.com/guides/faq#change-to-apache-license). |
| 1540 | 111 | Michael Stahnke | |
| 1541 | 109 | Michael Stahnke | ### Ruby 1.9 Support |
| 1542 | 109 | Michael Stahnke | |
| 1543 | 109 | Michael Stahnke | There are some known issues with the 2.7.0 release, but we now support Ruby 1.9.2 and higher, and will be aggressively fixing bugs under Ruby 1.9. |
| 1544 | 109 | Michael Stahnke | |
| 1545 | 109 | Michael Stahnke | ### Deterministic Catalog Application |
| 1546 | 109 | Michael Stahnke | |
| 1547 | 1 | Previously, Puppet didn't guarantee that it would apply unrelated resources in any particular order. This meant that if you forgot to specify some important `before` or `require` relationship, a single catalog might work fine on eight nodes and then fail mysteriously on the ninth and tenth. This could be frustrating! Now it's gone: Puppet will make sure that the same catalog will always be applied in the same order on every machine, and it'll either succeed reliably or fail reliably. (This change will also be appearing in the final 2.6.x releases.) |
|
| 1548 | 121 | Michael Stahnke | |
| 1549 | 108 | Michael Stahnke | (See issue #6911.) |
| 1550 | 108 | Michael Stahnke | |
| 1551 | 108 | Michael Stahnke | ### Manage Network Devices |
| 1552 | 108 | Michael Stahnke | |
| 1553 | 151 | Nick Fagerlund | Based on an open-space discussion that happened at PuppetCamp EU in May, 2010, Brice Figureau has implemented the start of a network management solution. |
| 1554 | 108 | Michael Stahnke | |
| 1555 | 101 | Michael Stahnke | Currently this initial solution has a base network type/provider and providers for managing Cisco interfaces and vlans. The puppet provider connects to remote switches and routers through either ssh or telnet. |
| 1556 | 105 | Michael Stahnke | |
| 1557 | 105 | Michael Stahnke | To manage an interface: |
| 1558 | 101 | Michael Stahnke | |
| 1559 | 103 | Michael Stahnke | interface { "FastEthernet 0/1": |
| 1560 | 101 | Michael Stahnke | device_url => "ssh://user:pass@cisco2960.domain.com/", |
| 1561 | 103 | Michael Stahnke | mode => trunk, |
| 1562 | 103 | Michael Stahnke | encapsulation => dot1q, |
| 1563 | 98 | Michael Stahnke | trunk_allowed_vlans => "1-99,200,253", |
| 1564 | 103 | Michael Stahnke | description => "to back bone router" |
| 1565 | 1 | } |
|
| 1566 | 103 | Michael Stahnke | |
| 1567 | 1 | or |
|
| 1568 | 103 | Michael Stahnke | |
| 1569 | 1 | interface { "Vlan 1": |
|
| 1570 | 103 | Michael Stahnke | device_url => "ssh://user:pass@router.domain.com/", |
| 1571 | 1 | description => "internal net", |
|
| 1572 | 103 | Michael Stahnke | ipaddress => [ "192.168.0.1/24", "fe08::/128 link-local"] |
| 1573 | 1 | } |
|
| 1574 | 103 | Michael Stahnke | |
| 1575 | 1 | And to manage vlans: |
|
| 1576 | 1 | ||
| 1577 | 103 | Michael Stahnke | vlan { "99": |
| 1578 | 1 | description => "management", |
|
| 1579 | 103 | Michael Stahnke | device_url => "ssh://user:pass@cisco2960.domain.com/", |
| 1580 | 1 | } |
|
| 1581 | 103 | Michael Stahnke | |
| 1582 | 1 | A current limitation is that it isn't possible to have 2 switches with the same interface name. |
|
| 1583 | 103 | Michael Stahnke | |
| 1584 | 1 | ### Dependency cycle reporting |
|
| 1585 | 103 | Michael Stahnke | |
| 1586 | 103 | Michael Stahnke | We have significantly improved dependency cycle reporting so that the cycle is clearly identifiable, and will produce graphs of such cycles for easier debugging. Error messages will now appear as follows: |
| 1587 | 103 | Michael Stahnke | |
| 1588 | 1 | Found 2 dependency cycles: (Notify[a] => Notify[b] => Notify[a]) (Notify[mp2-2] => Notify[mp2] => Notify[mp2-2]) |
|
| 1589 | 103 | Michael Stahnke | |
| 1590 | 103 | Michael Stahnke | ### Man Pages |
| 1591 | 103 | Michael Stahnke | |
| 1592 | 90 | Nigel Kersten | We've spiffed up our man pages. Static man files are in the `man/` directory of the source, and should be installed for you if you installed Puppet with your OS's packaging system. We've also introduced a `puppet man` subcommand that can render man pages on the fly using [ronn](https://github.com/rtomayko/ronn/). (We recommend running `gem install ronn` before using it; if it isn't installed, puppet man will just print a human-readable version of the man page source text.) |
| 1593 | 1 | ||
| 1594 | 90 | Nigel Kersten | ### Deprecations |
| 1595 | 103 | Michael Stahnke | |
| 1596 | 103 | Michael Stahnke | We're starting the hourglass on a few older features: |
| 1597 | 103 | Michael Stahnke | |
| 1598 | 103 | Michael Stahnke | * **'puppet' as a synonym for 'puppet apply'** --- Starting today, running `puppet my-manifest.pp` will issue a warning; you should start using `puppet apply` directly instead. Support for implicit invocation of puppet apply will be dropped in Puppet 2.8. |
| 1599 | 90 | Nigel Kersten | * **Dynamic scope** --- We've started issuing warnings when variables or resource defaults are found via dynamic lookup. [There's more info and explanation in a guide on the docs site](http://docs.puppetlabs.com/guides/scope_and_puppet.html), but the short version is that you should start referencing variables with their qualified names instead of counting on dynamic scope. We hope to drop support for dynamic scope in Puppet 2.8. (Issue #5027) |
| 1600 | 103 | Michael Stahnke | * **No more `--parseonly` option** --- This one's already gone, because we used Faces to build a drop-in replacement: use `puppet parser validate [<manifest>] [<manifest> ...]` instead. |
| 1601 | 103 | Michael Stahnke | |
| 1602 | 103 | Michael Stahnke | ### Notice Changed Manifests on the First Try |
| 1603 | 103 | Michael Stahnke | |
| 1604 | 103 | Michael Stahnke | During the 2.6.x series, puppet agent would sometimes require two runs to receive new configurations when puppet master was running under Passenger. This persistent bug has been dealt with. (This change will also be appearing in the final 2.6.x releases.) |
| 1605 | 91 | James Turnbull | |
| 1606 | 91 | James Turnbull | ### Static Compiler |
| 1607 | 103 | Michael Stahnke | |
| 1608 | 151 | Nick Fagerlund | We've introduced `static_compiler`, a new `catalog_terminus` which can be configured in puppet.conf on your puppet master. (See issue #6873.) The static compiler works by wrapping the default compiler terminus and replacing every `puppet:///` URL in the catalog it returns with an MD5 reference to a filebucket object; this saves a lot of describe calls while the agent is running, and it ensures that the agent won't grab inconsistent file versions if one of the source files changes while it's running. |
| 1609 | 103 | Michael Stahnke | |
| 1610 | 103 | Michael Stahnke | There are some known issues that keep it from being used as-is, yet --- you have to manually sync the agent's filebucket to that of the master, the compiler's behavior around recursion hasn't been rigorously tested, we haven't specified how it should behave if your puppet master is serving files through a load balancer, and files are read into memory rather than being streamed. However, this new approach has the potential to drastically speed up file-heavy Puppet runs, and if your site serves a lot of files and you have some lab time to test it, it could be worth a look. |
| 1611 | 91 | James Turnbull | |
| 1612 | 91 | James Turnbull | ### Improved APIs |
| 1613 | 103 | Michael Stahnke | |
| 1614 | 91 | James Turnbull | You can now [manage and sign certificates via Puppet's REST API](http://docs.puppetlabs.com/guides/rest_api.html#certificate-status), which means that in the near future you'll be able to check off signing requests for new nodes right from Puppet Dashboard. (And someone can now easily write an iPhone or Android app to fetch and handle CSRs, hint hint. :) ) |
| 1615 | 103 | Michael Stahnke | |
| 1616 | 1 | ### Services Are Assumed to Have Status Commands |
|
| 1617 | 103 | Michael Stahnke | |
| 1618 | 91 | James Turnbull | Per issue #5108, the service type's `hasstatus` attribute now defaults to true, which means init scripts are expected to have working status commands. **This is a potentially incompatible change.** If you use an OS where broken status commands are still the norm, you may need to add the following resource default to your `site.pp` manifest: |
| 1619 | 119 | Nick Fagerlund | |
| 1620 | 103 | Michael Stahnke | Service { |
| 1621 | 91 | James Turnbull | hasstatus => false, |
| 1622 | 103 | Michael Stahnke | } |
| 1623 | 91 | James Turnbull | |
| 1624 | 151 | Nick Fagerlund | This will effectively restore the old behavior. |
| 1625 | 90 | Nigel Kersten | |
| 1626 | 103 | Michael Stahnke | ### Default ACL improvements |
| 1627 | 90 | Nigel Kersten | |
| 1628 | 90 | Nigel Kersten | We have adjusted the default ACL in the puppet master to allow a node to query configuration information about itself from the internal or external node classifier. |
| 1629 | 103 | Michael Stahnke | |
| 1630 | 1 | ### pkgutil Provider |
|
| 1631 | 90 | Nigel Kersten | |
| 1632 | 151 | Nick Fagerlund | `pkgutil` provider support has been significantly improved, resolving issue #4258. |
| 1633 | 90 | Nigel Kersten | |
| 1634 | 1 | ||
| 1635 | 103 | Michael Stahnke | ### Puppet Faces |
| 1636 | 90 | Nigel Kersten | |
| 1637 | 151 | Nick Fagerlund | Faces is a new API for creating new Puppet subcommands. Faces dramatically simplifies the process of extending Puppet by building new capabilities, including additional nouns and verbs that can be called by issuing commands from your command line interface. |
| 1638 | 112 | Nick Fagerlund | |
| 1639 | 1 | We're particularly excited about Faces and the opportunities it offers for our user base. |
|
| 1640 | 1 | You can see how easy it is to create a subcommand and action with our [new manifest validator](https://github.com/puppetlabs/puppet/blob/master/lib/puppet/face/parser.rb) |
|
| 1641 | 112 | Nick Fagerlund | |
| 1642 | 1 | This provides a new subcommand and a single action as follows: |
|
| 1643 | 112 | Nick Fagerlund | |
| 1644 | 112 | Nick Fagerlund | `puppet parser validate <mymanifest.pp>` |
| 1645 | 112 | Nick Fagerlund | |
| 1646 | 112 | Nick Fagerlund | It's also easy to create new actions for existing subcommands, which is a great way to extend the Puppet model, and it's also become significantly easier to access Puppet subsystems as shown by the [configurer subcommand](https://github.com/puppetlabs/puppet/blob/master/lib/puppet/face/configurer.rb): |
| 1647 | 112 | Nick Fagerlund | |
| 1648 | 112 | Nick Fagerlund | This shows how easy it is to access these subcommands and actions in Ruby code: |
| 1649 | 112 | Nick Fagerlund | |
| 1650 | 103 | Michael Stahnke | facts = Puppet::Face[:facts, '0.0.1'].find(certname) |
| 1651 | 103 | Michael Stahnke | catalog = Puppet::Face[:catalog, '0.0.1'].download(certname, facts) |
| 1652 | 103 | Michael Stahnke | report = Puppet::Face[:catalog, '0.0.1'].apply(catalog) |
| 1653 | 103 | Michael Stahnke | |
| 1654 | 103 | Michael Stahnke | That small amount of code offers this on the command line: |
| 1655 | 103 | Michael Stahnke | |
| 1656 | 103 | Michael Stahnke | $ puppet configurer synchronize |
| 1657 | 103 | Michael Stahnke | |
| 1658 | 103 | Michael Stahnke | which accomplishes basically the same functionality as 'puppet agent --test', but is much simpler to rearrange and modify for your own needs. |
| 1659 | 90 | Nigel Kersten | |
| 1660 | 90 | Nigel Kersten | We look forward to seeing what the community comes up with now that it is so easy to interact with and extend the underlying model. |
| 1661 | 90 | Nigel Kersten | |
| 1662 | 90 | Nigel Kersten | |
| 1663 | 151 | Nick Fagerlund | To get a look at the new subcommands, start by running `puppet help`. To see the API in action, look at the source for the [secret_agent](https://github.com/puppetlabs/puppet/blob/2.7.x/lib/puppet/face/secret_agent.rb) and [parser](https://github.com/puppetlabs/puppet/blob/2.7.x/lib/puppet/face/parser.rb) faces. |
| 1664 | 90 | Nigel Kersten | |
| 1665 | 90 | Nigel Kersten | ### Certificate API |
| 1666 | 90 | Nigel Kersten | |
| 1667 | 90 | Nigel Kersten | Read or alter the status of a certificate or pending certificate request. This endpoint is roughly equivalent to the puppet cert command; rather than returning complete certificates, signing requests, or revocation lists, this endpoint returns information about the various certificates (and potential and former certificates) known to the CA. |
| 1668 | 94 | James Turnbull | |
| 1669 | 94 | James Turnbull | GET /{environment}/certificate_status/{certname} |
| 1670 | 94 | James Turnbull | |
| 1671 | 94 | James Turnbull | Retrieve a PSON hash containing information about the specified host’s certificate. Similar to puppet cert --list {certname}. |
| 1672 | 94 | James Turnbull | |
| 1673 | 94 | James Turnbull | GET /{environment}/certificate_statuses/no_key |
| 1674 | 94 | James Turnbull | |
| 1675 | 94 | James Turnbull | Retrieve a list of PSON hashes containing information about all known certificates. Similar to puppet cert --list --all. |
| 1676 | 94 | James Turnbull | |
| 1677 | 94 | James Turnbull | PUT /{environment}/certificate_status/{certname} |
| 1678 | 94 | James Turnbull | |
| 1679 | 94 | James Turnbull | Change the status of the specified host’s certificate. The desired state is sent in the body of the PUT request as a one-item PSON hash; the two allowed complete hashes are {"desired_state":"signed"} (for signing a certificate signing request; similar to puppet cert --sign) and {"desired_state":"revoked"} (for revoking a certificate; similar to puppet cert --revoke); see examples below for details. |
| 1680 | 94 | James Turnbull | |
| 1681 | 94 | James Turnbull | When revoking certificates, you may wish to use a DELETE request instead, which will also clean up other info about the host. |
| 1682 | 103 | Michael Stahnke | |
| 1683 | 94 | James Turnbull | DELETE /{environment}/certificate_status/{hostname} |
| 1684 | 94 | James Turnbull | |
| 1685 | 94 | James Turnbull | Cause the certificate authority to discard all information regarding a host (including any certificates, certificate requests, and keys), and revoke the certificate if one is present. Similar to puppet cert --clean. |
| 1686 | 103 | Michael Stahnke | |
| 1687 | 94 | James Turnbull | Examples include: |
| 1688 | 94 | James Turnbull | |
| 1689 | 94 | James Turnbull | curl -k -H "Accept: pson" https://puppetmaster:8140/production/certificate_status/testnode.localdomain |
| 1690 | 103 | Michael Stahnke | curl -k -H "Accept: pson" https://puppetmaster:8140/production/certificate_statuses/all |
| 1691 | 90 | Nigel Kersten | curl -k -X PUT -H "Content-Type: text/pson" --data '{"desired_state":"signed"}' https://puppetmaster:8140/production/certificate_status/client.network.address |
| 1692 | 1 | curl -k -X PUT -H "Content-Type: text/pson" --data '{"desired_state":"revoked"}' https://puppetmaster:8140/production/certificate_status/client.network.address |
|
| 1693 | 1 | curl -k -X DELETE -H "Accept: pson" https://puppetmaster:8140/production/certificate_status/client.network.address |
|
| 1694 | 1 | ||
| 1695 | 157 | Matthaus Litteken | # 2.6.13 |
| 1696 | 1 | ||
| 1697 | 157 | Matthaus Litteken | 2.6.13 Release Notes |
| 1698 | 1 | === |
|
| 1699 | 1 | Fix #10739 Provide default subjectAltNames while bootstrapping master |
|
| 1700 | 151 | Nick Fagerlund | |
| 1701 | 139 | Nick Fagerlund | Prior to #2848 (CVE-2011-3872), if Puppet[:certdnsnames] was not set, |
| 1702 | 139 | Nick Fagerlund | puppet would add default subjectAltNames to any non-CA cert it signed, |
| 1703 | 149 | Matthaus Litteken | including agent certs. The subjectAltNames were of the form: |
| 1704 | 151 | Nick Fagerlund | |
| 1705 | 149 | Matthaus Litteken | DNS:puppet, DNS:<fqdn>, DNS:puppet.<domain> |
| 1706 | 151 | Nick Fagerlund | |
| 1707 | 149 | Matthaus Litteken | The fix for #2848, prevented subjectAltNames from ever being |
| 1708 | 149 | Matthaus Litteken | implicitly added at signing time. But during this change, the default |
| 1709 | 149 | Matthaus Litteken | subjectAltNames behavior was accidentally removed. |
| 1710 | 151 | Nick Fagerlund | |
| 1711 | 149 | Matthaus Litteken | This commit restores the 'defaulting' behavior that existed |
| 1712 | 149 | Matthaus Litteken | previously, but only when bootstrapping the initial master. |
| 1713 | 149 | Matthaus Litteken | Additionally, default subjectAltNames are only ever added when |
| 1714 | 149 | Matthaus Litteken | generating the master's certificate signing request, not at signing |
| 1715 | 149 | Matthaus Litteken | time. This is important, because it ensures all subjectAltNames |
| 1716 | 149 | Matthaus Litteken | originate from the CSR and are subject to our internal signing policy. |
| 1717 | 151 | Nick Fagerlund | |
| 1718 | 149 | Matthaus Litteken | The code now requires that all of the following be true in order to |
| 1719 | 149 | Matthaus Litteken | add default subjectAltNames to the CSR: |
| 1720 | 151 | Nick Fagerlund | |
| 1721 | 149 | Matthaus Litteken | 1. We are a CA and master |
| 1722 | 149 | Matthaus Litteken | 2. We're signing the master's cert, not self-signing the CA |
| 1723 | 149 | Matthaus Litteken | 3. The CSR is for the current host |
| 1724 | 149 | Matthaus Litteken | 4. No subjectAltNames have been specified, e.g. Puppet[:dns_alt_names] |
| 1725 | 149 | Matthaus Litteken | 5. The master can resolve its fqdn |
| 1726 | 151 | Nick Fagerlund | |
| 1727 | 149 | Matthaus Litteken | These should only ever be true when bootstrapping the initial |
| 1728 | 149 | Matthaus Litteken | master. In particular, it should never be true for the CA's |
| 1729 | 149 | Matthaus Litteken | self-signed cert, for remote agents, or for servers that are either |
| 1730 | 149 | Matthaus Litteken | masters or CAs, but not both. |
| 1731 | 151 | Nick Fagerlund | |
| 1732 | 149 | Matthaus Litteken | The fqdn requirement existed previously, and so the same behavior has |
| 1733 | 149 | Matthaus Litteken | been restored. |
| 1734 | 151 | Nick Fagerlund | |
| 1735 | 149 | Matthaus Litteken | Note if Puppet[:dns_alt_names] are specified when bootstrapping the |
| 1736 | 149 | Matthaus Litteken | master, then we do not merge the default options -- it's either one of |
| 1737 | 149 | Matthaus Litteken | the other, but not both. |
| 1738 | 149 | Matthaus Litteken | |
| 1739 | 149 | Matthaus Litteken | Fix #10289 |
| 1740 | 149 | Matthaus Litteken | |
| 1741 | 149 | Matthaus Litteken | Add an ext script to upload facts to inventory server |
| 1742 | 151 | Nick Fagerlund | |
| 1743 | 149 | Matthaus Litteken | This script, ext/upload_facts, will read facts from the master's yaml |
| 1744 | 150 | Matthaus Litteken | dir and save them to the facts terminus. The intended use of this is |
| 1745 | 150 | Matthaus Litteken | when the facts terminus is set to inventory_service, to be run |
| 1746 | 150 | Matthaus Litteken | periodically via cron to ensure facts are uploaded even if the |
| 1747 | 149 | Matthaus Litteken | inventory_service becomes temporarily unavailable. It supports a |
| 1748 | 149 | Matthaus Litteken | --minutes option, which will limit the facts uploaded to only those |
| 1749 | 149 | Matthaus Litteken | added in the last n minutes. |
| 1750 | 149 | Matthaus Litteken | |
| 1751 | 149 | Matthaus Litteken | Add a safe alternative to REST for inventory service |
| 1752 | 151 | Nick Fagerlund | |
| 1753 | 149 | Matthaus Litteken | With the default implementation of the inventory service, with a |
| 1754 | 1 | terminus REST and cache YAML, a failed upload to the inventory service |
|
| 1755 | 149 | Matthaus Litteken | would cause compilation to fail. This means the inventory service was a |
| 1756 | 150 | Matthaus Litteken | single point of failure for the entire Puppet infrastructure. Now, we |
| 1757 | 149 | Matthaus Litteken | introduce an inventory_service terminus which can be used in place of |
| 1758 | 149 | Matthaus Litteken | the REST terminus, and will absorb failures, allowing compilation to |
| 1759 | 149 | Matthaus Litteken | continue. |
| 1760 | 149 | Matthaus Litteken | |
| 1761 | 149 | Matthaus Litteken | |
| 1762 | 149 | Matthaus Litteken | |
| 1763 | 157 | Matthaus Litteken | 2.6.13 Changelog |
| 1764 | 149 | Matthaus Litteken | === |
| 1765 | 149 | Matthaus Litteken | * e4ee794 (#10739) Provide default subjectAltNames while bootstrapping master |
| 1766 | 149 | Matthaus Litteken | * 9dfd011 (#5617) Puppet queue logging |
| 1767 | 149 | Matthaus Litteken | * a91cfa1 maint: Fix failing spec on old version of rspec |
| 1768 | 149 | Matthaus Litteken | * aa2a762 (#10289) Add an ext script to upload facts to inventory server |
| 1769 | 149 | Matthaus Litteken | * 5129d38 (#10289) Add a safe alternative to REST for inventory service |
| 1770 | 149 | Matthaus Litteken | * 7514d32 missing includes in network XML-RPC handlers |
| 1771 | 149 | Matthaus Litteken | * 397a506 (#10244) Restore Mongrel XMLRPC functionality |
| 1772 | 149 | Matthaus Litteken | * 8d86e5a (9547) Minor mods to acceptance tests |
| 1773 | 149 | Matthaus Litteken | * 2bf6721 Reset indirector state after configurer tests. |
| 1774 | 149 | Matthaus Litteken | * bb224dd (#8770) Don't fail to set supplementary groups when changing user to root |
| 1775 | 149 | Matthaus Litteken | * 2a0de12 (#8770) Always fully drop privileges when changing user |
| 1776 | 149 | Matthaus Litteken | * 00c4b25 (#8662) Migrate suidmanager test case to rspec |
| 1777 | 149 | Matthaus Litteken | * d7c9c76 (#8740) Do not enumerate files in the root directory. |
| 1778 | 149 | Matthaus Litteken | * 0e00473 (#3553) Explain that cron resources require time attributes |
| 1779 | 149 | Matthaus Litteken | * 769d432 (#8302) Improve documentation of exec providers |
| 1780 | 149 | Matthaus Litteken | * c209f62 Add document outlining preferred contribution methods |
| 1781 | 149 | Matthaus Litteken | * fb2ffd6 (#8596) Detect resource alias conflicts when titles do not match |
| 1782 | 149 | Matthaus Litteken | * 89c021c (#8418) Fix inspect app to have the correct run_mode |
| 1783 | 149 | Matthaus Litteken | * 3165364 maint: Adding logging to include environment when source fails |
| 1784 | 149 | Matthaus Litteken | * f484851 maint: Add debug logging when the master receives a report |
| 1785 | 149 | Matthaus Litteken | * e639868 Confine password disclosure acceptance test to hosts with required libraries |
| 1786 | 149 | Matthaus Litteken | * a109c90 (maint) Cleanup and strengthen acceptance tests |
| 1787 | 149 | Matthaus Litteken | * b268fb3 (#7144) Update Settings#writesub to convert mode to Fixnum |
| 1788 | 149 | Matthaus Litteken | * 4a2f22c (maint) Fix platform dection for RHEL |
| 1789 | 149 | Matthaus Litteken | * 111a4b5 (#6857) Password disclosure when changing a user's password |
| 1790 | 139 | Nick Fagerlund | |
| 1791 | 139 | Nick Fagerlund | # 2.6.12 |
| 1792 | 139 | Nick Fagerlund | |
| 1793 | 151 | Nick Fagerlund | This is a security release in the 2.6.x branch. |
| 1794 | 139 | Nick Fagerlund | |
| 1795 | 139 | Nick Fagerlund | ## Security Fixes |
| 1796 | 139 | Nick Fagerlund | |
| 1797 | 139 | Nick Fagerlund | ### CVE-2011-3872 (AltNames vulnerability) |
| 1798 | 139 | Nick Fagerlund | |
| 1799 | 139 | Nick Fagerlund | [(Full vulnerability and mitigation details)][cve20113872] |
| 1800 | 139 | Nick Fagerlund | |
| 1801 | 139 | Nick Fagerlund | <!-- [cve20113872]: http://puppetlabs.com/security/cve/cve-2011-3872/ --> |
| 1802 | 139 | Nick Fagerlund | <!-- This link reference already exists under 2.7.6. Uncomment it if re-posting these notes elsewhere. --> |
| 1803 | 139 | Nick Fagerlund | |
| 1804 | 139 | Nick Fagerlund | **This is a major security vulnerability which must be manually remediated;** |
| 1805 | 139 | Nick Fagerlund | upgrading Puppet will not fully protect a site from this vulnerability. |
| 1806 | 139 | Nick Fagerlund | |
| 1807 | 139 | Nick Fagerlund | A bug in all previous versions causes Puppet to insert the puppet master’s DNS |
| 1808 | 139 | Nick Fagerlund | alt names ("certdnsnames" in puppet.conf) into the X.509 Subject Alternative |
| 1809 | 139 | Nick Fagerlund | Name field of all certificates, rather than just the puppet master’s |
| 1810 | 139 | Nick Fagerlund | certificate. |
| 1811 | 139 | Nick Fagerlund | |
| 1812 | 139 | Nick Fagerlund | Since the puppet agent daemon can use the Subject Alternative Name field to |
| 1813 | 139 | Nick Fagerlund | identify its puppet master, your site may contain agent certificates that can |
| 1814 | 139 | Nick Fagerlund | be used in a Man in the Middle (MITM) attack to impersonate the puppet master. |
| 1815 | 139 | Nick Fagerlund | |
| 1816 | 139 | Nick Fagerlund | This release fixes the underlying bug that caused dangerous certificates to be |
| 1817 | 139 | Nick Fagerlund | issued, but **any existing certificates with improper DNS alternate names will |
| 1818 | 139 | Nick Fagerlund | remain dangerous until your agent nodes have been reconfigured.** |
| 1819 | 139 | Nick Fagerlund | |
| 1820 | 139 | Nick Fagerlund | Any site where the puppet master's `certdnsnames` setting has been enabled is |
| 1821 | 139 | Nick Fagerlund | vulnerable to attack. See the [CVE-2011-3872 details page][cve20113872] for |
| 1822 | 139 | Nick Fagerlund | more information, including: |
| 1823 | 139 | Nick Fagerlund | |
| 1824 | 139 | Nick Fagerlund | * How to determine whether you are affected |
| 1825 | 139 | Nick Fagerlund | * How to fully remediate the vulnerability |
| 1826 | 139 | Nick Fagerlund | * How to download and use the automated remediation toolkit released by Puppet Labs |
| 1827 | 139 | Nick Fagerlund | |
| 1828 | 139 | Nick Fagerlund | |
| 1829 | 139 | Nick Fagerlund | # 2.6.11 |
| 1830 | 139 | Nick Fagerlund | |
| 1831 | 151 | Nick Fagerlund | This is a security release in the 2.6.x branch. |
| 1832 | 139 | Nick Fagerlund | |
| 1833 | 139 | Nick Fagerlund | ## Security Fixes |
| 1834 | 139 | Nick Fagerlund | |
| 1835 | 139 | Nick Fagerlund | ### Three security vulnerabilities |
| 1836 | 139 | Nick Fagerlund | |
| 1837 | 139 | Nick Fagerlund | This release resolves the following security vulnerabilities: |
| 1838 | 139 | Nick Fagerlund | |
| 1839 | 139 | Nick Fagerlund | * [CVE-2011-3869 -- k5login can overwrite arbitrary files as root][cve20113869] |
| 1840 | 139 | Nick Fagerlund | * [CVE-2011-3870 -- SSH auth key local privilege escalation][cve20113870] |
| 1841 | 139 | Nick Fagerlund | * [CVE-2011-3871 -- Predictable temporary filename in puppet resource/ralsh][cve20113871] |
| 1842 | 139 | Nick Fagerlund | |
| 1843 | 139 | Nick Fagerlund | Follow the links above for details on each vulnerability. |
| 1844 | 139 | Nick Fagerlund | |
| 1845 | 151 | Nick Fagerlund | <!-- |
| 1846 | 139 | Nick Fagerlund | [cve20113871]: http://puppetlabs.com/security/cve/cve-2011-3871/ |
| 1847 | 139 | Nick Fagerlund | [cve20113870]: http://puppetlabs.com/security/cve/cve-2011-3870/ |
| 1848 | 139 | Nick Fagerlund | [cve20113869]: http://puppetlabs.com/security/cve/cve-2011-3869/ |
| 1849 | 132 | Nick Fagerlund | (These link references are enabled under 2.7.5.) |
| 1850 | 132 | Nick Fagerlund | --> |
| 1851 | 139 | Nick Fagerlund | |
| 1852 | 132 | Nick Fagerlund | |
| 1853 | 151 | Nick Fagerlund | # 2.6.10 |
| 1854 | 132 | Nick Fagerlund | |
| 1855 | 139 | Nick Fagerlund | 2.6.10 is a security release in the 2.6.x branch. |
| 1856 | 132 | Nick Fagerlund | |
| 1857 | 139 | Nick Fagerlund | ## Security Fixes |
| 1858 | 132 | Nick Fagerlund | |
| 1859 | 132 | Nick Fagerlund | ### CVE-2011-3848 (directory traversal attacks through indirections) |
| 1860 | 132 | Nick Fagerlund | |
| 1861 | 132 | Nick Fagerlund | [(Full vulnerability details)][cve20113848] |
| 1862 | 132 | Nick Fagerlund | |
| 1863 | 132 | Nick Fagerlund | In various versions of Puppet it was possible to cause a directory traversal |
| 1864 | 132 | Nick Fagerlund | attack through the SSLFile indirection base class. This was variously |
| 1865 | 132 | Nick Fagerlund | triggered through the user-supplied key, or the Subject of the certificate, in |
| 1866 | 132 | Nick Fagerlund | the code. |
| 1867 | 132 | Nick Fagerlund | |
| 1868 | 132 | Nick Fagerlund | Now, we detect bad patterns down in the base class for our indirections, and |
| 1869 | 132 | Nick Fagerlund | fail hard on them. This reduces the attack surface with as little disruption |
| 1870 | 130 | Michael Stahnke | to the overall codebase as possible, making it suitable to deploy as part of |
| 1871 | 130 | Michael Stahnke | older, stable versions of Puppet. |
| 1872 | 130 | Michael Stahnke | |
| 1873 | 130 | Michael Stahnke | In the long term we will also address this higher up the stack, to prevent |
| 1874 | 130 | Michael Stahnke | these problems from reoccurring, but for now this will suffice. |
| 1875 | 130 | Michael Stahnke | |
| 1876 | 102 | Michael Stahnke | Huge thanks to Kristian Erik Hermansen <kristian.hermansen@gmail.com> for the |
| 1877 | 1 | responsible disclosure, and useful analysis, around this defect. |
|
| 1878 | 107 | Michael Stahnke | |
| 1879 | 102 | Michael Stahnke | |
| 1880 | 107 | Michael Stahnke | ## Commits |
| 1881 | 102 | Michael Stahnke | |
| 1882 | 102 | Michael Stahnke | ec5a32a Update spec and lib/puppet.rb for 2.6.10 release |
| 1883 | 102 | Michael Stahnke | fe2de81 Resist directory traversal attacks through indirections. (CVE-2011-3484) |
| 1884 | 122 | Nick Fagerlund | |
| 1885 | 122 | Nick Fagerlund | |
| 1886 | 122 | Nick Fagerlund | # 2.6.9 |
| 1887 | 122 | Nick Fagerlund | |
| 1888 | 102 | Michael Stahnke | 2.6.9 is a maintenance release in the 2.6.x branch. |
| 1889 | 102 | Michael Stahnke | |
| 1890 | 102 | Michael Stahnke | ## Notable Fixes and Features |
| 1891 | 102 | Michael Stahnke | |
| 1892 | 102 | Michael Stahnke | Bug #5318 |
| 1893 | 102 | Michael Stahnke | |
| 1894 | 102 | Michael Stahnke | Puppet master behind Passenger no longer requires two runs to detect changes to manifests. |
| 1895 | 102 | Michael Stahnke | |
| 1896 | 90 | Nigel Kersten | Bug #7127: |
| 1897 | 151 | Nick Fagerlund | |
| 1898 | 95 | Jacob Helwig | A puppet run will now stop if a prerun command fails. |
| 1899 | 89 | Matt Robinson | |
| 1900 | 95 | Jacob Helwig | Bug #650 |
| 1901 | 151 | Nick Fagerlund | |
| 1902 | 89 | Matt Robinson | Puppet will now honor symlinks for configuration directories |
| 1903 | 89 | Matt Robinson | |
| 1904 | 89 | Matt Robinson | Feature #2128 |
| 1905 | 89 | Matt Robinson | |
| 1906 | 151 | Nick Fagerlund | Added support for hostname setting based on facts, also get facts before retrieving the catalog. |
| 1907 | 151 | Nick Fagerlund | |
| 1908 | 89 | Matt Robinson | Bug #7139 |
| 1909 | 151 | Nick Fagerlund | |
| 1910 | 89 | Matt Robinson | Accept '/' as a valid path in filesets |
| 1911 | 89 | Matt Robinson | |
| 1912 | 89 | Matt Robinson | |
| 1913 | 120 | Nick Fagerlund | # 2.6.8 |
| 1914 | 89 | Matt Robinson | |
| 1915 | 83 | Matt Robinson | 2.6.8 is a maintenance release in the 2.6.x branch. |
| 1916 | 86 | James Turnbull | |
| 1917 | 83 | Matt Robinson | ## Notable Features and Bug Fixes |
| 1918 | 86 | James Turnbull | |
| 1919 | 83 | Matt Robinson | Bug #4884: |
| 1920 | 83 | Matt Robinson | |
| 1921 | 83 | Matt Robinson | Added a new `shell` exec provider that executes code as a raw shell script. Although the `posix` provider remains the default, the new provider allows the use of shell globbing and built-ins, and does not require that the path to a command be fully-qualified. The `shell` provider closely resembles the behavior of the `exec` type in Puppet 0.25.x. |
| 1922 | 83 | Matt Robinson | |
| 1923 | 83 | Matt Robinson | Bug #5670: |
| 1924 | 83 | Matt Robinson | |
| 1925 | 83 | Matt Robinson | Failed resources don't improperly trigger a refresh |
| 1926 | 83 | Matt Robinson | |
| 1927 | 83 | Matt Robinson | Feature #2331: |
| 1928 | 83 | Matt Robinson | |
| 1929 | 83 | Matt Robinson | New macports provider |
| 1930 | 83 | Matt Robinson | |
| 1931 | 83 | Matt Robinson | # 2.6.7 |
| 1932 | 84 | Jacob Helwig | |
| 1933 | 83 | Matt Robinson | 2.6.7 is a maintenance release in the 2.6.x branch. |
| 1934 | 85 | Jacob Helwig | |
| 1935 | 85 | Jacob Helwig | ## Notable Features and Bug Fixes |
| 1936 | 85 | Jacob Helwig | |
| 1937 | 85 | Jacob Helwig | ### Inventory Service Available |
| 1938 | 83 | Matt Robinson | |
| 1939 | 83 | Matt Robinson | The inventory service is a way to track facts for all nodes. Preliminary documentation can be found [here](https://github.com/puppetlabs/puppet-docs/blob/master/source/guides/inventory_service.markdown), which will be finalized by the time 2.6.7 is released. |
| 1940 | 83 | Matt Robinson | |
| 1941 | 83 | Matt Robinson | ### Plugin sync works when using tags |
| 1942 | 83 | Matt Robinson | |
| 1943 | 83 | Matt Robinson | Bug #5073 This fixes a regression from 0.25.x |
| 1944 | 83 | Matt Robinson | |
| 1945 | 83 | Matt Robinson | ### Don't truncate remotely-sourced files on 404 |
| 1946 | 83 | Matt Robinson | |
| 1947 | 83 | Matt Robinson | Bug #4922 Now 404s just cause a normal failure without affecting the file |
| 1948 | 83 | Matt Robinson | |
| 1949 | 1 | ### Storeconfigs compatibility with older version of Puppet |
|
| 1950 | 85 | Jacob Helwig | |
| 1951 | 83 | Matt Robinson | Bug #5428 Upgrading from 0.25.x caused problems with the data format that storeconfigs used, and previously you had to delete your old storeconfigs data to work with 2.6.x. 2.6.7 can now work with the old storeconfigs data. |
| 1952 | 83 | Matt Robinson | |
| 1953 | 83 | Matt Robinson | ### Selectors now can use hashes |
| 1954 | 83 | Matt Robinson | |
| 1955 | 1 | Ticket #5516 Example: |
|
| 1956 | 83 | Matt Robinson | |
| 1957 | 85 | Jacob Helwig | $int = { 'eth0' => 'bla' } |
| 1958 | 83 | Matt Robinson | $foo = $int['eth0'] ? { |
| 1959 | 83 | Matt Robinson | 'bla' => 'foo', |
| 1960 | 83 | Matt Robinson | default => 'bleh' |
| 1961 | 83 | Matt Robinson | } |
| 1962 | 83 | Matt Robinson | |
| 1963 | 83 | Matt Robinson | ### Hashes can now be multiple levels deep |
| 1964 | 83 | Matt Robinson | |
| 1965 | 83 | Matt Robinson | Bug #6269 The following now works: |
| 1966 | 83 | Matt Robinson | |
| 1967 | 83 | Matt Robinson | $hash = { 'a' => { 'b' => { 'c' => 'it works' } } } |
| 1968 | 83 | Matt Robinson | $out = $hash['a']['b']['c'] |
| 1969 | 85 | Jacob Helwig | |
| 1970 | 83 | Matt Robinson | ### Documented autorequire relationships |
| 1971 | 85 | Jacob Helwig | |
| 1972 | 83 | Matt Robinson | Ticket #6606 |
| 1973 | 83 | Matt Robinson | |
| 1974 | 83 | Matt Robinson | ### Better support for multiple key attributes |
| 1975 | 83 | Matt Robinson | |
| 1976 | 83 | Matt Robinson | Bugs #5661 #5662 #5605 |
| 1977 | 83 | Matt Robinson | |
| 1978 | 83 | Matt Robinson | ### Better error message when realizing a non-existent virtual resource |
| 1979 | 83 | Matt Robinson | |
| 1980 | 83 | Matt Robinson | Bug #5392 The error message you used to get when realizing a bogus virtual resource didn't give you any indication of what was happening to cause the error. Now it should be much faster to figure out that the virtual resource was bad. |
| 1981 | 83 | Matt Robinson | |
| 1982 | 83 | Matt Robinson | ### Noop no longer suppresses error codes |
| 1983 | 83 | Matt Robinson | |
| 1984 | 83 | Matt Robinson | Bug #6322 Running in noop mode used to always return 0. It will now return the same exit code that a regular run would if possible |
| 1985 | 83 | Matt Robinson | |
| 1986 | 83 | Matt Robinson | ### Settings Propagate Environment |
| 1987 | 83 | Matt Robinson | |
| 1988 | 83 | Matt Robinson | Bug #6513 The code in settings did not always propagate the environment, creating situations in which inconsistent results were produced |
| 1989 | 83 | Matt Robinson | |
| 1990 | 83 | Matt Robinson | ### Able to create system users |
| 1991 | 83 | Matt Robinson | |
| 1992 | 83 | Matt Robinson | Ticket #2645 You can now create users like when running `useradd -r` if you specify `system => true` on a user resource. |
| 1993 | 83 | Matt Robinson | |
| 1994 | 67 | James Turnbull | ### The reports directory is now automatically created |
| 1995 | 81 | Jacob Helwig | |
| 1996 | 81 | Jacob Helwig | Bug #5794 If the reports directory didn't exist the report creation used to fail until it was manually added |
| 1997 | 81 | Jacob Helwig | |
| 1998 | 81 | Jacob Helwig | ### DESTDIR in install.rb now warns that it's deprecated in favor of `--destdir` |
| 1999 | 81 | Jacob Helwig | |
| 2000 | 81 | Jacob Helwig | Ticket #5724 |
| 2001 | 81 | Jacob Helwig | |
| 2002 | 81 | Jacob Helwig | ### Allow disabling of default SELinux context detection for files |
| 2003 | 81 | Jacob Helwig | |
| 2004 | 81 | Jacob Helwig | Ticket #3999 |
| 2005 | 81 | Jacob Helwig | |
| 2006 | 81 | Jacob Helwig | ### Add `_search` REST API aliases for plural GET requests |
| 2007 | 81 | Jacob Helwig | |
| 2008 | 81 | Jacob Helwig | Ticket #6376 The plural form creates problems when the name of the indirection is already plural, e.g. “facts” pluralizes to “factss” |
| 2009 | 81 | Jacob Helwig | |
| 2010 | 81 | Jacob Helwig | # 2.6.6 |
| 2011 | 82 | Jacob Helwig | |
| 2012 | 81 | Jacob Helwig | 2.6.6 is a maintenance release in the 2.6.x branch. |
| 2013 | 67 | James Turnbull | |
| 2014 | 1 | ## Notable Features and Bug Fixes |
|
| 2015 | 81 | Jacob Helwig | |
| 2016 | 64 | Nick Fagerlund | ### No longer audit recursive files |
| 2017 | 71 | Nick Fagerlund | |
| 2018 | 68 | James Turnbull | Bug #6418: Files with the "source" parameter set are automatically set to audit |
| 2019 | 78 | Jesse Wolfe | |
| 2020 | 78 | Jesse Wolfe | The audit functionality was activated unexpectedly on file resources that use the "source" parameter. This could cause spurrious notify events. These notifications could trigger unintended refreshes of subscribed resources. |
| 2021 | 78 | Jesse Wolfe | |
| 2022 | 78 | Jesse Wolfe | ### No longer truncate files when given an invalid checksum |
| 2023 | 78 | Jesse Wolfe | |
| 2024 | 78 | Jesse Wolfe | Bug #6541: File type truncates target when filebucket can not retrieve hash |
| 2025 | 71 | Nick Fagerlund | |
| 2026 | 1 | In the case where a file resource had content specified using an invalid checksum (Eg: "{md5}not-a-checksum") or the valid checksum of a file not contained in the filebucket, the file would end up being truncated. This is now properly reported as an error, instead of zeroing out the file. |
|
| 2027 | 72 | Nick Fagerlund | |
| 2028 | 68 | James Turnbull | # 2.6.5 |
| 2029 | 71 | Nick Fagerlund | |
| 2030 | 71 | Nick Fagerlund | 2.6.5 is a maintenance release in the 2.6.x branch. |
| 2031 | 71 | Nick Fagerlund | |
| 2032 | 1 | ## Notable Features and Bug Fixes |
|
| 2033 | 69 | James Turnbull | |
| 2034 | 69 | James Turnbull | ### Faster Passenger support |
| 2035 | 69 | James Turnbull | |
| 2036 | 68 | James Turnbull | Bug #6257: Rack POST and PUT request handling is very slow. |
| 2037 | 68 | James Turnbull | |
| 2038 | 71 | Nick Fagerlund | The speed of the Rack HTTP handler has been dramatically improved. This should prevent timeouts that some users were experiencing when running under Passenger. |
| 2039 | 1 | ||
| 2040 | 1 | ### Parameterised class support in external node classifiers |
|
| 2041 | 71 | Nick Fagerlund | |
| 2042 | 71 | Nick Fagerlund | Bug #5045: External node classifiers should be able to specify parameters for parameterized classes |
| 2043 | 71 | Nick Fagerlund | |
| 2044 | 71 | Nick Fagerlund | External node classifiers can now declare parameterized classes (with parameters). To declare the following parameterized class: |
| 2045 | 71 | Nick Fagerlund | |
| 2046 | 71 | Nick Fagerlund | class foo($foobar='default', $foobaz, $fooblah) { |
| 2047 | 1 | notify { 'foobar': message => $foobar } |
|
| 2048 | 71 | Nick Fagerlund | notify { 'foobaz': message => $foobaz } |
| 2049 | 1 | notify { 'fooblahfirst': message => $fooblah[0] } |
|
| 2050 | 71 | Nick Fagerlund | notify { 'fooblahsecond': message => $fooblah[1] } |
| 2051 | 1 | } |
|
| 2052 | 71 | Nick Fagerlund | |
| 2053 | 1 | ...your external node classifier should return the following YAML: |
|
| 2054 | 72 | Nick Fagerlund | |
| 2055 | 1 | classes: |
|
| 2056 | 85 | Jacob Helwig | foo: |
| 2057 | 1 | foobar: onesie |
|
| 2058 | 71 | Nick Fagerlund | foobaz: twosie |
| 2059 | 71 | Nick Fagerlund | fooblah: |
| 2060 | 71 | Nick Fagerlund | - one |
| 2061 | 71 | Nick Fagerlund | - two |
| 2062 | 71 | Nick Fagerlund | |
| 2063 | 85 | Jacob Helwig | ### New puppet inspect application |
| 2064 | 71 | Nick Fagerlund | |
| 2065 | 1 | Puppet now includes puppet inspect, an application which sends inspection reports to the puppet master. Inspection reports document the current state of resource attributes which marked for auditing in the most recently applied catalog, and are useful in certain pre-existing workflows. |
|
| 2066 | 71 | Nick Fagerlund | |
| 2067 | 1 | ### `$name` can now be used to set default values in defined resource types |
|
| 2068 | 72 | Nick Fagerlund | |
| 2069 | 1 | Feature #5061: should be able to access ($name, $module_name, $title) from within defined resources type parameter list |
|
| 2070 | 71 | Nick Fagerlund | |
| 2071 | 71 | Nick Fagerlund | The `$name` variable is now resolved within the scope of the resource being declared, rather than the enclosing scope. This enables usages like: |
| 2072 | 71 | Nick Fagerlund | |
| 2073 | 71 | Nick Fagerlund | define audited_file($filename = $name) { |
| 2074 | 72 | Nick Fagerlund | file { $filename: |
| 2075 | 71 | Nick Fagerlund | audit => all, |
| 2076 | 85 | Jacob Helwig | } |
| 2077 | 71 | Nick Fagerlund | } |
| 2078 | 71 | Nick Fagerlund | |
| 2079 | 71 | Nick Fagerlund | audited_file { "/etc/hosts": } |
| 2080 | 72 | Nick Fagerlund | |
| 2081 | 71 | Nick Fagerlund | ### Managed resource attributes can now be audited |
| 2082 | 85 | Jacob Helwig | |
| 2083 | 71 | Nick Fagerlund | Bug #5408: Puppet should allow audited attributes to also be managed |
| 2084 | 71 | Nick Fagerlund | |
| 2085 | 71 | Nick Fagerlund | The audit metaparameter can now be used on attributes which are managed by Puppet. |
| 2086 | 72 | Nick Fagerlund | |
| 2087 | 71 | Nick Fagerlund | ### Manifests can now specify arbitrary data for file contents |
| 2088 | 85 | Jacob Helwig | |
| 2089 | 71 | Nick Fagerlund | Bug #5261: Need a way to transmit binary data for file contents in manifests |
| 2090 | 71 | Nick Fagerlund | |
| 2091 | 71 | Nick Fagerlund | Previous versions of Puppet would experience errors when file contents contained invalid UTF8. |
| 2092 | 72 | Nick Fagerlund | |
| 2093 | 71 | Nick Fagerlund | ### Puppet agent reliably writes valid cache YAML for very large catalogs |
| 2094 | 71 | Nick Fagerlund | |
| 2095 | 71 | Nick Fagerlund | Bug #5755: Unable to load puppet generated catalog via YAML.load_file |
| 2096 | 73 | Nick Fagerlund | |
| 2097 | 71 | Nick Fagerlund | In Puppet 2.6.3 and 2.6.4, puppet agent would sometimes write invalid YAML to its cache when serializing extremely large catalogs, and subsequent tasks attempting to consume this YAML would fail. This has been fixed. |
| 2098 | 85 | Jacob Helwig | |
| 2099 | 71 | Nick Fagerlund | ### The environment column in storeconfigs is no longer corrupted |
| 2100 | 71 | Nick Fagerlund | |
| 2101 | 71 | Nick Fagerlund | Bug #4487: Environment column in hosts table updating incorrectly |
| 2102 | 72 | Nick Fagerlund | |
| 2103 | 71 | Nick Fagerlund | A bug which corrupted the environment column in storeconfigs databases has been fixed. |
| 2104 | 85 | Jacob Helwig | |
| 2105 | 71 | Nick Fagerlund | ### Mount resource on AIX has been improved |
| 2106 | 79 | Jesse Wolfe | |
| 2107 | 79 | Jesse Wolfe | Bug #5681: Puppet mount module Puppet::Provider::Mount does not properly parse AIX mount command output |
| 2108 | 79 | Jesse Wolfe | |
| 2109 | 79 | Jesse Wolfe | ### Puppet resource can now manage files |
| 2110 | 71 | Nick Fagerlund | |
| 2111 | 71 | Nick Fagerlund | Bug #3165: Ralsh can't manage files |
| 2112 | 85 | Jacob Helwig | |
| 2113 | 71 | Nick Fagerlund | The puppet resource shell can now manage file resources. |
| 2114 | 71 | Nick Fagerlund | |
| 2115 | 71 | Nick Fagerlund | ### Generating puppet.conf with `--genconfig` no longer sets genconfig = true |
| 2116 | 85 | Jacob Helwig | |
| 2117 | 71 | Nick Fagerlund | Bug #5914: Genconfig returns genconfig=true |
| 2118 | 71 | Nick Fagerlund | |
| 2119 | 71 | Nick Fagerlund | Using the `--genconfig` command line option now generates fully usable puppet.conf content. |
| 2120 | 85 | Jacob Helwig | |
| 2121 | 71 | Nick Fagerlund | Bug #5977: Puppet applications in multiple directories. |
| 2122 | 71 | Nick Fagerlund | |
| 2123 | 71 | Nick Fagerlund | Setting RUBYLIB should no longer have the potential to break finding puppet sub-commands. |
| 2124 | 85 | Jacob Helwig | |
| 2125 | 71 | Nick Fagerlund | ### License is now GPLv2 |
| 2126 | 71 | Nick Fagerlund | |
| 2127 | 71 | Nick Fagerlund | Previous versions of Puppet were licensed as GPL version 2 or greater; the license is now specified as GPL version 2. |
| 2128 | 71 | Nick Fagerlund | |
| 2129 | 71 | Nick Fagerlund | ### Filebucket API can now provide diffs of file contents |
| 2130 | 71 | Nick Fagerlund | |
| 2131 | 71 | Nick Fagerlund | The filebucket service can now diff file contents specified by MD5 checksum. From [the REST API documentation](http://docs.puppetlabs.com/guides/rest_api.html): |
| 2132 | 77 | Nan Liu | |
| 2133 | 71 | Nick Fagerlund | GET /{environment}/file_bucket_file/md5/{checksum}?diff_with={checksum} |
| 2134 | 75 | Nick Fagerlund | |
| 2135 | 75 | Nick Fagerlund | No tools using this feature are currently shipping; however, a future version of Puppet Dashboard will support viewing diffs of arbitrary file content revisions. |
| 2136 | 71 | Nick Fagerlund | |
| 2137 | 1 | ### Report format has changed; report formats are now versioned |
|
| 2138 | 75 | Nick Fagerlund | |
| 2139 | 71 | Nick Fagerlund | The report format has been made more consistent, more documentatable, and less redundant. Report formats are now versioned, and inspection reports are now supported with the `kind` attribute. |
| 2140 | 71 | Nick Fagerlund | |
| 2141 | 1 | See the wiki for details: |
|
| 2142 | 75 | Nick Fagerlund | |
| 2143 | 75 | Nick Fagerlund | * [[Report Format 0]] |
| 2144 | 75 | Nick Fagerlund | * [[Report Format 1]] |
| 2145 | 68 | James Turnbull | * [[Report Format 2]] |
| 2146 | 80 | Jacob Helwig | |
| 2147 | 80 | Jacob Helwig | ### "user" type now takes -1 to disable password aging |
| 2148 | 80 | Jacob Helwig | |
| 2149 | 80 | Jacob Helwig | Bug #6061: password_max_age can not be set to null or -1 |
| 2150 | 66 | Nick Fagerlund | |
| 2151 | 66 | Nick Fagerlund | ### Time and timestamp checksum options have been removed from the "file" type |
| 2152 | 66 | Nick Fagerlund | |
| 2153 | 85 | Jacob Helwig | These attributes, deprecated in 0.25.0, have been removed. |
| 2154 | 66 | Nick Fagerlund | |
| 2155 | 63 | James Turnbull | ### "file" type now accepts POSIX files with multiple slashes |
| 2156 | 1 | ||
| 2157 | 66 | Nick Fagerlund | Bug #6091: Fix Posix file paths with multiple slashes |
| 2158 | 66 | Nick Fagerlund | |
| 2159 | 63 | James Turnbull | Valid POSIX file paths with multiple slashes are now usable. |
| 2160 | 61 | James Turnbull | |
| 2161 | 61 | James Turnbull | ### Document the `--apply` and `--compile` options to `puppet apply` and `puppet master` |
| 2162 | 61 | James Turnbull | |
| 2163 | 61 | James Turnbull | Feature #3646: Updated documentation for `puppet apply`, and `puppet master`. |
| 2164 | 62 | James Turnbull | |
| 2165 | 62 | James Turnbull | # 2.6.4 |
| 2166 | 62 | James Turnbull | |
| 2167 | 62 | James Turnbull | 2.6.4 is a security release in the 2.6.x branch and contains only |
| 2168 | 62 | James Turnbull | security related bug fixes and one update to copyright information. |
| 2169 | 62 | James Turnbull | |
| 2170 | 1 | # 2.6.3 |
|
| 2171 | 1 | ||
| 2172 | 66 | Nick Fagerlund | 2.6.3 is a maintenance release in the 2.6.x branch and contains only |
| 2173 | 66 | Nick Fagerlund | bug fixes and no new features. |
| 2174 | 66 | Nick Fagerlund | |
| 2175 | 66 | Nick Fagerlund | # 2.6.2 |
| 2176 | 66 | Nick Fagerlund | |
| 2177 | 66 | Nick Fagerlund | This release is largely a maintenance release for the 2.6.x cycle |
| 2178 | 66 | Nick Fagerlund | |
| 2179 | 66 | Nick Fagerlund | ## Types and Providers |
| 2180 | 66 | Nick Fagerlund | |
| 2181 | 66 | Nick Fagerlund | ### User type now manages password age |
| 2182 | 85 | Jacob Helwig | |
| 2183 | 61 | James Turnbull | We've add a new feature to user providers <code>manages_password_age</code>, along with the new properties <code>password_min_age</code> and <code>password_max_age</code> to the user type. These represent password minimum and maximum age in days. The useradd and user_role_add providers now support these new properties. |
| 2184 | 50 | James Turnbull | |
| 2185 | 50 | James Turnbull | ### User type now manages user expiry |
| 2186 | 51 | James Turnbull | |
| 2187 | 51 | James Turnbull | We've add a new feature to user providers, <code>manages_expiry</code>, along with a new property, <code>expiry</code>. The <code>expiry</code> property is specified in the form of YYYY-MM-DD and sets an expiration date for an account. |
| 2188 | 50 | James Turnbull | |
| 2189 | 50 | James Turnbull | An example of these new features: |
| 2190 | 55 | James Turnbull | |
| 2191 | 55 | James Turnbull | user { "james": |
| 2192 | 50 | James Turnbull | password_min_age => '10', |
| 2193 | 50 | James Turnbull | password_max_age => '30', |
| 2194 | 50 | James Turnbull | expiry => '2010-09-30', |
| 2195 | 50 | James Turnbull | ... |
| 2196 | 50 | James Turnbull | ensure => present, |
| 2197 | 85 | Jacob Helwig | } |
| 2198 | 85 | Jacob Helwig | |
| 2199 | 50 | James Turnbull | # 2.6.1 |
| 2200 | 50 | James Turnbull | |
| 2201 | 85 | Jacob Helwig | This release is largely a maintenance release for 2.6.0 but also includes basic support for running Puppet under JRuby. |
| 2202 | 50 | James Turnbull | |
| 2203 | 85 | Jacob Helwig | ## Functions |
| 2204 | 50 | James Turnbull | |
| 2205 | 50 | James Turnbull | ### Extlookup |
| 2206 | 85 | Jacob Helwig | |
| 2207 | 52 | James Turnbull | R.I. Pienaar's extlookup function has been added to core. This is an initial import of this function. Additional functionality, including YAML and JSON backends, will be added in future releases. |
| 2208 | 52 | James Turnbull | |
| 2209 | 52 | James Turnbull | This is a parser function to read data from external files, this version |
| 2210 | 52 | James Turnbull | uses CSV files but the concept can easily be adjust for databases, yaml |
| 2211 | 85 | Jacob Helwig | or any other queryable data source. |
| 2212 | 50 | James Turnbull | |
| 2213 | 50 | James Turnbull | The object of this is to make it obvious when it's being used, rather than |
| 2214 | 50 | James Turnbull | magically loading data in when an module is loaded I prefer to look at the code |
| 2215 | 85 | Jacob Helwig | and see statements like: |
| 2216 | 50 | James Turnbull | |
| 2217 | 50 | James Turnbull | $snmp_contact = extlookup("snmp_contact") |
| 2218 | 85 | Jacob Helwig | |
| 2219 | 50 | James Turnbull | The above snippet will load the snmp_contact value from CSV files, this in its |
| 2220 | 50 | James Turnbull | own is useful but a common construct in puppet manifests is something like this: |
| 2221 | 52 | James Turnbull | |
| 2222 | 52 | James Turnbull | case $domain { |
| 2223 | 85 | Jacob Helwig | "myclient.com": { $snmp_contact = "John Doe <john@myclient.com>" } |
| 2224 | 50 | James Turnbull | default: { $snmp_contact = "My Support <support@my.com>" } |
| 2225 | 50 | James Turnbull | } |
| 2226 | 85 | Jacob Helwig | |
| 2227 | 54 | Uwe Stuehler | Over time there will be a lot of this kind of thing spread all over your manifests |
| 2228 | 85 | Jacob Helwig | and adding an additional client involves grepping through manifests to find all the |
| 2229 | 54 | Uwe Stuehler | places where you have constructs like this. |
| 2230 | 54 | Uwe Stuehler | |
| 2231 | 54 | Uwe Stuehler | This is a data problem and shouldn't be handled in code, a using this function you |
| 2232 | 54 | Uwe Stuehler | can do just that. |
| 2233 | 52 | James Turnbull | |
| 2234 | 50 | James Turnbull | First you configure it in site.pp: |
| 2235 | 50 | James Turnbull | |
| 2236 | 50 | James Turnbull | $extlookup_datadir = "/etc/puppet/manifests/extdata" |
| 2237 | 85 | Jacob Helwig | $extlookup_precedence = ["%{fqdn}", "domain_%{domain}", "common"] |
| 2238 | 50 | James Turnbull | |
| 2239 | 50 | James Turnbull | The array tells the code how to resolve values, first it will try to find it in |
| 2240 | 85 | Jacob Helwig | web1.myclient.com.csv then in domain_myclient.com.csv and finally in common.csv |
| 2241 | 50 | James Turnbull | |
| 2242 | 85 | Jacob Helwig | Now create the following data files in /etc/puppet/manifests/extdata like this: |
| 2243 | 85 | Jacob Helwig | |
| 2244 | 50 | James Turnbull | domain_myclient.com.csv: |
| 2245 | 50 | James Turnbull | snmp_contact,John Doe <john@myclient.com> |
| 2246 | 85 | Jacob Helwig | root_contact,support@%{domain} |
| 2247 | 50 | James Turnbull | client_trusted_ips,192.168.1.130,192.168.10.0/24 |
| 2248 | 50 | James Turnbull | |
| 2249 | 50 | James Turnbull | common.csv: |
| 2250 | 85 | Jacob Helwig | snmp_contact,My Support <support@my.com> |
| 2251 | 50 | James Turnbull | root_contact,support@my.com |
| 2252 | 50 | James Turnbull | |
| 2253 | 85 | Jacob Helwig | Now you can replace the case statement with the simple single line to achieve |
| 2254 | 50 | James Turnbull | the exact same outcome: |
| 2255 | 85 | Jacob Helwig | |
| 2256 | 50 | James Turnbull | $snmp_contact = extlookup("snmp_contact") |
| 2257 | 50 | James Turnbull | |
| 2258 | 85 | Jacob Helwig | The obove code shows some other features, you can use any fact or variable that |
| 2259 | 50 | James Turnbull | is in scope by simply using %{varname} in your data files, you can return arrays |
| 2260 | 50 | James Turnbull | by just having multiple values in the csv after the initial variable name. |
| 2261 | 85 | Jacob Helwig | |
| 2262 | 50 | James Turnbull | In the event that a variable is nowhere to be found a critical error will be raised |
| 2263 | 50 | James Turnbull | that will prevent your manifest from compiling, this is to avoid accidentally putting |
| 2264 | 50 | James Turnbull | in empty values etc. You can however specify a default value: |
| 2265 | 50 | James Turnbull | |
| 2266 | 55 | James Turnbull | $ntp_servers = extlookup("ntp_servers", "1.${country}.pool.ntp.org") |
| 2267 | 55 | James Turnbull | |
| 2268 | 55 | James Turnbull | In this case it will default to "1.${country}.pool.ntp.org" if nothing is defined in |
| 2269 | 55 | James Turnbull | any data file. |
| 2270 | 55 | James Turnbull | |
| 2271 | 55 | James Turnbull | You can also specify an additional data file to search first before any others at use |
| 2272 | 55 | James Turnbull | time, for example: |
| 2273 | 55 | James Turnbull | |
| 2274 | 55 | James Turnbull | $version = extlookup("rsyslog_version", "present", "packages") |
| 2275 | 57 | James Turnbull | package{"rsyslog": ensure => $version } |
| 2276 | 57 | James Turnbull | |
| 2277 | 57 | James Turnbull | This will look for a version configured in packages.csv and then in the rest as configured |
| 2278 | 50 | James Turnbull | by $extlookup_precedence if it's not found anywhere it will default to "present", this kind |
| 2279 | 21 | James Turnbull | of use case makes puppet a lot nicer for managing large amounts of packages since you do not |
| 2280 | 1 | need to edit a load of manifests to do simple things like adjust a desired version number. |
|
| 2281 | 1 | ||
| 2282 | 1 | ### md5 |
|
| 2283 | 33 | James Turnbull | |
| 2284 | 33 | James Turnbull | An md5 hashing function |
| 2285 | 33 | James Turnbull | |
| 2286 | 33 | James Turnbull | ## Documentation |
| 2287 | 33 | James Turnbull | |
| 2288 | 1 | Migration of internal Restructured Text Documentation to Markdown |
|
| 2289 | 33 | James Turnbull | |
| 2290 | 33 | James Turnbull | ## Types and Providers |
| 2291 | 33 | James Turnbull | |
| 2292 | 1 | Added http_refresh and cost parameters to the yumrepo type |
|
| 2293 | 33 | James Turnbull | |
| 2294 | 85 | Jacob Helwig | # 2.6.0 |
| 2295 | 33 | James Turnbull | |
| 2296 | 85 | Jacob Helwig | ## Language |
| 2297 | 33 | James Turnbull | |
| 2298 | 1 | ### Support for parameterised classes |
|
| 2299 | 33 | James Turnbull | |
| 2300 | 33 | James Turnbull | The Rowlf release provides an extension to the existing class |
| 2301 | 33 | James Turnbull | syntax to allow parameters to be passed to classes. This brings |
| 2302 | 33 | James Turnbull | classes more in line with definitions, with the significant |
| 2303 | 33 | James Turnbull | difference that definitions have multiple instances whilst classes |
| 2304 | 1 | remain singletons. |
|
| 2305 | 33 | James Turnbull | |
| 2306 | 33 | James Turnbull | To create a class with parameters you can now specify: |
| 2307 | 33 | James Turnbull | |
| 2308 | 33 | James Turnbull | class apache($version) { |
| 2309 | 33 | James Turnbull | |
| 2310 | 33 | James Turnbull | ... class contents ... |
| 2311 | 85 | Jacob Helwig | |
| 2312 | 33 | James Turnbull | } |
| 2313 | 85 | Jacob Helwig | |
| 2314 | 33 | James Turnbull | Classes with parameters are NOT added using the include function |
| 2315 | 33 | James Turnbull | but rather the resulting class can then be included more like a |
| 2316 | 1 | definition: |
|
| 2317 | 32 | James Turnbull | |
| 2318 | 34 | James Turnbull | node webserver { |
| 2319 | 1 | class { apache: version => "1.3.13" } |
|
| 2320 | 34 | James Turnbull | } |
| 2321 | 64 | Nick Fagerlund | |
| 2322 | 64 | Nick Fagerlund | Like definitions, you can also specify default parameter values in |
| 2323 | 64 | Nick Fagerlund | your class like so: |
| 2324 | 34 | James Turnbull | |
| 2325 | 34 | James Turnbull | class apache($version="1.3.13",$home="/var/www") { |
| 2326 | 85 | Jacob Helwig | |
| 2327 | 64 | Nick Fagerlund | ... class contents ... |
| 2328 | 64 | Nick Fagerlund | |
| 2329 | 85 | Jacob Helwig | } |
| 2330 | 34 | James Turnbull | |
| 2331 | 34 | James Turnbull | ### New relationship syntax |
| 2332 | 34 | James Turnbull | |
| 2333 | 34 | James Turnbull | You can now specify relationships directly in the language: |
| 2334 | 34 | James Turnbull | |
| 2335 | 85 | Jacob Helwig | |
| 2336 | 64 | Nick Fagerlund | File[/foo] -> Service[bar] |
| 2337 | 64 | Nick Fagerlund | |
| 2338 | 85 | Jacob Helwig | |
| 2339 | 1 | Specifies a normal dependency while: |
|
| 2340 | 34 | James Turnbull | |
| 2341 | 85 | Jacob Helwig | |
| 2342 | 64 | Nick Fagerlund | File[/foo] ~> Service[bar] |
| 2343 | 64 | Nick Fagerlund | |
| 2344 | 85 | Jacob Helwig | |
| 2345 | 34 | James Turnbull | Specifies a subscription. |
| 2346 | 34 | James Turnbull | |
| 2347 | 34 | James Turnbull | You can also do relationship chaining, specifying multiple |
| 2348 | 1 | relationships on a single line: |
|
| 2349 | 85 | Jacob Helwig | |
| 2350 | 64 | Nick Fagerlund | |
| 2351 | 64 | Nick Fagerlund | File[/foo] -> Package[baz] -> Service[bar] |
| 2352 | 85 | Jacob Helwig | |
| 2353 | 34 | James Turnbull | |
| 2354 | 34 | James Turnbull | Note that while it's confusing, you don't have to have all of the arrows be the same direction: |
| 2355 | 85 | Jacob Helwig | |
| 2356 | 64 | Nick Fagerlund | |
| 2357 | 64 | Nick Fagerlund | File[/foo] -> Service[bar] <~ Package[baz] |
| 2358 | 64 | Nick Fagerlund | |
| 2359 | 64 | Nick Fagerlund | |
| 2360 | 85 | Jacob Helwig | This can provide some succinctness at the cost of readability. |
| 2361 | 34 | James Turnbull | |
| 2362 | 20 | James Turnbull | You can also specify full resources, rather than just resource references: |
| 2363 | 20 | James Turnbull | |
| 2364 | 28 | Luke Kanies | |
| 2365 | 28 | Luke Kanies | file { "/foo": ensure => present } -> package { bar: ensure => installed } |
| 2366 | 28 | Luke Kanies | |
| 2367 | 28 | Luke Kanies | |
| 2368 | 28 | Luke Kanies | But wait! There's more! You can also specify a subscription on either side of the relationship marker: |
| 2369 | 28 | Luke Kanies | |
| 2370 | 28 | Luke Kanies | |
| 2371 | 85 | Jacob Helwig | yumrepo { foo: .... } |
| 2372 | 64 | Nick Fagerlund | package { bar: provider => yum, ... } |
| 2373 | 64 | Nick Fagerlund | Yumrepo <| |> -> Package <| provider == yum |> |
| 2374 | 85 | Jacob Helwig | |
| 2375 | 32 | James Turnbull | |
| 2376 | 28 | Luke Kanies | This, finally, provides easy many to many relationships in Puppet, but it also opens the door to massive dependency cycles. This last feature is a very powerful stick, and you can considerably hurt yourself with it. |
| 2377 | 28 | Luke Kanies | |
| 2378 | 28 | Luke Kanies | ### Run Stages |
| 2379 | 85 | Jacob Helwig | |
| 2380 | 64 | Nick Fagerlund | Run Stages are a way for you to provide coarse-grained ordering in your manifests without having to specify relationships to every resource you want in a given order. It's most useful for setup work that needs to be done before the vast majority of your catalog even works - things like configuring yum repositories so your package installs work. |
| 2381 | 64 | Nick Fagerlund | |
| 2382 | 64 | Nick Fagerlund | Run Stages are currently (intentionally) a bit limited - you can only put entire classes into a run stage, you can't put individual resources there. |
| 2383 | 64 | Nick Fagerlund | |
| 2384 | 64 | Nick Fagerlund | There's a <code>main</code> stage that resources all exist in by default; if you don't use run stages, everything's in this, but it doesn't matter to you. You can define new stages via the new <code>stage</code> resource type: |
| 2385 | 64 | Nick Fagerlund | |
| 2386 | 85 | Jacob Helwig | |
| 2387 | 58 | Todd Zullinger | stage { pre: before => Stage[main] } |
| 2388 | 20 | James Turnbull | |
| 2389 | 1 | ||
| 2390 | 31 | Luke Kanies | Here we've used the <code>before</code> metaparameter but you could also use <code>after</code>, <code>require</code>, etc to establish the necessary relationships between stages. |
| 2391 | 31 | Luke Kanies | |
| 2392 | 31 | Luke Kanies | Now you just specify that your class belongs in your new run stage: |
| 2393 | 31 | Luke Kanies | |
| 2394 | 1 | ||
| 2395 | 31 | Luke Kanies | class yum { ... } |
| 2396 | 31 | Luke Kanies | class redhat { |
| 2397 | 85 | Jacob Helwig | ... |
| 2398 | 64 | Nick Fagerlund | class { yum: stage => pre } |
| 2399 | 64 | Nick Fagerlund | } |
| 2400 | 64 | Nick Fagerlund | |
| 2401 | 85 | Jacob Helwig | |
| 2402 | 1 | This will make sure that all of the resources in the <code>yum</code> are applied before the main stage is applied. |
|
| 2403 | 1 | ||
| 2404 | 30 | James Turnbull | Note that we're using the new parameterized classes here - this is necessary because of the class-level limitations of Run Stages. These limitations are present because of the complication of trying to untangle resource dependencies across stage boundaries if we allowed arbitrary resources to specify stages. |
| 2405 | 30 | James Turnbull | |
| 2406 | 1 | On a related note, if you specify a stage for a given class, you should specify as few as possible explicit relationships to or from that class. Otherwise you risk a greater chance of dependency cycles. |
|
| 2407 | 1 | ||
| 2408 | 85 | Jacob Helwig | This can all be visualized relatively easily using the <code>\-\-graph</code> option to <code>puppetd</code> and opening the graphs in OmniGraffle or GraphViz. |
| 2409 | 1 | ||
| 2410 | 85 | Jacob Helwig | Specifying the ordering of Run Stages also works much better when specified using the new relationship syntax, too: |
| 2411 | 64 | Nick Fagerlund | |
| 2412 | 64 | Nick Fagerlund | |
| 2413 | 85 | Jacob Helwig | stage { [pre, post]: } |
| 2414 | 1 | Stage[pre] -> Stage[main] -> Stage[post] |
|
| 2415 | 1 | ||
| 2416 | 1 | ||
| 2417 | 1 | This way it's very easy to see at a glance exactly how the stages are ordered. |
|
| 2418 | 64 | Nick Fagerlund | |
| 2419 | 64 | Nick Fagerlund | ### Support for hashes in the DSL |
| 2420 | 64 | Nick Fagerlund | |
| 2421 | 1 | This brings a new container syntax to the Puppet DSL: hashes. |
|
| 2422 | 64 | Nick Fagerlund | |
| 2423 | 1 | Hashes are defined like Ruby Hashes: |
|
| 2424 | 1 | ||
| 2425 | 1 | ||
| 2426 | 1 | { key1 => val1, ... } |
|
| 2427 | 1 | ||
| 2428 | 1 | ||
| 2429 | 1 | The Hash keys are strings but hash values can be any possible right values admitted in Puppet DSL (i.e. a function call or a variable) |
|
| 2430 | 85 | Jacob Helwig | |
| 2431 | 85 | Jacob Helwig | Currently it is possible: |
| 2432 | 56 | James Turnbull | |
| 2433 | 56 | James Turnbull | * to assign hashes to a variable: <pre> |
| 2434 | 56 | James Turnbull | $myhash = { key1 => "myval", key2 => $b }</pre> |
| 2435 | 56 | James Turnbull | * to access hash members (recursively) from a variable containing a hash (works for array too): <pre> |
| 2436 | 56 | James Turnbull | $myhash = { key => { subkey => "b" }} |
| 2437 | 56 | James Turnbull | notice($myhash[key][subkey]]</pre> |
| 2438 | 56 | James Turnbull | * to use hash member access as resource title |
| 2439 | 56 | James Turnbull | * to use hash in default definition parameter or resource parameter if the type supports it (none for the moment). |
| 2440 | 56 | James Turnbull | |
| 2441 | 56 | James Turnbull | It is not possible to use an hash as a resource title. This might be possible once we support compound resource title. |
| 2442 | 85 | Jacob Helwig | |
| 2443 | 85 | Jacob Helwig | ### The "in" syntax |
| 2444 | 56 | James Turnbull | |
| 2445 | 56 | James Turnbull | From Puppet 2.6.0 you can also use the "in" syntax. This operator allows |
| 2446 | 56 | James Turnbull | you to find if the left operand is in the right one. The left operand must |
| 2447 | 56 | James Turnbull | be a string, but the right operand can be: |
| 2448 | 85 | Jacob Helwig | |
| 2449 | 56 | James Turnbull | * a string |
| 2450 | 39 | James Turnbull | * an array |
| 2451 | 38 | Luke Kanies | * a hash (the search is done on the keys) |
| 2452 | 39 | James Turnbull | |
| 2453 | 38 | Luke Kanies | This syntax can be used in any place where an expression is supported: |
| 2454 | 85 | Jacob Helwig | |
| 2455 | 64 | Nick Fagerlund | $eatme = 'eat' |
| 2456 | 64 | Nick Fagerlund | if $eatme in ['ate', 'eat'] { |
| 2457 | 64 | Nick Fagerlund | ... |
| 2458 | 64 | Nick Fagerlund | } |
| 2459 | 64 | Nick Fagerlund | |
| 2460 | 64 | Nick Fagerlund | $value = 'beat generation' |
| 2461 | 85 | Jacob Helwig | if 'eat' in $value { |
| 2462 | 38 | Luke Kanies | notice("on the road") |
| 2463 | 85 | Jacob Helwig | } |
| 2464 | 64 | Nick Fagerlund | |
| 2465 | 64 | Nick Fagerlund | ### Pure Ruby Manifests |
| 2466 | 64 | Nick Fagerlund | |
| 2467 | 64 | Nick Fagerlund | Puppet now supports pure Ruby manifests as equivalent to Puppet's custom language. That is, you can now have Ruby programs along side your Puppet manifests. As is our custom, it's a limited first version, but it covers most of the specification functionality of the current language. For instance, here's a simple ssh class: |
| 2468 | 85 | Jacob Helwig | |
| 2469 | 38 | Luke Kanies | |
| 2470 | 38 | Luke Kanies | hostclass :ssh do |
| 2471 | 38 | Luke Kanies | package "ssh", :ensure => :present |
| 2472 | 44 | James Turnbull | file "/etc/ssh/sshd_config", :source => "puppet:///ssh/sshd_config", :require => "Package[ssh]" |
| 2473 | 85 | Jacob Helwig | service :sshd, :ensure => :running, :require => "File[/etc/ssh/sshd_config]" |
| 2474 | 64 | Nick Fagerlund | end |
| 2475 | 64 | Nick Fagerlund | |
| 2476 | 64 | Nick Fagerlund | |
| 2477 | 64 | Nick Fagerlund | Similar to the 'hostclass' construct here, you can specify defined resource types: |
| 2478 | 85 | Jacob Helwig | |
| 2479 | 38 | Luke Kanies | define "apache::vhost", :ip, :docroot, :modperl => false do |
| 2480 | 38 | Luke Kanies | file "/etc/apache2/sites-enabled/#{@name}.conf", :content => template("apache/vhost.erb") |
| 2481 | 85 | Jacob Helwig | end |
| 2482 | 64 | Nick Fagerlund | |
| 2483 | 64 | Nick Fagerlund | |
| 2484 | 85 | Jacob Helwig | As you can see from this code, the parameters for the resources become instance variables inside of the defined resource types (and classes, now that we support parameterized classes). |
| 2485 | 38 | Luke Kanies | |
| 2486 | 85 | Jacob Helwig | We can do nodes, too: |
| 2487 | 64 | Nick Fagerlund | |
| 2488 | 64 | Nick Fagerlund | |
| 2489 | 85 | Jacob Helwig | node "mynode" do |
| 2490 | 38 | Luke Kanies | include "apache" |
| 2491 | 38 | Luke Kanies | end |
| 2492 | 1 | ||
| 2493 | 1 | ||
| 2494 | 1 | Ruby has become a first-class citizen alongside the existing external DSL. That means anywhere you can put a manifest, you should be able to put ruby code and have it behave equivalently. So, the 'ssh' class above could be put into '$modules/ssh/manifests/init.rb', the apache vhost type should be placed in '$modules/apache/manifests/vhost.rb', and the node should probably be in your 'site.pp' file. You can also apply ruby manifests directly with puppet: |
|
| 2495 | 85 | Jacob Helwig | |
| 2496 | 64 | Nick Fagerlund | |
| 2497 | 64 | Nick Fagerlund | puppet -e mystuff.rb |
| 2498 | 64 | Nick Fagerlund | |
| 2499 | 64 | Nick Fagerlund | |
| 2500 | 64 | Nick Fagerlund | Note that the Ruby support does not yet cover all of the functionality in Puppet's language. For instance, there is not yet support for overrides or defaults, nor for resource collections. Virtual and exported resources are done using a separate method: |
| 2501 | 85 | Jacob Helwig | |
| 2502 | 64 | Nick Fagerlund | virtual file("/my/file", :content => "something") |
| 2503 | 64 | Nick Fagerlund | |
| 2504 | 85 | Jacob Helwig | |
| 2505 | 60 | James Turnbull | All of the standard functions are also pulled into Ruby and should work fine -- e.g., 'include', 'template', and 'require'. |
| 2506 | 60 | James Turnbull | |
| 2507 | 60 | James Turnbull | ### Support for an elsif syntax |
| 2508 | 60 | James Turnbull | |
| 2509 | 60 | James Turnbull | Allows use of an elsif construct: |
| 2510 | 60 | James Turnbull | |
| 2511 | 60 | James Turnbull | if $server == 'mongrel' { |
| 2512 | 60 | James Turnbull | include mongrel |
| 2513 | 85 | Jacob Helwig | } elsif $server == 'nginx' { |
| 2514 | 60 | James Turnbull | include nginx |
| 2515 | 60 | James Turnbull | } else { |
| 2516 | 60 | James Turnbull | include thin |
| 2517 | 60 | James Turnbull | } |
| 2518 | 60 | James Turnbull | |
| 2519 | 60 | James Turnbull | |
| 2520 | 60 | James Turnbull | ### Audit Metaparameter |
| 2521 | 60 | James Turnbull | |
| 2522 | 60 | James Turnbull | Puppet now supports an audit metaparameter in the style of Tripwire. |
| 2523 | 60 | James Turnbull | |
| 2524 | 60 | James Turnbull | Using this new metaparameter we can specify our resource like: |
| 2525 | 60 | James Turnbull | |
| 2526 | 60 | James Turnbull | file { '/etc/hosts': |
| 2527 | 60 | James Turnbull | audit => [ owner, group, mode ], |
| 2528 | 60 | James Turnbull | } |
| 2529 | 4 | James Turnbull | |
| 2530 | 4 | James Turnbull | Now instead of changing each value (though you can change it too if you wish) Puppet will instead generate auditing log messages, which are available in your standard Puppet reports: |
| 2531 | 8 | James Turnbull | |
| 2532 | 4 | James Turnbull | audit change: previously recorded value owner root has been changed to owner james |
| 2533 | 1 | ||
| 2534 | 1 | This allows you to track any changes that occur on resources under management on your hosts. You can specify this audit metaparameter for any resource and all their attributes and track users, groups, files, services and the myriad of other resources Puppet can manage. |
|
| 2535 | 1 | ||
| 2536 | 1 | You can also specify the special value of all to have Puppet audit every attribute of a resource rather than needing to list all possible attributes, like so: |
|
| 2537 | 1 | ||
| 2538 | 24 | James Turnbull | file { '/etc/hosts': |
| 2539 | 24 | James Turnbull | audit => all, |
| 2540 | 24 | James Turnbull | } |
| 2541 | 24 | James Turnbull | |
| 2542 | 24 | James Turnbull | You can also combine the audited resources with managed resources allowing you to manage some configuration items and simply track others. It is important to remember though, unlike many file integrity systems, that your audit state is not protected by a checksum or the like and is stored on the client in the state.yaml file. In future releases we will look at protecting and centralising this state data. |
| 2543 | 24 | James Turnbull | |
| 2544 | 25 | James Turnbull | ### Case and Selectors now support undef |
| 2545 | 24 | James Turnbull | |
| 2546 | 26 | James Turnbull | The case and selector statements now support the undef syntax (see \#2818). |
| 2547 | 26 | James Turnbull | |
| 2548 | 26 | James Turnbull | ## Stored Configuration |
| 2549 | 26 | James Turnbull | |
| 2550 | 26 | James Turnbull | Support is now added for using Oracle databases as a back-end for |
| 2551 | 26 | James Turnbull | your stored configuration. |
| 2552 | 1 | ||
| 2553 | 1 | ## Facts |
|
| 2554 | 40 | James Turnbull | |
| 2555 | 40 | James Turnbull | There are three new facts available in manifests: |
| 2556 | 4 | James Turnbull | |
| 2557 | 4 | James Turnbull | * `$clientcert` - the name of the client certificate |
| 2558 | 1 | * `$module_name` - the name of the current module (see #1545) |
|
| 2559 | 4 | James Turnbull | * `$caller_module_name` - the name of the calling module (see #1545) |
| 2560 | 4 | James Turnbull | |
| 2561 | 85 | Jacob Helwig | In addition all `puppet.conf` configuration items are now available as facts in your manifests. These can be accessed using the structure: |
| 2562 | 4 | James Turnbull | |
| 2563 | 1 | $settings::setting_name |
|
| 2564 | 15 | James Turnbull | |
| 2565 | 15 | James Turnbull | Where setting_name is the name of the configuration option you'd like to retrieve. |
| 2566 | 1 | ||
| 2567 | 20 | James Turnbull | ## Types and Providers |
| 2568 | 15 | James Turnbull | |
| 2569 | 17 | James Turnbull | Basic Windows support has been introduced... |
| 2570 | 16 | James Turnbull | |
| 2571 | 16 | James Turnbull | A new provider for pkg has been added to support Solaris and |
| 2572 | 16 | James Turnbull | OpenSolaris (pkgadd). |
| 2573 | 16 | James Turnbull | |
| 2574 | 16 | James Turnbull | A new package provider has been added to support AIX package management. |
| 2575 | 16 | James Turnbull | |
| 2576 | 16 | James Turnbull | The augeas type has added the 'incl' and 'lens' parameters. These parameters allow loading a file anywhere on the filesystem; using them also greatly speeds up processing the resource. |
| 2577 | 16 | James Turnbull | |
| 2578 | 16 | James Turnbull | ## Binaries and Configuration |
| 2579 | 16 | James Turnbull | |
| 2580 | 16 | James Turnbull | ### Single Binary |
| 2581 | 15 | James Turnbull | |
| 2582 | 37 | James Turnbull | Puppet is now available as a single binary with sub-arguments for the functions previously provided by the seperate binaries (the existing binaries remain for backwards compatibility). This includes renaming several Puppet functions to better fit an overall model. |
| 2583 | 37 | James Turnbull | |
| 2584 | 15 | James Turnbull | List of binary changes |
| 2585 | 15 | James Turnbull | |
| 2586 | 1 | * puppetmasterd -> puppet master |
|
| 2587 | 1 | * puppetd -> puppet agent |
|
| 2588 | 1 | * puppet -> puppet apply |
|
| 2589 | 59 | James Turnbull | * puppetca -> puppet cert |
| 2590 | 1 | * ralsh -> puppet resource |
|
| 2591 | 1 | * puppetrun -> puppet kick |
|
| 2592 | 1 | * puppetqd -> puppet queue |
|
| 2593 | 1 | * filebucket -> puppet filebucket |
|
| 2594 | 1 | * puppetdoc -> puppet doc |
|
| 2595 | 1 | * pi -> puppet describe |
|
| 2596 | 42 | James Turnbull | |
| 2597 | 42 | James Turnbull | This also results in a change in the puppet.conf configuration file. The sections, previously things like [puppetd], now should be renamed to match the new binary names. So [puppetd] becomes [agent]. You will be prompted to do this when you start Puppet. You will be prompted to do this when you start Puppet with a log message for each section that needs to be renamed. This is merely a warning - existing configuration file will work unchanged. |
| 2598 | 58 | Todd Zullinger | |
| 2599 | 42 | James Turnbull | ### New options |
| 2600 | 42 | James Turnbull | |
| 2601 | 42 | James Turnbull | A new option is available, ca\_name, to specify the name to use for |
| 2602 | 42 | James Turnbull | the Certificate Authority certificate. It defaults to the value of |
| 2603 | 42 | James Turnbull | the certname option (see |
| 2604 | 42 | James Turnbull | [http://projects.puppetlabs.com/issues/1507](http://projects.puppetlabs.com/issues/1507)). |
| 2605 | 36 | James Turnbull | |
| 2606 | 15 | James Turnbull | A new option, dbconnections, is now available that specifies a |
| 2607 | 15 | James Turnbull | limit for the number of database connections made to remote |
| 2608 | 58 | Todd Zullinger | databases (postgreSQL, MySQL). |
| 2609 | 1 | ||
| 2610 | 1 | A new option, dbport, is now available that specifies the database port for remote database connections. |
|
| 2611 | 58 | Todd Zullinger | |
| 2612 | 43 | Teyo Tyree | There's also a new option/feature that lets the puppet client use HTTP |
| 2613 | 15 | James Turnbull | compression (\-\-http_compression): |
| 2614 | 1 | ||
| 2615 | 15 | James Turnbull | Allow http compression in REST communication with the master. This setting might improve performance for agent -> master |
| 2616 | 1 | communications over slow WANs. Your puppetmaster needs to support compression (usually by activating some settings in a reverse-proxy in front of the puppetmaster, which |
|
| 2617 | 1 | rules out webrick). |
|
| 2618 | 1 | ||
| 2619 | 1 | It is harmless to activate this settings if your master doesn't support compression, but if it supports it, this setting might reduce on high-speed LANs. |
|
| 2620 | 1 | ||
| 2621 | 15 | James Turnbull | ### Binary changes |
| 2622 | 15 | James Turnbull | |
| 2623 | 15 | James Turnbull | The puppetd (or puppet agent) binary now supports the \-\-detailed-exitcodes option |
| 2624 | 15 | James Turnbull | available in the puppet binary. |
| 2625 | 58 | Todd Zullinger | |
| 2626 | 1 | The puppet agent will now create the ssl when passed the \-\-noop option. |
|
| 2627 | 1 | ||
| 2628 | 1 | Certificates cleaned with puppetca (or puppet cert) are now also revoked. |
|
| 2629 | 1 | ||
| 2630 | 15 | James Turnbull | The puppetca (puppet cert) and puppetd (puppet agent) binaries now have support for certificate |
| 2631 | 15 | James Turnbull | fingerprinting and support for specifying digest algorithms. To |
| 2632 | 15 | James Turnbull | display the fingerprint of a client certificate use: |
| 2633 | 15 | James Turnbull | |
| 2634 | 1 | $ puppetd --fingerprint |
|
| 2635 | 58 | Todd Zullinger | |
| 2636 | 4 | James Turnbull | or |
| 2637 | 4 | James Turnbull | |
| 2638 | 4 | James Turnbull | $ puppet agent --fingerprint |
| 2639 | 4 | James Turnbull | |
| 2640 | 4 | James Turnbull | To specify a particular digest algorithm use \-\-digest DIGESTNAME. |
| 2641 | 8 | James Turnbull | |
| 2642 | 1 | To fingerprint a certificate with puppetca use: |
|
| 2643 | 23 | James Turnbull | |
| 2644 | 23 | James Turnbull | $ puppetca --fingerprint host.example.com |
| 2645 | 23 | James Turnbull | |
| 2646 | 23 | James Turnbull | or |
| 2647 | 23 | James Turnbull | |
| 2648 | 23 | James Turnbull | $ puppet cert --fingerprint host.example.com |
| 2649 | 23 | James Turnbull | |
| 2650 | 23 | James Turnbull | Also supported is the \-\-digest option. |
| 2651 | 23 | James Turnbull | |
| 2652 | 23 | James Turnbull | The puppetdoc binary now documents inheritance between nodes, shows classes added via the require function and resources added via the realize function. |
| 2653 | 23 | James Turnbull | |
| 2654 | 45 | Andrei Pozolotin | ## Functions |
| 2655 | 45 | Andrei Pozolotin | |
| 2656 | 45 | Andrei Pozolotin | The regsubst function now takes arrays as input (see \#2491). |
| 2657 | 45 | Andrei Pozolotin | |
| 2658 | 45 | Andrei Pozolotin | ## Reports |
| 2659 | 45 | Andrei Pozolotin | |
| 2660 | 45 | Andrei Pozolotin | There is a new report type called `http`. If you specify: |
| 2661 | 45 | Andrei Pozolotin | |
| 2662 | 45 | Andrei Pozolotin | reports = http |
| 2663 | 49 | Andrei Pozolotin | |
| 2664 | 45 | Andrei Pozolotin | Then the new report processor will make a HTTP POST of the report in YAML format to a specified URL. By default this URL is the report import URL for a local Puppet Dashboard installation. You can override this with the new `reporturl` setting. |
| 2665 | 45 | Andrei Pozolotin | |
| 2666 | 45 | Andrei Pozolotin | reports = http |
| 2667 | 45 | Andrei Pozolotin | reporturl = http://yoururl/post/ |
| 2668 | 45 | Andrei Pozolotin | |
| 2669 | 45 | Andrei Pozolotin | ## Puppet Runner |
| 2670 | 45 | Andrei Pozolotin | |
| 2671 | 46 | Andrei Pozolotin | In order for this to run at all: |
| 2672 | 46 | Andrei Pozolotin | |
| 2673 | 46 | Andrei Pozolotin | puppetrun --foreground --host XXX |
| 2674 | 46 | Andrei Pozolotin | |
| 2675 | 47 | Andrei Pozolotin | you must alter auth.conf to include: |
| 2676 | 48 | Andrei Pozolotin | |
| 2677 | 46 | Andrei Pozolotin | path /run |
| 2678 | 1 | method save |
|
| 2679 | 1 | allow * |
|
| 2680 | 47 | Andrei Pozolotin | |
| 2681 | 47 | Andrei Pozolotin | otherwise you will receive: |
| 2682 | 47 | Andrei Pozolotin | |
| 2683 | 47 | Andrei Pozolotin | Host $PUPPET failed: Error 403 on SERVER: Forbidden request: $MASTER(X.X.X.X) access to /run/$PUPPET [save] authenticated at line 101 |
| 2684 | 46 | Andrei Pozolotin | |
| 2685 | 46 | Andrei Pozolotin | |
| 2686 | 45 | Andrei Pozolotin | ## Incompatibilities |
| 2687 | 13 | James Turnbull | |
| 2688 | 5 | James Turnbull | PID files for puppet and master used to be named: |
| 2689 | 5 | James Turnbull | |
| 2690 | 5 | James Turnbull | puppetd.pid |
| 2691 | 5 | James Turnbull | puppetmasterd.pid |
| 2692 | 5 | James Turnbull | |
| 2693 | 5 | James Turnbull | new names are: |
| 2694 | 5 | James Turnbull | |
| 2695 | 5 | James Turnbull | agent.pid |
| 2696 | 5 | James Turnbull | master.pid |
| 2697 | 6 | James Turnbull | |
| 2698 | 6 | James Turnbull | |
| 2699 | 5 | James Turnbull | |
| 2700 | 5 | James Turnbull | |
| 2701 | 5 | James Turnbull | |
| 2702 | 5 | James Turnbull | # 0.25.5 |
| 2703 | 5 | James Turnbull | |
| 2704 | 5 | James Turnbull | ## Binaries and Configuration |
| 2705 | 5 | James Turnbull | |
| 2706 | 5 | James Turnbull | The default location for Puppet's dynamic files, the $vardir option, |
| 2707 | 5 | James Turnbull | has changed from /var/puppet to /var/lib/puppet. This is already the |
| 2708 | 5 | James Turnbull | default for the Fedora EPEL and Debian/Ubuntu packages and brings |
| 2709 | 5 | James Turnbull | Puppet into FHS compliance. |
| 2710 | 5 | James Turnbull | |
| 2711 | 5 | James Turnbull | The default factpath is now $vardir/lib/facter/. |
| 2712 | 5 | James Turnbull | |
| 2713 | 5 | James Turnbull | The "use_cached_catalog" option is available. This determines whether to only use the cached catalog rather than compiling a new catalog on every run. Puppet can be run with this enabled by default and then selectively disabled when a recompile is desired. The option defaults to false. |
| 2714 | 5 | James Turnbull | |
| 2715 | 1 | ## Functions |
|
| 2716 | 1 | ||
| 2717 | 1 | The generate function now sets the working directory to the |
|
| 2718 | 1 | directory containing the specified command. |
|
| 2719 | 5 | James Turnbull | |
| 2720 | 1 | ## Types and Providers |
|
| 2721 | 1 | ||
| 2722 | 1 | You can now specify checksum => none in the file type to disable |
|
| 2723 | 1 | file check-summing. |
|
| 2724 | 1 | ||
| 2725 | 1 | ## Error Messages |
|
| 2726 | 1 | ||
| 2727 | 1 | The "warning: Value of 'preferred_serialization_format' ('pson') is |
|
| 2728 | 1 | invalid, using default ('yaml')" is now a debug level message. |
|
| 2729 | 1 | ||
| 2730 | 1 | # 0.25.4 |
|
| 2731 | 1 | ||
| 2732 | 1 | ## Binaries and Configuration |
|
| 2733 | 1 | ||
| 2734 | 1 | - Pre- and Post- transaction hooks. |
|
| 2735 | 1 | ||
| 2736 | 1 | These hooks allow you to specify commands that should be run pre |
|
| 2737 | 1 | and post a Puppet configuration transaction. They are set with the |
|
| 2738 | 1 | prerun\_command and postrun\_command settings in the puppet.conf |
|
| 2739 | 1 | configuration file: |
|
| 2740 | 1 | ||
| 2741 | 1 | prerun_command = /bin/runbeforetransaction |
|
| 2742 | 1 | postrun_command = /bin/runaftertransaction |
|
| 2743 | 1 | ||
| 2744 | 1 | The command must exit with 0, i.e. succeed, otherwise the |
|
| 2745 | 1 | transaction will fail - if the pre command fails before the |
|
| 2746 | 1 | transaction is run and if the post command fails at the end of the |
|
| 2747 | 1 | transaction. |
|
| 2748 | 1 | ||
| 2749 | 1 | # 0.25.3 |
|
| 2750 | 1 | ||
| 2751 | 1 | No major notes. |
|
| 2752 | 1 | ||
| 2753 | 1 | # 0.25.2 |
|
| 2754 | 1 | ||
| 2755 | 1 | ## Binaries and Configuration |
|
| 2756 | 1 | ||
| 2757 | 1 | Puppet now has the manage\_internal\_file\_permissions option which |
|
| 2758 | 1 | allows you to enable or disable Puppet management of internal |
|
| 2759 | 1 | files, for example those in /var/lib/puppet. When false Puppet will |
|
| 2760 | 18 | James Turnbull | NOT manage these files. Defualt is true. |
| 2761 | 1 | ||
| 2762 | 1 | The puppetdoc binary now works with Regex node names |
|
| 2763 | 1 | ||
| 2764 | 1 | Fix for temporary file issues |
|
| 2765 | 1 | ([https://bugzilla.redhat.com/show\_bug.cgi?id=502881](https://bugzilla.redhat.com/show_bug.cgi?id=502881)) |
|
| 2766 | 1 | ||
| 2767 | 1 | ## Types and Providers |
|
| 2768 | 1 | ||
| 2769 | 1 | Cron type now supported on AIX |
|
| 2770 | 1 | ||
| 2771 | 1 | Mailist type is now working again |
|
| 2772 | 1 | ||
| 2773 | 1 | SELinux now supports contexts with upper case titles |
|
| 2774 | 1 | ||
| 2775 | 1 | When setting aliases using the host and sshkey types now use the host\_aliases attribute rather than alias. |
|
| 2776 | 1 | ||
| 2777 | 1 | ## Error Messages |
|
| 2778 | 1 | ||
| 2779 | 1 | File serving permissions error messages enhanced |
|
| 2780 | 1 | ||
| 2781 | 1 | The debug format message has been changed and clarified from: |
|
| 2782 | 1 | ||
| 2783 | 1 | debug: Format s not supported for Puppet::FileServing::Metadata; has not implemented method 'from_s' |
|
| 2784 | 1 | ||
| 2785 | 1 | to: |
|
| 2786 | 1 | ||
| 2787 | 1 | debug: file_metadata supports formats: b64_zlib_yaml marshal pson raw yaml; using pson |
|
| 2788 | 1 | ||
| 2789 | 1 | ## Dependencies |
|
| 2790 | 1 | ||
| 2791 | 1 | When running the tests you no longer need to use RSpec version |
|
| 2792 | 1 | 1.2.2 but rather versions including and newer than. |
|
| 2793 | 1 | ||
| 2794 | 1 | ## LDAP |
|
| 2795 | 1 | ||
| 2796 | 1 | There are now valid and proper OIDs in the LDAP puppet.schema that |
|
| 2797 | 1 | are unique and registered for Puppet. |
|
| 2798 | 1 | ||
| 2799 | 1 | # 0.25.1 |
|
| 2800 | 1 | ||
| 2801 | 1 | ## Functions |
|
| 2802 | 1 | ||
| 2803 | 1 | We've clarified that the new 'require' function only works for |
|
| 2804 | 1 | 0.25.x clients. If the function is specified with 0.24.x or earlier |
|
| 2805 | 1 | clients the class will be included but the inherent dependency will |
|
| 2806 | 1 | not be created. A warning message will be generated informing you |
|
| 2807 | 1 | of this. |
|
| 2808 | 1 | ||
| 2809 | 1 | ## Language |
|
| 2810 | 1 | ||
| 2811 | 1 | Node regular expression matching rules have been clarified you can |
|
| 2812 | 1 | see the rules |
|
| 2813 | 1 | [[Language\_Tutorial#matching-nodes-with-regular-expressions|Language |
|
| 2814 | 1 | Tutorial]] . |
|
| 2815 | 1 | ||
| 2816 | 1 | ## Types and Providers |
|
| 2817 | 1 | ||
| 2818 | 1 | The Nagios serviceescalation type now supports the use of the |
|
| 2819 | 1 | servicegroup\_name attribute. |
|
| 2820 | 1 | ||
| 2821 | 1 | ## Binaries and Configuration |
|
| 2822 | 1 | ||
| 2823 | 1 | The Puppet gem now installs all binaries to the 'bin' directory |
|
| 2824 | 1 | because Gems lack support for both a bin and sbin directory. Facter |
|
| 2825 | 1 | (version later than 1.5.1) is now also a dependency for the gem. |
|
| 2826 | 1 | ||
| 2827 | 1 | # 0.25.0 |
|
| 2828 | 1 | ||
| 2829 | 1 | ## Migration to REST |
|
| 2830 | 1 | ||
| 2831 | 1 | There are substantial changes in Puppet 0.25.0 and more changes to |
|
| 2832 | 1 | come in the future. Most of the changes in 0.25.0 are internal |
|
| 2833 | 1 | refactoring rather than behavioural. The 0.25.0 release should be |
|
| 2834 | 1 | fully backwards compatible behaviourally with the 0.24.x branch. |
|
| 2835 | 1 | ||
| 2836 | 1 | This means a 0.25.0 master will be able to manage 0.24.x clients. |
|
| 2837 | 1 | You will need, however, to upgrade both your master and your |
|
| 2838 | 1 | clients to take advantage of all the new features and the |
|
| 2839 | 1 | substantial gains in performance offered by 0.25.0. |
|
| 2840 | 1 | ||
| 2841 | 1 | The principal change is the introduction of Indirected REST to |
|
| 2842 | 1 | replace XML-RPC as the underlying Puppet communications mechanism. |
|
| 2843 | 1 | ||
| 2844 | 1 | This is a staged change with some functions migrated in this |
|
| 2845 | 1 | release and some in the next release. In the first stage of the |
|
| 2846 | 1 | Indirected REST implementation the following functions have been |
|
| 2847 | 1 | migrated: |
|
| 2848 | 1 | ||
| 2849 | 1 | - Certificates |
|
| 2850 | 1 | - Catalogue |
|
| 2851 | 1 | - Reports |
|
| 2852 | 1 | - Files |
|
| 2853 | 1 | ||
| 2854 | 1 | In 0.26.0 (the next release) the following remaining functions will |
|
| 2855 | 1 | be migrated: |
|
| 2856 | 1 | ||
| 2857 | 1 | - Filebucket |
|
| 2858 | 1 | - Resource handler |
|
| 2859 | 1 | - Runner handler |
|
| 2860 | 1 | - Status handler |
|
| 2861 | 1 | ||
| 2862 | 1 | The new REST implementation also comes with authorisation |
|
| 2863 | 1 | configuration in a similar style to the namespaceauth used for |
|
| 2864 | 1 | XML-RPC. This new authorisation is managed through the auth.conf |
|
| 2865 | 1 | file (there is an example file in the conf directory of the |
|
| 2866 | 1 | tarball). This does not yet fully replace the namespaceauth.conf |
|
| 2867 | 1 | file but will when the remaining handlers are migrated to REST. It |
|
| 2868 | 1 | works in a similar way to the namespaceauth.conf file and the |
|
| 2869 | 1 | example file contains additional documentation. |
|
| 2870 | 1 | ||
| 2871 | 1 | As a result of the introduction of REST and other changes you |
|
| 2872 | 14 | James Turnbull | should see substantial performance improvements in this release. |
| 2873 | 1 | These particularly include improvements in: |
|
| 2874 | 1 | ||
| 2875 | 1 | - File serving |
|
| 2876 | 14 | James Turnbull | - The performance of large graphs with lots of edges |
| 2877 | 1 | - Stored configuration (see also Puppet Queuing below) |
|
| 2878 | 1 | ||
| 2879 | 1 | Other new features include (this is not a complete list - please |
|
| 2880 | 1 | see the Roadmap for all tickets closed in this release): |
|
| 2881 | 1 | ||
| 2882 | 1 | ## Deprecations |
|
| 2883 | 1 | ||
| 2884 | 1 | Custom types and facts in modules have been moved from the |
|
| 2885 | 1 | module/plugins to module/lib. Please rename your directories. |
|
| 2886 | 1 | ||
| 2887 | 1 | The modules share and the module name must now be specified in source attributes of the |
|
| 2888 | 1 | file type, i.e: |
|
| 2889 | 85 | Jacob Helwig | |
| 2890 | 1 | file { "file": |
|
| 2891 | 1 | source => "puppet://server/modules/module_name/file", |
|
| 2892 | 1 | } |
|
| 2893 | 1 | ||
| 2894 | 1 | Binary-specific configuration files, such as puppetd.conf or |
|
| 2895 | 1 | puppetmasterd.conf are now totally deprecated and ignored. |
|
| 2896 | 1 | ||
| 2897 | 1 | ## New Language Features |
|
| 2898 | 1 | ||
| 2899 | 1 | Regular expression matching is now possible in node definitions: |
|
| 2900 | 1 | ||
| 2901 | 1 | node /web|db/ { |
|
| 2902 | 1 | include blah |
|
| 2903 | 1 | } |
|
| 2904 | 1 | ||
| 2905 | 1 | node /^(foo|bar)\.example\.com$/ { |
|
| 2906 | 1 | include blah |
|
| 2907 | 1 | } |
|
| 2908 | 1 | ||
| 2909 | 1 | Puppet now also allows regular expressions in if statements with |
|
| 2910 | 1 | the use of the =\~ (match) and !\~ (not match) operators: |
|
| 2911 | 1 | ||
| 2912 | 1 | if $uname =~ /Linux|Debian/ { |
|
| 2913 | 1 | ... |
|
| 2914 | 1 | } |
|
| 2915 | 1 | ||
| 2916 | 1 | Also available are ephemeral variables ($0 to $9) in the current |
|
| 2917 | 1 | scope which contain regex captures: |
|
| 2918 | 1 | ||
| 2919 | 1 | if $uname =~ /(Linux|Debian)/ { |
|
| 2920 | 85 | Jacob Helwig | notice("this is a $1 system") |
| 2921 | 1 | } |
|
| 2922 | 1 | ||
| 2923 | 1 | Similar functionality is available in case and selector |
|
| 2924 | 1 | statements: |
|
| 2925 | 1 | ||
| 2926 | 1 | $var = "foobar" |
|
| 2927 | 1 | case $var { |
|
| 2928 | 1 | "foo": { |
|
| 2929 | 1 | notify { "got a foo": } |
|
| 2930 | 1 | } |
|
| 2931 | 1 | /(.*)bar$/: { |
|
| 2932 | 1 | notify{ "hey we got a $1": } |
|
| 2933 | 1 | } |
|
| 2934 | 1 | } |
|
| 2935 | 1 | ||
| 2936 | 1 | $val = $test ? { |
|
| 2937 | 1 | /^match.*$/ => "matched", |
|
| 2938 | 1 | default => "default" |
|
| 2939 | 1 | } |
|
| 2940 | 1 | ||
| 2941 | 1 | ## New functions |
|
| 2942 | 1 | ||
| 2943 | 1 | There are four new functions: |
|
| 2944 | 1 | ||
| 2945 | 1 | require - Similar to the include function but creates a dependency |
|
| 2946 | 1 | on the required class in the current class. This means the required |
|
| 2947 | 1 | class will be loaded before the current class is processed. |
|
| 2948 | 1 | ||
| 2949 | 1 | split - allows you to split strings and arrays |
|
| 2950 | 1 | ||
| 2951 | 1 | versioncmp - allows you to compare versions |
|
| 2952 | 1 | ||
| 2953 | 1 | shellquote - Quote and concatenate arguments for use in the shell, |
|
| 2954 | 1 | for example as part of Exec type commands. |
|
| 2955 | 1 | ||
| 2956 | 1 | ## Configuration Versioning |
|
| 2957 | 1 | ||
| 2958 | 1 | A new configuration option, config\_version, is now available: |
|
| 2959 | 58 | Todd Zullinger | |
| 2960 | 1 | config_version = /usr/local/bin/return_version |
|
| 2961 | 80 | Jacob Helwig | |
| 2962 | 1 | The option allows you to specify a command that returns a version |
|
| 2963 | 65 | Nick Fagerlund | for the configuration that is being applied to your hosts. The |
| 2964 | 1 | command should return a string, such as a version number or name. |
|
| 2965 | 1 | ||
| 2966 | 1 | Puppet then runs this command at compile time. Each resource is |
|
| 2967 | 80 | Jacob Helwig | marked with the value returned from this command. This value is |
| 2968 | 1 | also added to the log instance, serialised and sent along with any |
|
| 2969 | 8 | James Turnbull | report generated. This allows you to parse your report output and |
| 2970 | 1 | ascertain which configuration version was used to generate the |
|
| 2971 | 1 | resource. |
|
| 2972 | 1 | ||
| 2973 | 1 | ## Command Line Compile & Apply |
|
| 2974 | 1 | ||
| 2975 | 1 | Puppet now has the capability to compile a catalogue and output it |
|
| 2976 | 1 | in JSON from the Puppet master. You can do this via the `--compile` |
|
| 2977 | 1 | command line option. |
|
| 2978 | 1 | ||
| 2979 | 1 | # puppetmasterd --compile nodename |
|
| 2980 | 1 | ||
| 2981 | 1 | Corresponding with this feature is the ability to apply a JSON |
|
| 2982 | 1 | configuration from the puppet binary using the `--apply` option. |
|
| 2983 | 1 | ||
| 2984 | 58 | Todd Zullinger | $ puppet --apply cataloguefile |
| 2985 | 1 | ||
| 2986 | 1 | Or you can use - to read the JSON in from standard input. Puppet |
|
| 2987 | 1 | will then compile and apply the configuration. |
|
| 2988 | 1 | ||
| 2989 | 1 | ## Thin Stored Configuration |
|
| 2990 | 1 | ||
| 2991 | 1 | 0.25.0 also introduces the concept of "thin" stored configurations. |
|
| 2992 | 1 | This is a version of stored configuration that only stores the |
|
| 2993 | 1 | facts and exported resources in the database. This will perform |
|
| 2994 | 1 | better than full stored configuration but because not all resources |
|
| 2995 | 1 | are available this may not suit all purposes. |
|
| 2996 | 1 | ||
| 2997 | 1 | Thin stored configurations are initiated by setting the |
|
| 2998 | 1 | thin\_storeconfigs option on the Puppet master or on the |
|
| 2999 | 1 | puppetmasterd command line using \-\-thin\_storedconfigs. |
|
| 3000 | 1 | ||
| 3001 | 1 | ## Puppet Queuing |
|
| 3002 | 1 | ||
| 3003 | 1 | There is a new binary called puppetqd that supports queuing for |
|
| 3004 | 1 | stored configurations. You can read about how it works and how to |
|
| 3005 | 1 | implement it at: |
|
| 3006 | 1 | ||
| 3007 | 1 | [[Using Stored Configuration]] |
|
| 3008 | 1 | ||
| 3009 | 1 | Further documentation is in the README.queuing file in the |
|
| 3010 | 1 | tarball. |
|
| 3011 | 1 | ||
| 3012 | 1 | ## Application Controller |
|
| 3013 | 1 | ||
| 3014 | 1 | All the logic has been moved out of the binary commands and added |
|
| 3015 | 1 | to an Application Controller. You can see the controller code at |
|
| 3016 | 1 | lib/puppet/application.rb and the logic for each application at |
|
| 3017 | 1 | lib/puppet/application/binaryname.rb. |
|
| 3018 | 1 | ||
| 3019 | 1 | ## Types and Providers |
|
| 3020 | 1 | ||
| 3021 | 1 | The return values from the Exec type can now be specified as an |
|
| 3022 | 1 | array. |
|
| 3023 | 1 | ||
| 3024 | 1 | The SMF and daemontools service providers can now import a |
|
| 3025 | 1 | configuration file. |
|
| 3026 | 1 | ||
| 3027 | 1 | The mailist type is now supported on Red Hat, CentOS and Fedora |
|
| 3028 | 1 | distributions |
|
| 3029 | 1 | ||
| 3030 | 1 | The NetInfo provider has been deprecated for OSX in favour of the |
|
| 3031 | 1 | Directory Services provider. |
|
| 3032 | 1 | ||
| 3033 | 1 | ## Binary Location Move |
|
| 3034 | 1 | ||
| 3035 | 1 | To bring Puppet more in line with general packaging standards the |
|
| 3036 | 1 | puppetd, puppetca, puppetrun, puppetmasterd, and puppetqd binaries |
|
| 3037 | 1 | now reside in the sbin directory rather than the bin directory when |
|
| 3038 | 1 | installed from the source package. |
|
| 3039 | 1 | ||
| 3040 | 1 | ## Passenger |
|
| 3041 | 1 | ||
| 3042 | 1 | Ensure you have the latest version of the config.ru file from the |
|
| 3043 | 1 | ext/rack/files/ directory in the tarball. |
|
| 3044 | 1 | ||
| 3045 | 1 | ## Rails |
|
| 3046 | 1 | ||
| 3047 | 1 | Rails versions up to 2.3.x are now supported. Rails version 2.2.2 |
|
| 3048 | 1 | or greater is required. |
|
| 3049 | 1 | ||
| 3050 | 1 | # 0.24.9 |
|
| 3051 | 1 | ||
| 3052 | 1 | ## Binaries and Configuration |
|
| 3053 | 1 | ||
| 3054 | 1 | Fix for temporary file issues |
|
| 3055 | 1 | ([https://bugzilla.redhat.com/show\_bug.cgi?id=502881](https://bugzilla.redhat.com/show_bug.cgi?id=502881)) |
|
| 3056 | 1 | ||
| 3057 | 1 | # 0.24.8 |
|
| 3058 | 1 | ||
| 3059 | 1 | ## Functions |
|
| 3060 | 1 | ||
| 3061 | 1 | Added sprintf function |
|
| 3062 | 1 | ||
| 3063 | 1 | Added regsubst function |
|
| 3064 | 1 | ||
| 3065 | 1 | # 0.24.7 |
|
| 3066 | 1 | ||
| 3067 | 1 | ## Binary and Configuration |
|
| 3068 | 1 | ||
| 3069 | 1 | The puppetdoc binary has been updated to output manifest and module |
|
| 3070 | 1 | documentation |
|
| 3071 | 1 | ||
| 3072 | 1 | Removed conf/debian directory and Debian packaging information now |
|
| 3073 | 1 | maintained downstream |
|
| 3074 | 1 | ||
| 3075 | 1 | The puppetca binary can now clean unsigned certificates |
|
| 3076 | 1 | ||
| 3077 | 1 | Removed all the vendor gems |
|
| 3078 | 1 | ||
| 3079 | 1 | Added Rake tasks to support continuous integration |
|
| 3080 | 1 | ||
| 3081 | 1 | ## Types and Providers |
|
| 3082 | 1 | ||
| 3083 | 1 | Added augeas type |
|
| 3084 | 1 | ||
| 3085 | 1 | Added MCX type |
|
| 3086 | 1 | ||
| 3087 | 1 | Add the macauthorization type |
|
| 3088 | 1 | ||
| 3089 | 1 | Add the directoryservice type |
|
| 3090 | 1 | ||
| 3091 | 1 | Deprecated the NetInfo nameservice provider |
|
| 3092 | 1 | ||
| 3093 | 1 | Added zfs, zpool types and branded zones support to the zones type |
|
| 3094 | 1 | ||
| 3095 | 1 | Added uninstall functionality to yum provider |
|
| 3096 | 1 | ||
| 3097 | 1 | Added preseed support to apt provider's uninstall and purge |
|
| 3098 | 1 | functions |
|
| 3099 | 1 | ||
| 3100 | 1 | Added versionable feature to the RPM provider |
|
| 3101 | 1 | ||
| 3102 | 1 | Replaced SELInux calls to binaries with Ruby SELinux bindings |
|
| 3103 | 1 | ||
| 3104 | 1 | Updates to the Nagios types |
|
| 3105 | 1 | ||
| 3106 | 1 | ## Language and Facts |
|
| 3107 | 1 | ||
| 3108 | 1 | Added support for @doc type and manifest documentation support |
|
| 3109 | 1 | ||
| 3110 | 1 | Added multiline comment support |
|
| 3111 | 58 | Todd Zullinger | |
| 3112 | 1 | Classes and nodes should set $name variables |
|
| 3113 | 1 | ||
| 3114 | 1 | ## Functions |
|
| 3115 | 1 | ||
| 3116 | 1 | Add inline\_template function |
|
| 3117 | 1 | ||
| 3118 | 8 | James Turnbull | ## Stored Configuration |
| 3119 | 1 | ||
| 3120 | 1 | The environment has been added to the stored configuration database |
|
| 3121 | 1 | structure. You will need to specify the dbmigrate = true in your |
|
| 3122 | 58 | Todd Zullinger | puppet.conf to ensure your database is upgraded to the new schema. |
| 3123 | 1 | ||
| 3124 | 1 | ## Errata |
|
| 3125 | 1 | ||
| 3126 | 1 | \#1922: Severe breakage when using parser functions with complex |
|
| 3127 | 1 | arguments. |
|
| 3128 | 1 | ||
| 3129 | 1 | # 0.24.6 |
|
| 3130 | 1 | ||
| 3131 | 58 | Todd Zullinger | ## Dependencies |
| 3132 | 1 | ||
| 3133 | 1 | \#1553: Depends on Facter 1.5 |
|
| 3134 | 1 | ||
| 3135 | 1 | ## Binary and Configuration |
|
| 3136 | 1 | ||
| 3137 | 1 | Added \-\-detailed-exits option to puppet binary that adds specific |
|
| 3138 | 58 | Todd Zullinger | exit codes after runs. |
| 3139 | 1 | ||
| 3140 | 58 | Todd Zullinger | Log messages are now tagged with the log level, making it easier to |
| 3141 | 58 | Todd Zullinger | match messages in the tagmail report. |
| 3142 | 1 | ||
| 3143 | 1 | Added support for running Puppet inside a Rack application |
|
| 3144 | 1 | (mod\_rails) with Passenger and Apache |
|
| 3145 | 1 | ||
| 3146 | 1 | Fixed the puppetca \-\-clean \-\-all binary so that both signed and |
|
| 3147 | 8 | James Turnbull | unsigned certificates are cleaned. |
| 3148 | 1 | ||
| 3149 | 8 | James Turnbull | Moved individual functions out of functions.rb into |
| 3150 | 1 | lib/puppet/parser/functions directory. New functions should be |
|
| 3151 | 1 | created in this directory. |
|
| 3152 | 1 | ||
| 3153 | 8 | James Turnbull | Added the -P/\-\-ping option to puppetrun. |
| 3154 | 1 | ||
| 3155 | 8 | James Turnbull | Allow specification of \-\-bindir \-\-sbindir \-\-sitelibdir \-\-mandir |
| 3156 | 1 | \-\-destdir in installation |
|
| 3157 | 8 | James Turnbull | |
| 3158 | 1 | ## Language and Facts |
|
| 3159 | 1 | ||
| 3160 | 8 | James Turnbull | Allow multiple overrides in one statement |
| 3161 | 1 | ||
| 3162 | 1 | Fixed \#1585 - Allow complex 'if' and variable expressions |
|
| 3163 | 1 | ||
| 3164 | 8 | James Turnbull | Fixed \#1584 - Added support for appended variables |
| 3165 | 1 | ||
| 3166 | 8 | James Turnbull | ## Types and Providers |
| 3167 | 1 | ||
| 3168 | 1 | Feature \#1624 - Added RBAC roles to solaris user provider |
|
| 3169 | 1 | ||
| 3170 | 1 | Fixed \#1586 - Specifying "fully qualified" package names in Gentoo |
|
| 3171 | 1 | ||
| 3172 | 8 | James Turnbull | Fixed \#1530 - ssh\_authorized\_keys provider does not crash anymore |
| 3173 | 1 | on SSH type 1 keys |
|
| 3174 | 1 | ||
| 3175 | 1 | Fixes \#1455 - Adds HP-UX support for user type |
|
| 3176 | 1 | ||
| 3177 | 1 | Added daemontools and runit providers for service type |
|
| 3178 | 1 | ||
| 3179 | 58 | Todd Zullinger | Fixed \#1508 - Added HP-UX package provider |
| 3180 | 58 | Todd Zullinger | |
| 3181 | 1 | Fixed \#1456 - add proxy configuration capability to yum repo |
|
| 3182 | 1 | ||
| 3183 | 1 | # 0.24.5 |
|
| 3184 | 1 | ||
| 3185 | 1 | ## Binary and Configuration |
|
| 3186 | 1 | ||
| 3187 | 1 | Added the catalog_format configuration option which accepts the |
|
| 3188 | 1 | yaml or marshal options. This option allows you to switch the |
|
| 3189 | 1 | catalog formatting from YAML to Marshal. Marshal formatting should |
|
| 3190 | 1 | provide significant performance enhancement over YAML. |
|
| 3191 | 1 | ||
| 3192 | 1 | The return code from waitpid now right shifted 8 bits. |
|
| 3193 | 1 | ||
| 3194 | 1 | Added support for the \-\-all option to puppetca \-\-clean. If puppetca |
|
| 3195 | 1 | \-\-clean \-\-all is issued then all client certificates are removed. |
|
| 3196 | 1 | ||
| 3197 | 1 | ## Environments |
|
| 3198 | 58 | Todd Zullinger | |
| 3199 | 1 | The default environment is now production. |
|
| 3200 | 1 | ||
| 3201 | 1 | ## Types and Providers |
|
| 3202 | 1 | ||
| 3203 | 1 | The interface type is buggy and has been disabled. |
|
| 3204 | 1 | ||
| 3205 | 1 | A native type type for managing ssh authorized\_keys files is |
|
| 3206 | 1 | available |
|
| 3207 | 1 | ||
| 3208 | 1 | The gem package type can now specify source repositories. |
|
| 3209 | 1 | ||
| 3210 | 1 | The service type now supports HP-UX. |
|
| 3211 | 1 | ||
| 3212 | 1 | On Red Hat instead of deleting the init scripts (with chkconfig |
|
| 3213 | 1 | \-\-del) we disable it with chkconfig service off, and do the same |
|
| 3214 | 1 | for enable => true; |
|
| 3215 | 1 | ||
| 3216 | 1 | Added LDAP providers for users and groups. |
|
| 3217 | 1 | ||
| 3218 | 1 | ## Functions |
|
| 3219 | 1 | ||
| 3220 | 1 | Added SHA1 function from DavidS to core |
|
| 3221 | 1 | ||
| 3222 | 1 | ## Language and Facts |
|
| 3223 | 1 | ||
| 3224 | 1 | Facts in plugin directories should now be autoloaded, as long as |
|
| 3225 | 1 | you're using Facter 1.5. |
|
| 3226 | 1 | ||
| 3227 | 1 | Aliases to titles now work for resources. |
|
| 3228 | 1 | ||
| 3229 | 1 | Modified the 'factpath' setting to automatically configure Facter |
|
| 3230 | 1 | to load facts there if a new enough version of Facter is used. |
|
| 3231 | 1 | ||
| 3232 | 1 | ## Modules |
|
| 3233 | 1 | ||
| 3234 | 1 | Templates in the templatedir are preferred to module templates. |
|
| 3235 | 1 | ||
| 3236 | 1 | ## LDAP |
|
| 3237 | 1 | ||
| 3238 | 1 | Removed support for the 'node\_name' setting in LDAP and external |
|
| 3239 | 1 | node lookups. |
|
| 3240 | 1 | ||
| 3241 | 1 | ## Nodes |
|
| 3242 | 1 | ||
| 3243 | 1 | Removed support for 'default' nodes in external nodes. LDAP nodes |
|
| 3244 | 1 | now use the certificate name, the short name, and 'default', but |
|
| 3245 | 1 | external nodes just use the certificate name and any custom |
|
| 3246 | 1 | terminus types will use just the certificate name. |
|
| 3247 | 1 | ||
| 3248 | 1 | ## Virtual and Exported/Collected Resources |
|
| 3249 | 1 | ||
| 3250 | 1 | Exporting or collecting resources no longer raises an exception |
|
| 3251 | 1 | when no storeconfigs is enabled, it just produces a warning. |
|
| 3252 | 1 | ||
| 3253 | 1 | # 0.24.4 |
|
| 3254 | 1 | ||
| 3255 | 1 | ## Binary and Configuration |
|
| 3256 | 1 | ||
| 3257 | 1 | The http keep-alive is now disabled by default. There is now a |
|
| 3258 | 1 | constant in Puppet::Network::HttpPool that will disable or enable |
|
| 3259 | 1 | this feature but it you enable it you may be at risk of corruption, |
|
| 3260 | 1 | especially in file serving. |
|
| 3261 | 1 | ||
| 3262 | 1 | The yamldir is automatically created by the server now that it's in |
|
| 3263 | 1 | the puppetmasterd section rather than a separate yaml section. |
|
| 3264 | 1 | ||
| 3265 | 1 | ## Types and Providers |
|
| 3266 | 1 | ||
| 3267 | 1 | In the OpenBSD package provider, assume a source ending in a / |
|
| 3268 | 1 | indicates it is a directory, and pass it to pkg\_add via PKG\_PATH. |
|
| 3269 | 1 | Allows pkg\_add to resolve dependencies, and make it possible to |
|
| 3270 | 1 | specify packages without version numbers. |
|
| 3271 | 1 | ||
| 3272 | 1 | Provider suitability is now checked at resource evaluation time, |
|
| 3273 | 1 | rather than resource instantiation time. This means that you don't |
|
| 3274 | 1 | catch your "errors" as early, but it also means you should be able |
|
| 3275 | 1 | to realistically configure a whole host in one run. |
|
| 3276 | 1 | ||
| 3277 | 1 | ## Documentation |
|
| 3278 | 1 | ||
| 3279 | 1 | Puppet now has man pages available. These are recreated at each |
|
| 3280 | 1 | release. They are located in the man directory and are installed |
|
| 3281 | 1 | into mandir. |
|
| 3282 | 1 | ||
| 3283 | 1 | # 0.24.3 |
|
| 3284 | 1 | ||
| 3285 | 1 | ## Languages and Facts |
|
| 3286 | 1 | ||
| 3287 | 1 | Downloading plugins and facts now ignores noop. Note that this |
|
| 3288 | 1 | changes the behaviour of a resource's noop setting. The resources |
|
| 3289 | 1 | noop setting will now alway override the global setting |
|
| 3290 | 1 | (previously, whichever was true would win). |
|
| 3291 | 1 | ||
| 3292 | 1 | Host names can now have dashes anywhere. |
|
| 3293 | 1 | ||
| 3294 | 1 | ## Binaries and Configuration |
|
| 3295 | 1 | ||
| 3296 | 1 | The CA serial file will no longer ever be owned by root. |
|
| 3297 | 1 | ||
| 3298 | 1 | ## External Nodes |
|
| 3299 | 1 | ||
| 3300 | 1 | External node commands can specify an environment and Puppet will |
|
| 3301 | 1 | now use it. |
|
| 3302 | 1 | ||
| 3303 | 1 | ## LDAP Nodes |
|
| 3304 | 1 | ||
| 3305 | 1 | LDAP nodes now support environments, and the schema has been |
|
| 3306 | 1 | updated accordingly. |
|
| 3307 | 1 | ||
| 3308 | 1 | # 0.24.2 |
|
| 3309 | 1 | ||
| 3310 | 1 | ## Plugins |
|
| 3311 | 1 | ||
| 3312 | 1 | Autoloading now searches the plugins directory in each module, in |
|
| 3313 | 1 | addition to the libdir directory. The libdir directory is also |
|
| 3314 | 1 | deprecated, but supported for now to give people a chance to |
|
| 3315 | 1 | convert. |
|
| 3316 | 1 | ||
| 3317 | 1 | ## Virtual Resources |
|
| 3318 | 1 | ||
| 3319 | 1 | Virtual defined types are no longer evaluated. This introduces a |
|
| 3320 | 1 | behaviour change, in that you previously could realize a resource |
|
| 3321 | 1 | within a virtual defined resource, and now you must realize the |
|
| 3322 | 1 | entire defined resource, rather than just the contained resource. |
|
| 3323 | 1 | ||
| 3324 | 1 | ## Tags |
|
| 3325 | 1 | ||
| 3326 | 1 | The full name of qualified classes and the class parts are now |
|
| 3327 | 1 | added as tags. This is supported by the new Tagging module. |
|
| 3328 | 1 | ||
| 3329 | 1 | ## Binaries and Configuration |
|
| 3330 | 1 | ||
| 3331 | 1 | The rundir directory permissions are again set to 1777. |
|
| 3332 | 1 | ||
| 3333 | 1 | The yamldir setting has been moved to its own yaml section. This |
|
| 3334 | 1 | should keep the yamldir from being created on clients. |
|
| 3335 | 1 | ||
| 3336 | 1 | ## Language and Facts |
|
| 3337 | 1 | ||
| 3338 | 1 | Classes can once again be included multiple times. |
|
| 3339 | 1 | ||
| 3340 | 1 | Exec resources must now have unique names, although the commands |
|
| 3341 | 1 | can still be duplicated. This is easily accomplished by just |
|
| 3342 | 1 | specifying a unique name with whatever (unique or otherwise) |
|
| 3343 | 1 | command you need. |
|
| 3344 | 1 | ||
| 3345 | 1 | There is a change in Puppet's parser - the order of statement |
|
| 3346 | 1 | evaluation is no longer changed. This means case statements can now |
|
| 3347 | 1 | set variables that can be used by other variables. |
|
| 3348 | 1 | ||
| 3349 | 1 | ## Types and Providers |
|
| 3350 | 1 | ||
| 3351 | 1 | Added built-in support for Nagios types using Naginator to parse |
|
| 3352 | 1 | and generate the files. |
|
| 3353 | 1 | ||
| 3354 | 1 | The package type (and Puppet overall) is now compatible with gems |
|
| 3355 | 1 | 1.0.1. |
|
| 3356 | 1 | ||
| 3357 | 1 | You can now copy links using the file type. |
|
| 3358 | 1 | ||
| 3359 | 1 | Removed the loglevels from the valid values for logoutput in the |
|
| 3360 | 1 | exec resource type -- the log levels are specified using the |
|
| 3361 | 1 | loglevel parameter, not logoutput. |
|
| 3362 | 1 | ||
| 3363 | 1 | # 0.24.1 |
|
| 3364 | 1 | ||
| 3365 | 1 | ## Binaries and Configuration |
|
| 3366 | 1 | ||
| 3367 | 1 | Removed the ability to disable http keep-alive. |
|
| 3368 | 1 | ||
| 3369 | 1 | Removed warning about deprecated explicit plugins mounts. |
|
| 3370 | 1 | ||
| 3371 | 1 | # 0.24.0 (misspiggy) |
|
| 3372 | 1 | ||
| 3373 | 1 | ## External Nodes |
|
| 3374 | 1 | ||
| 3375 | 1 | External node support now requires that you set the node\_terminus |
|
| 3376 | 1 | setting to exec: |
|
| 3377 | 1 | ||
| 3378 | 1 | node_terminus = exec |
|
| 3379 | 1 | ||
| 3380 | 1 | External nodes can now co-exist with manifest-based nodes. |
|
| 3381 | 1 | Previously you had to select one or the other. |
|
| 3382 | 1 | ||
| 3383 | 1 | ## LDAP Nodes |
|
| 3384 | 1 | ||
| 3385 | 1 | LDAP nodes can now co-exist with manifest-based nodes. Previously |
|
| 3386 | 1 | you had to select one or the other. |
|
| 3387 | 1 | ||
| 3388 | 1 | ## Plugins |
|
| 3389 | 1 | ||
| 3390 | 1 | Added plugins mount - see PluginsInModules on the wiki for |
|
| 3391 | 1 | information. |
|
| 3392 | 1 | ||
| 3393 | 1 | ## Certificates |
|
| 3394 | 1 | ||
| 3395 | 1 | Certificates now always specify a subjectAltName, but it defaults |
|
| 3396 | 1 | to \*\`, meaning that it doesn't require DNS names to match. |
|
| 3397 | 1 | You can override that behaviour by specifying a value for the |
|
| 3398 | 58 | Todd Zullinger | \`\`certdnsnames configuration option which will then require that |
| 3399 | 1 | hostname as a match. |
|
| 3400 | 1 | ||
| 3401 | 1 | The behaviour of the certdnsnames setting has changed. It now |
|
| 3402 | 1 | defaults to an empty string, and will only be used if it is set to |
|
| 3403 | 1 | something else. If it is set, then the host's FQDN will also be |
|
| 3404 | 1 | added as an alias. The default behaviour is now to add puppet and |
|
| 3405 | 1 | puppet.$domain as DNS aliases when the name for the cert being |
|
| 3406 | 1 | signed is equal to the signing machine's name, which will only be |
|
| 3407 | 1 | the case for CA servers. This should result in servers always |
|
| 3408 | 1 | having the alias set up and no one else, but you can still override |
|
| 3409 | 1 | the aliases if you want. |
|
| 3410 | 1 | ||
| 3411 | 1 | ## Mongrel |
|
| 3412 | 1 | ||
| 3413 | 1 | Changed the behaviour of \-\-debug to include Mongrel client |
|
| 3414 | 1 | debugging information. Mongrel output will be written to the |
|
| 3415 | 1 | terminal only, not to the puppet debug log. |
|
| 3416 | 1 | ||
| 3417 | 1 | ## Language and Facts |
|
| 3418 | 58 | Todd Zullinger | |
| 3419 | 1 | The node scope is now above all other scopes besides the main |
|
| 3420 | 58 | Todd Zullinger | scope, which should help make its variables visible to other |
| 3421 | 58 | Todd Zullinger | classes, assuming those classes were not included in the node's |
| 3422 | 58 | Todd Zullinger | parent. |
| 3423 | 1 | ||
| 3424 | 1 | Relationship metaparameters :notify, :require, :subscribe, and |
|
| 3425 | 58 | Todd Zullinger | :before now stack when they are collecting metaparameter values |
| 3426 | 1 | from their containers. For instance, if a resource inside a |
|
| 3427 | 1 | definition has a value set for require, and you call the definition |
|
| 3428 | 1 | with require, the resource gets both requires, where before it |
|
| 3429 | 1 | would only retain its initial value. |
|
| 3430 | 1 | ||
| 3431 | 1 | ## Binaries and Configuration |
|
| 3432 | 1 | ||
| 3433 | 1 | Added the \-\-no-daemonize option to puppetd and puppetmasterd which |
|
| 3434 | 1 | prevents both binaries from daemonizing. If you use daemontools or |
|
| 3435 | 1 | runit you must pass the \-\-no-daemonize to puppetd and |
|
| 3436 | 1 | puppetmasterd. Additionally, the default behavior of \-\-verbose and |
|
| 3437 | 1 | \-\-debug no longer cause puppetd and puppetmasterd to not |
|
| 3438 | 1 | daemonize. |
|
| 3439 | 1 | ||
| 3440 | 1 | The \-\-use-nodes and \-\-no-nodes options are now obsolete. Puppet |
|
| 3441 | 1 | automatically detects when nodes are defined, and if they are |
|
| 3442 | 1 | defined it will require that a node be found, else it will not look |
|
| 3443 | 1 | for a node nor will it fail if it fails to find one. |
|
| 3444 | 1 | ||
| 3445 | 1 | You now must specify an environment and you are required to specify |
|
| 3446 | 1 | the valid environments for your site. |
|
| 3447 | 1 | ||
| 3448 | 1 | The http\_enable\_post\_connection\_check added as a configuration |
|
| 3449 | 1 | option for puppetd. This defaults to true, which validates the |
|
| 3450 | 1 | server SSL certificate against the requested host name in new |
|
| 3451 | 1 | versions of Ruby. |
|
| 3452 | 58 | Todd Zullinger | |
| 3453 | 1 | ## Types and Providers |
|
| 3454 | 1 | ||
| 3455 | 1 | Added k5login type. |
|
| 3456 | 1 | ||
| 3457 | 1 | Removed type and running as valid attributes from the service types |
|
| 3458 | 1 | as they are both deprecated. |
|
| 3459 | 1 | ||
| 3460 | 1 | Modified how services manage their list of paths. Services now |
|
| 3461 | 1 | default to the paths specified by the provider classes. |
|
| 3462 | 1 | ||
| 3463 | 1 | # 0.23.2 |
|
| 3464 | 1 | ||
| 3465 | 1 | ## Binaries and Configuration |
|
| 3466 | 1 | ||
| 3467 | 1 | The \-\-gen\_config option now generates a configuration with all |
|
| 3468 | 1 | parameters under a heading that matches the relevant process name, |
|
| 3469 | 1 | rather than keeping section headings. |
|
| 3470 | 1 | ||
| 3471 | 1 | ## Types and Providers |
|
| 3472 | 1 | ||
| 3473 | 1 | Added support for managing interfaces on Red Hat. |
|
| 3474 | 1 | ||
| 3475 | 1 | # 0.23.1 (beaker) |
|
| 3476 | 1 | ||
| 3477 | 1 | ## Language and Facts |
|
| 3478 | 1 | ||
| 3479 | 1 | You can now specify relationships to classes, which work exactly |
|
| 3480 | 1 | like relationships to defined types: |
|
| 3481 | 1 | ||
| 3482 | 1 | require => Class[myclass] |
|
| 3483 | 1 | ||
| 3484 | 1 | This works with qualified classes, too. |
|
| 3485 | 1 | ||
| 3486 | 58 | Todd Zullinger | Added the +> syntax to resources, so parameter values can be added |
| 3487 | 1 | to. |
|
| 3488 | 1 | ||
| 3489 | 1 | Hostnames can now be double quoted. |
|
| 3490 | 1 | ||
| 3491 | 1 | Both class and node names must both now be unique, for example you |
|
| 3492 | 1 | cannot have a node and class with the same name. |
|
| 3493 | 1 | ||
| 3494 | 1 | ## Exported/Collected Resources |
|
| 3495 | 1 | ||
| 3496 | 1 | You can now do simple queries in a collection of exported |
|
| 3497 | 1 | resources. You still cannot do multi-condition queries, though. |
|
| 3498 | 1 | ||
| 3499 | 1 | ## Binaries and Configuration |
|
| 3500 | 1 | ||
| 3501 | 1 | Running puppetca with \-\-clean now exits with a non-zero code if it |
|
| 3502 | 1 | cannot find any host certificates to clean. |
|
| 3503 | 1 | ||
| 3504 | 1 | The Rails log level can now be set via the rails\_loglevel |
|
| 3505 | 1 | parameter. |
|
| 3506 | 1 | ||
| 3507 | 1 | Puppet clients now have http proxy support. |
|
| 3508 | 1 | ||
| 3509 | 1 | ## Types and Providers |
|
| 3510 | 1 | ||
| 3511 | 1 | Added the maillist type for managing mailing lists. |
|
| 3512 | 1 | ||
| 3513 | 1 | Added a mailalias type for managing mail aliases. |
|
| 3514 | 1 | ||
| 3515 | 1 | ## Modules |
|
| 3516 | 1 | ||
| 3517 | 1 | Added autoloading of modules - you can now 'include' classes from |
|
| 3518 | 1 | modules without ever needing to specifically load them. |
|
| 3519 | 1 | ||
| 3520 | 1 | ## Plugins |
|
| 3521 | 1 | ||
| 3522 | 1 | The configuration client now pulls libraries down to $libdir, and |
|
| 3523 | 1 | all autoloading is done from there with full support for any |
|
| 3524 | 1 | reloadable file, such as types and providers. This is not backward |
|
| 3525 | 1 | compatible -- if you're using pluginsync you'll need to disable it |
|
| 3526 | 1 | on your clients until you can upgrade them. |
|
| 3527 | 1 | ||
| 3528 | 1 | # 0.23.0 |
|
| 3529 | 1 | ||
| 3530 | 1 | ## Functions |
|
| 3531 | 1 | ||
| 3532 | 1 | Fixed functions so that they accept most other rvalues as valid |
|
| 3533 | 1 | values. |
|
| 3534 | 1 | ||
| 3535 | 1 | ## Nodes |
|
| 3536 | 1 | ||
| 3537 | 1 | From 0.23.0 only ONE node source can be used - you can either use |
|
| 3538 | 1 | LDAP, code, or an external node program, but not more than one. |
|
| 3539 | 1 | ||
| 3540 | 1 | ## LDAP Nodes |
|
| 3541 | 1 | ||
| 3542 | 1 | LDAP node support has two changes, first, the "ldapattrs" attribute |
|
| 3543 | 1 | is now used for setting the attributes to retrieve from the server |
|
| 3544 | 1 | (in addition to required attributes), and second, all retrieved |
|
| 3545 | 1 | attributes are set as variables in the top scope. This means you |
|
| 3546 | 1 | can set attributes on your LDAP nodes and they will automatically |
|
| 3547 | 58 | Todd Zullinger | appear as variables in your configurations. |
| 3548 | 1 | ||
| 3549 | 1 | ## External Nodes |
|
| 3550 | 1 | ||
| 3551 | 1 | External node support has been completely rewritten - this breaks |
|
| 3552 | 1 | compatibility with earlier versions and older external node scripts |
|
| 3553 | 1 | will not work. External node scripts must now generate a YAML dump |
|
| 3554 | 1 | of a hash, with "classes" and "parameters" keys. The classes should |
|
| 3555 | 1 | be an array, and the parameters should be a hash. The external node |
|
| 3556 | 1 | program has no support for parent nodes -- the script must handle |
|
| 3557 | 1 | that on its own. |
|
| 3558 | 1 | ||
| 3559 | 1 | ## Stored Configuration |
|
| 3560 | 8 | James Turnbull | |
| 3561 | 1 | Reworked the database schema used to store configurations with the |
|
| 3562 | 8 | James Turnbull | \-\-storeconfigs option. |
| 3563 | 1 | ||
| 3564 | 1 | ## File Locations |
|
| 3565 | 1 | ||
| 3566 | 1 | Changed the location of the classes.txt to the state directory. |
|
| 3567 | 1 | ||
| 3568 | 1 | Moved puppetd and puppetmasterd to sbin. |
|
| 3569 | 1 | ||
| 3570 | 1 | ## Types and Providers |
|
| 3571 | 1 | ||
| 3572 | 1 | Added a package provider called appdmg able to install .app |
|
| 3573 | 1 | packages on .dmg files on OS X. |
|
| 3574 | 1 | ||
| 3575 | 1 | Added fink package provider (\#642), as provided by 'do'. |
|
| 3576 | 1 | ||
| 3577 | 1 | Marked the dpkg package provider as versionable (\#647). |
|
| 3578 | 1 | ||
| 3579 | 1 | ## Language and Facts |
|
| 3580 | 58 | Todd Zullinger | |
| 3581 | 1 | Added an 'undef' keyword, which will evaluate to "" within strings |
|
| 3582 | 1 | but when used as a resource parameter value will cause that |
|
| 3583 | 1 | parameter to be evaluated as undefined. |
|
| 3584 | 1 | ||
| 3585 | 1 | Tags, definitions, and classes can now be a single character. |
|
| 3586 | 1 | ||
| 3587 | 1 | ## Binaries and Configuration |
|
| 3588 | 1 | ||
| 3589 | 1 | Significantly reworking configuration parsing. Executables all now |
|
| 3590 | 1 | look for puppet.conf rather than the older configuration |
|
| 3591 | 58 | Todd Zullinger | binary-specific configuration files. The old-style configuration |
| 3592 | 1 | files will be parsed if they are present, although they throw a |
|
| 3593 | 1 | deprecation warning. |
|
| 3594 | 1 | ||
| 3595 | 1 | Transaction summaries are now available with the \-\-summarize |
|
| 3596 | 1 | option. These are useful for getting a quick idea of what happened |
|
| 3597 | 1 | in a transaction. Currently only useful on the client or with the |
|
| 3598 | 1 | puppet interpreter. |
|
| 3599 | 1 | ||
| 3600 | 1 | Added the dynamicfact configuration option; any facts in a |
|
| 3601 | 1 | comma-separated list will be ignored when comparing facts to see if |
|
| 3602 | 1 | they have changed and thus whether a recompile is necessary. |
|
| 3603 | 1 | ||
| 3604 | 1 | Added a splay option to randomly distribute client connections. The |
|
| 3605 | 1 | value is random but cached. It defaults to the runinterval but can |
|
| 3606 | 1 | be tuned with \-\-splaylimit. It's disabled when running under \-\-test |
|
| 3607 | 1 | in puppetd. |
|
| 3608 | 1 | ||
| 3609 | 1 | # 0.22.4 |
|
| 3610 | 1 | ||
| 3611 | 1 | ## Modules |
|
| 3612 | 1 | ||
| 3613 | 1 | Modules no longer return directories in the list of found |
|
| 3614 | 1 | manifests. |
|
| 3615 | 1 | ||
| 3616 | 1 | ## Types and Providers |
|
| 3617 | 1 | ||
| 3618 | 1 | The crontab provider now defaults to root when there is no USER set |
|
| 3619 | 1 | in the environment. |
|
| 3620 | 1 | ||
| 3621 | 1 | The useradd provider for the user type can now manage passwords. No |
|
| 3622 | 1 | other providers can, at this point. |
|
| 3623 | 1 | ||
| 3624 | 1 | ## Language and Facts |
|
| 3625 | 1 | ||
| 3626 | 1 | Added a syntax for referring to variables defined in other classes |
|
| 3627 | 1 | (e.g., $puppet::server). |
|
| 3628 | 1 | ||
| 3629 | 1 | # 0.22.3 |
|
| 3630 | 1 | ||
| 3631 | 1 | ## Binaries and Configuration |
|
| 3632 | 1 | ||
| 3633 | 1 | Added a stand-alone filebucket client, named filebucket. |
|
| 3634 | 1 | ||
| 3635 | 1 | ## Types and Providers |
|
| 3636 | 1 | ||
| 3637 | 1 | The -M option is no longer added when home directories are being |
|
| 3638 | 1 | managed on Red Hat with the user type. |
|
| 3639 | 1 | ||
| 3640 | 1 | # 0.22.2 (grover) |
|
| 3641 | 1 | ||
| 3642 | 1 | ## Language and Facts |
|
| 3643 | 1 | ||
| 3644 | 1 | Definitions now support both 'name' and 'title', just like any |
|
| 3645 | 1 | other resource type. |
|
| 3646 | 1 | ||
| 3647 | 1 | Import statements can now specify multiple comma-separated |
|
| 3648 | 1 | arguments: |
|
| 3649 | 1 | ||
| 3650 | 1 | import apache, mongrel, squid |
|
| 3651 | 1 | ||
| 3652 | 1 | Changed the servername fact set on the server to use the server's |
|
| 3653 | 1 | fqdn, instead of the short-name. |
|
| 3654 | 1 | ||
| 3655 | 1 | ## File Locations |
|
| 3656 | 1 | ||
| 3657 | 58 | Todd Zullinger | Changing the location of the configuration cache. It now defaults |
| 3658 | 1 | to being in the state directory, rather than in the configuration |
|
| 3659 | 1 | directory. |
|
| 3660 | 1 | ||
| 3661 | 1 | ## Mongrel |
|
| 3662 | 1 | ||
| 3663 | 1 | Support for Mongrel added. Currently you need to start each |
|
| 3664 | 1 | individual process and it requires you setup a proxy in front of |
|
| 3665 | 1 | the mongrel processes. |
|
| 3666 | 1 | ||
| 3667 | 1 | ## Binaries and Configuration |
|
| 3668 | 1 | ||
| 3669 | 1 | Renamed x2puppet to ralsh. |
|
| 3670 | 1 | ||
| 3671 | 1 | The bind address for puppetmasterd can now be specified with |
|
| 3672 | 1 | \-\-bindaddress. |
|
| 3673 | 1 | ||
| 3674 | 1 | Added the ignorecache option to tell puppetd to ignore the cache |
|
| 3675 | 1 | and force a recompile. |
|
| 3676 | 1 | ||
| 3677 | 1 | ## Certificate Authorities |
|
| 3678 | 1 | ||
| 3679 | 1 | You can now run seperate Certificate Authorities rather than using |
|
| 3680 | 1 | the inbuilt CA. |
|
| 3681 | 1 | ||
| 3682 | 1 | ## Functions |
|
| 3683 | 1 | ||
| 3684 | 1 | Added a file() function to read in files with no interpolation. The |
|
| 3685 | 1 | first found file has its content returned. |
|
| 3686 | 1 | ||
| 3687 | 1 | Added the generate() function which sets values to the result of an |
|
| 3688 | 1 | external command. |
|
| 3689 | 1 | ||
| 3690 | 1 | Functions can now be called with no arguments. |
|
| 3691 | 1 | ||
| 3692 | 1 | ## Types and Providers |
|
| 3693 | 1 | ||
| 3694 | 1 | When doing file recursion, ensure only affects the top-level |
|
| 3695 | 1 | directory. |
|
| 3696 | 1 | ||
| 3697 | 1 | Users can now manage their home directories, using the managehome |
|
| 3698 | 1 | parameter. |
|
| 3699 | 1 | ||
| 3700 | 1 | Using the package type you can now purge apt and dpkg packages. |
|
| 3701 | 1 | ||
| 3702 | 1 | Made up2date the default for RHEL \< 4 and yum the default for the |
|
| 3703 | 1 | rest. |
|
| 3704 | 1 | ||
| 3705 | 1 | The yum provider now supports versions. |
|
| 3706 | 1 | ||
| 3707 | 1 | Switched apt/aptitide to using "apt-cache policy" instead of |
|
| 3708 | 1 | "apt-cache showpkg" for determining the latest available version. |
|
| 3709 | 1 | ||
| 3710 | 1 | States have been renamed to Properties. |
|
| 3711 | 1 | ||
| 3712 | 1 | # 0.22.1 (kermit) |
|
| 3713 | 1 | ||
| 3714 | 1 | ## Resource Relationships |
|
| 3715 | 1 | ||
| 3716 | 1 | Explicit relationships now override automatic relationships, |
|
| 3717 | 1 | allowing you to manually specify deletion order when removing |
|
| 3718 | 1 | resources. |
|
| 3719 | 1 | ||
| 3720 | 1 | Resources with dependencies can now be deleted as long as all of |
|
| 3721 | 1 | their dependencies are also being deleted. |
|
| 3722 | 1 | ||
| 3723 | 1 | ## Language and Facts |
|
| 3724 | 1 | ||
| 3725 | 1 | Downcasing of facts can be selectively disabled. |
|
| 3726 | 1 | ||
| 3727 | 1 | ## Types and Providers |
|
| 3728 | 1 | ||
| 3729 | 1 | The netinfo mounts provider was commented out, because it really |
|
| 3730 | 1 | doesn't work at all. |
|
| 3731 | 1 | ||
| 3732 | 1 | # 0.22.0 |
|
| 3733 | 1 | ||
| 3734 | 1 | ## Types and Providers |
|
| 3735 | 1 | ||
| 3736 | 1 | Added the resources type which includes the ability to purge |
|
| 3737 | 1 | unwanted resources. |
|
| 3738 | 1 | ||
| 3739 | 1 | All providers now directly execute commands instead of going |
|
| 3740 | 1 | through a sub-shell - this means arguments don't need to be quoted |
|
| 3741 | 1 | or escaped. |
|
| 3742 | 1 | ||
| 3743 | 1 | ## Stored Configuration |
|
| 3744 | 1 | ||
| 3745 | 1 | Export and collect updated making the database incompatible with |
|
| 3746 | 1 | the 0.20 version. You will need to re-create your database. |
|
| 3747 | 1 | ||
| 3748 | 1 | ## Language and Facts |
|
| 3749 | 1 | ||
| 3750 | 1 | Facts are no longer down-cased and the language is |
|
| 3751 | 1 | case-insensitive. |
|
| 3752 | 1 | ||
| 3753 | 1 | # 0.20.0 |
|
| 3754 | 1 | ||
| 3755 | 1 | ## Virtual and Exported/Collected Resources |
|
| 3756 | 1 | ||
| 3757 | 1 | Virtual resources are now represented by single sigils, @user, and |
|
| 3758 | 1 | exported/collected resources are represented by double sigils, |
|
| 3759 | 1 | @@sshkey. |
|
| 3760 | 1 | ||
| 3761 | 1 | ## Resource Relationships |
|
| 3762 | 1 | ||
| 3763 | 1 | Resources relationships are now identified by capitalizing the |
|
| 3764 | 1 | resource like so: |
|
| 3765 | 1 | ||
| 3766 | 1 | File["/etc/passwd"] |