Merge pull request #1051 from puppetlabs/maint-move_apt_mark_to_provider
[puppet-modules/puppetlabs-apt.git] / REFERENCE.md
1 # Reference
2
3 <!-- DO NOT EDIT: This document was generated by Puppet Strings -->
4
5 ## Table of Contents
6
7 ### Classes
8
9 #### Public Classes
10
11 * [`apt`](#apt): Main class, includes all other classes.
12 * [`apt::backports`](#aptbackports): Manages backports.
13
14 #### Private Classes
15
16 * `apt::params`: Provides defaults for the Apt module parameters.
17 * `apt::update`: Updates the list of available packages using apt-get update.
18
19 ### Defined types
20
21 * [`apt::conf`](#aptconf): Specifies a custom Apt configuration file.
22 * [`apt::key`](#aptkey): Manages the GPG keys that Apt uses to authenticate packages.
23 * [`apt::mark`](#aptmark): Manages apt-mark settings
24 * [`apt::pin`](#aptpin): Manages Apt pins. Does not trigger an apt-get update run.
25 * [`apt::ppa`](#aptppa): Manages PPA repositories using `add-apt-repository`. Not supported on Debian.
26 * [`apt::setting`](#aptsetting): Manages Apt configuration files.
27 * [`apt::source`](#aptsource): Manages the Apt sources in /etc/apt/sources.list.d/.
28
29 ### Resource types
30
31 #### Public Resource types
32
33
34 #### Private Resource types
35
36 * `apt_key`: This type provides Puppet with the capabilities to manage GPG keys needed
37 by apt to perform package validation. Apt has it's own GPG keyring that can
38 be manipulated through the `apt-key` command.
39
40 ### Data types
41
42 * [`Apt::Auth_conf_entry`](#aptauth_conf_entry): Login configuration settings that are recorded in the file `/etc/apt/auth.conf`.
43 * [`Apt::Proxy`](#aptproxy): Configures Apt to connect to a proxy server.
44 * [`Apt::Proxy_Per_Host`](#aptproxy_per_host): Adds per-host overrides to the system default APT proxy configuration
45
46 ### Tasks
47
48 * [`init`](#init): Allows you to perform apt functions
49
50 ## Classes
51
52 ### <a name="apt"></a>`apt`
53
54 Main class, includes all other classes.
55
56 * **See also**
57   * https://docs.puppetlabs.com/references/latest/function.html#createresources
58     * for the create resource function
59
60 #### Parameters
61
62 The following parameters are available in the `apt` class:
63
64 * [`provider`](#provider)
65 * [`keyserver`](#keyserver)
66 * [`key_options`](#key_options)
67 * [`ppa_options`](#ppa_options)
68 * [`ppa_package`](#ppa_package)
69 * [`backports`](#backports)
70 * [`confs`](#confs)
71 * [`update`](#update)
72 * [`purge`](#purge)
73 * [`proxy`](#proxy)
74 * [`sources`](#sources)
75 * [`keys`](#keys)
76 * [`ppas`](#ppas)
77 * [`pins`](#pins)
78 * [`settings`](#settings)
79 * [`manage_auth_conf`](#manage_auth_conf)
80 * [`auth_conf_entries`](#auth_conf_entries)
81 * [`auth_conf_owner`](#auth_conf_owner)
82 * [`root`](#root)
83 * [`sources_list`](#sources_list)
84 * [`sources_list_d`](#sources_list_d)
85 * [`conf_d`](#conf_d)
86 * [`preferences`](#preferences)
87 * [`preferences_d`](#preferences_d)
88 * [`config_files`](#config_files)
89 * [`sources_list_force`](#sources_list_force)
90 * [`update_defaults`](#update_defaults)
91 * [`purge_defaults`](#purge_defaults)
92 * [`proxy_defaults`](#proxy_defaults)
93 * [`include_defaults`](#include_defaults)
94 * [`apt_conf_d`](#apt_conf_d)
95 * [`source_key_defaults`](#source_key_defaults)
96
97 ##### <a name="provider"></a>`provider`
98
99 Data type: `String`
100
101 Specifies the provider that should be used by apt::update.
102
103 Default value: `$apt::params::provider`
104
105 ##### <a name="keyserver"></a>`keyserver`
106
107 Data type: `String`
108
109 Specifies a keyserver to provide the GPG key. Valid options: a string containing a domain name or a full URL (http://, https://, or
110 hkp://).
111
112 Default value: `$apt::params::keyserver`
113
114 ##### <a name="key_options"></a>`key_options`
115
116 Data type: `Optional[String]`
117
118 Specifies the default options for apt::key resources.
119
120 Default value: `$apt::params::key_options`
121
122 ##### <a name="ppa_options"></a>`ppa_options`
123
124 Data type: `Optional[String]`
125
126 Supplies options to be passed to the `add-apt-repository` command.
127
128 Default value: `$apt::params::ppa_options`
129
130 ##### <a name="ppa_package"></a>`ppa_package`
131
132 Data type: `Optional[String]`
133
134 Names the package that provides the `apt-add-repository` command.
135
136 Default value: `$apt::params::ppa_package`
137
138 ##### <a name="backports"></a>`backports`
139
140 Data type: `Optional[Hash]`
141
142 Specifies some of the default parameters used by apt::backports. Valid options: a hash made up from the following keys:
143
144 Options:
145
146 * **:location** `String`: See apt::backports for documentation.
147 * **:repos** `String`: See apt::backports for documentation.
148 * **:key** `String`: See apt::backports for documentation.
149
150 Default value: `$apt::params::backports`
151
152 ##### <a name="confs"></a>`confs`
153
154 Data type: `Hash`
155
156 Creates new `apt::conf` resources. Valid options: a hash to be passed to the create_resources function linked above.
157
158 Default value: `$apt::params::confs`
159
160 ##### <a name="update"></a>`update`
161
162 Data type: `Hash`
163
164 Configures various update settings. Valid options: a hash made up from the following keys:
165
166 Options:
167
168 * **:frequency** `String`: Specifies how often to run `apt-get update`. If the exec resource `apt_update` is notified, `apt-get update` runs regardless of this value.
169 Valid options: 'always' (at every Puppet run); 'daily' (if the value of `apt_update_last_success` is less than current epoch time minus 86400);
170 'weekly' (if the value of `apt_update_last_success` is less than current epoch time minus 604800); and 'reluctantly' (only if the exec resource
171 `apt_update` is notified). Default: 'reluctantly'.
172 * **:loglevel** `Integer`: Specifies the log level of logs outputted to the console. Default: undef.
173 * **:timeout** `Integer`: Specifies how long to wait for the update to complete before canceling it. Valid options: an integer, in seconds. Default: undef.
174 * **:tries** `Integer`: Specifies how many times to retry the update after receiving a DNS or HTTP error. Default: undef.
175
176 Default value: `$apt::params::update`
177
178 ##### <a name="purge"></a>`purge`
179
180 Data type: `Hash`
181
182 Specifies whether to purge any existing settings that aren't managed by Puppet. Valid options: a hash made up from the following keys:
183
184 Options:
185
186 * **:sources.list** `Boolean`: Specifies whether to purge any unmanaged entries from sources.list. Default false.
187 * **:sources.list.d** `Boolean`: Specifies whether to purge any unmanaged entries from sources.list.d. Default false.
188 * **:preferences** `Boolean`: Specifies whether to purge any unmanaged entries from preferences. Default false.
189 * **:preferences.d.** `Boolean`: Specifies whether to purge any unmanaged entries from preferences.d. Default false.
190
191 Default value: `$apt::params::purge`
192
193 ##### <a name="proxy"></a>`proxy`
194
195 Data type: `Apt::Proxy`
196
197 Configures Apt to connect to a proxy server. Valid options: a hash matching the locally defined type apt::proxy.
198
199 Default value: `$apt::params::proxy`
200
201 ##### <a name="sources"></a>`sources`
202
203 Data type: `Hash`
204
205 Creates new `apt::source` resources. Valid options: a hash to be passed to the create_resources function linked above.
206
207 Default value: `$apt::params::sources`
208
209 ##### <a name="keys"></a>`keys`
210
211 Data type: `Hash`
212
213 Creates new `apt::key` resources. Valid options: a hash to be passed to the create_resources function linked above.
214
215 Default value: `$apt::params::keys`
216
217 ##### <a name="ppas"></a>`ppas`
218
219 Data type: `Hash`
220
221 Creates new `apt::ppa` resources. Valid options: a hash to be passed to the create_resources function linked above.
222
223 Default value: `$apt::params::ppas`
224
225 ##### <a name="pins"></a>`pins`
226
227 Data type: `Hash`
228
229 Creates new `apt::pin` resources. Valid options: a hash to be passed to the create_resources function linked above.
230
231 Default value: `$apt::params::pins`
232
233 ##### <a name="settings"></a>`settings`
234
235 Data type: `Hash`
236
237 Creates new `apt::setting` resources. Valid options: a hash to be passed to the create_resources function linked above.
238
239 Default value: `$apt::params::settings`
240
241 ##### <a name="manage_auth_conf"></a>`manage_auth_conf`
242
243 Data type: `Boolean`
244
245 Specifies whether to manage the /etc/apt/auth.conf file. When true, the file will be overwritten with the entries specified in
246 the auth_conf_entries parameter. When false, the file will be ignored (note that this does not set the file to absent.
247
248 Default value: `$apt::params::manage_auth_conf`
249
250 ##### <a name="auth_conf_entries"></a>`auth_conf_entries`
251
252 Data type: `Array[Apt::Auth_conf_entry]`
253
254 An optional array of login configuration settings (hashes) that are recorded in the file /etc/apt/auth.conf. This file has a netrc-like
255 format (similar to what curl uses) and contains the login configuration for APT sources and proxies that require authentication. See
256 https://manpages.debian.org/testing/apt/apt_auth.conf.5.en.html for details. If specified each hash must contain the keys machine, login and
257 password and no others. Specifying manage_auth_conf and not specifying this parameter will set /etc/apt/auth.conf to absent.
258
259 Default value: `$apt::params::auth_conf_entries`
260
261 ##### <a name="auth_conf_owner"></a>`auth_conf_owner`
262
263 Data type: `String`
264
265 The owner of the file /etc/apt/auth.conf. Default: '_apt' or 'root' on old releases.
266
267 Default value: `$apt::params::auth_conf_owner`
268
269 ##### <a name="root"></a>`root`
270
271 Data type: `String`
272
273 Specifies root directory of Apt executable.
274
275 Default value: `$apt::params::root`
276
277 ##### <a name="sources_list"></a>`sources_list`
278
279 Data type: `String`
280
281 Specifies the path of the sources_list file to use.
282
283 Default value: `$apt::params::sources_list`
284
285 ##### <a name="sources_list_d"></a>`sources_list_d`
286
287 Data type: `String`
288
289 Specifies the path of the sources_list.d file to use.
290
291 Default value: `$apt::params::sources_list_d`
292
293 ##### <a name="conf_d"></a>`conf_d`
294
295 Data type: `String`
296
297 Specifies the path of the conf.d file to use.
298
299 Default value: `$apt::params::conf_d`
300
301 ##### <a name="preferences"></a>`preferences`
302
303 Data type: `String`
304
305 Specifies the path of the preferences file to use.
306
307 Default value: `$apt::params::preferences`
308
309 ##### <a name="preferences_d"></a>`preferences_d`
310
311 Data type: `String`
312
313 Specifies the path of the preferences.d file to use.
314
315 Default value: `$apt::params::preferences_d`
316
317 ##### <a name="config_files"></a>`config_files`
318
319 Data type: `Hash`
320
321 A hash made up of the various configuration files used by Apt.
322
323 Default value: `$apt::params::config_files`
324
325 ##### <a name="sources_list_force"></a>`sources_list_force`
326
327 Data type: `Boolean`
328
329 Specifies whether to perform force purge or delete. Default false.
330
331 Default value: `$apt::params::sources_list_force`
332
333 ##### <a name="update_defaults"></a>`update_defaults`
334
335 Data type: `Hash`
336
337
338
339 Default value: `$apt::params::update_defaults`
340
341 ##### <a name="purge_defaults"></a>`purge_defaults`
342
343 Data type: `Hash`
344
345
346
347 Default value: `$apt::params::purge_defaults`
348
349 ##### <a name="proxy_defaults"></a>`proxy_defaults`
350
351 Data type: `Hash`
352
353
354
355 Default value: `$apt::params::proxy_defaults`
356
357 ##### <a name="include_defaults"></a>`include_defaults`
358
359 Data type: `Hash`
360
361
362
363 Default value: `$apt::params::include_defaults`
364
365 ##### <a name="apt_conf_d"></a>`apt_conf_d`
366
367 Data type: `String`
368
369
370
371 Default value: `$apt::params::apt_conf_d`
372
373 ##### <a name="source_key_defaults"></a>`source_key_defaults`
374
375 Data type: `Hash`
376
377
378
379 Default value: `{
380     'server'  => $keyserver,
381     'options' => undef,
382     'content' => undef,
383     'source'  => undef,
384   }`
385
386 ### <a name="aptbackports"></a>`apt::backports`
387
388 Manages backports.
389
390 #### Examples
391
392 ##### Set up a backport source for Linux Mint qiana
393
394 ```puppet
395 class { 'apt::backports':
396   location => 'http://us.archive.ubuntu.com/ubuntu',
397   release  => 'trusty-backports',
398   repos    => 'main universe multiverse restricted',
399   key      => {
400     id     => '630239CC130E1A7FD81A27B140976EAF437D05B5',
401     server => 'keyserver.ubuntu.com',
402   },
403 }
404 ```
405
406 #### Parameters
407
408 The following parameters are available in the `apt::backports` class:
409
410 * [`location`](#location)
411 * [`release`](#release)
412 * [`repos`](#repos)
413 * [`key`](#key)
414 * [`pin`](#pin)
415 * [`include`](#include)
416
417 ##### <a name="location"></a>`location`
418
419 Data type: `Optional[String]`
420
421 Specifies an Apt repository containing the backports to manage. Valid options: a string containing a URL. Default value for Debian and
422 Ubuntu varies:
423
424 - Debian: 'http://deb.debian.org/debian'
425
426 - Ubuntu: 'http://archive.ubuntu.com/ubuntu'
427
428 Default value: ``undef``
429
430 ##### <a name="release"></a>`release`
431
432 Data type: `Optional[String]`
433
434 Specifies a distribution of the Apt repository containing the backports to manage. Used in populating the `source.list` configuration file.
435 Default: on Debian and Ubuntu, `${fact('os.distro.codename')}-backports`. We recommend keeping this default, except on other operating
436 systems.
437
438 Default value: ``undef``
439
440 ##### <a name="repos"></a>`repos`
441
442 Data type: `Optional[String]`
443
444 Specifies a component of the Apt repository containing the backports to manage. Used in populating the `source.list` configuration file.
445 Default value for Debian and Ubuntu varies:
446
447 - Debian: 'main contrib non-free'
448
449 - Ubuntu: 'main universe multiverse restricted'
450
451 Default value: ``undef``
452
453 ##### <a name="key"></a>`key`
454
455 Data type: `Optional[Variant[String, Hash]]`
456
457 Specifies a key to authenticate the backports. Valid options: a string to be passed to the id parameter of the apt::key defined type, or a
458 hash of parameter => value pairs to be passed to apt::key's id, server, content, source, and/or options parameters. Default value
459 for Debian and Ubuntu varies:
460
461 - Debian: 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553'
462
463 - Ubuntu: '630239CC130E1A7FD81A27B140976EAF437D05B5'
464
465 Default value: ``undef``
466
467 ##### <a name="pin"></a>`pin`
468
469 Data type: `Optional[Variant[Integer, String, Hash]]`
470
471 Specifies a pin priority for the backports. Valid options: a number or string to be passed to the `id` parameter of the `apt::pin` defined
472 type, or a hash of `parameter => value` pairs to be passed to `apt::pin`'s corresponding parameters.
473
474 Default value: `200`
475
476 ##### <a name="include"></a>`include`
477
478 Data type: `Optional[Variant[Hash]]`
479
480 Specifies whether to include 'deb' or 'src', or both.
481
482 Default value: `{}`
483
484 ## Defined types
485
486 ### <a name="aptconf"></a>`apt::conf`
487
488 Specifies a custom Apt configuration file.
489
490 #### Parameters
491
492 The following parameters are available in the `apt::conf` defined type:
493
494 * [`content`](#content)
495 * [`ensure`](#ensure)
496 * [`priority`](#priority)
497 * [`notify_update`](#notify_update)
498
499 ##### <a name="content"></a>`content`
500
501 Data type: `Optional[String]`
502
503 Required unless `ensure` is set to 'absent'. Directly supplies content for the configuration file.
504
505 Default value: ``undef``
506
507 ##### <a name="ensure"></a>`ensure`
508
509 Data type: `Enum['present', 'absent']`
510
511 Specifies whether the configuration file should exist. Valid options: 'present' and 'absent'.
512
513 Default value: `present`
514
515 ##### <a name="priority"></a>`priority`
516
517 Data type: `Variant[String, Integer]`
518
519 Determines the order in which Apt processes the configuration file. Files with lower priority numbers are loaded first.
520 Valid options: a string containing an integer or an integer.
521
522 Default value: `50`
523
524 ##### <a name="notify_update"></a>`notify_update`
525
526 Data type: `Optional[Boolean]`
527
528 Specifies whether to trigger an `apt-get update` run.
529
530 Default value: ``undef``
531
532 ### <a name="aptkey"></a>`apt::key`
533
534 Manages the GPG keys that Apt uses to authenticate packages.
535
536 * **Note** The apt::key defined type makes use of the apt_key type, but includes extra functionality to help prevent duplicate keys.
537
538 #### Examples
539
540 ##### Declare Apt key for apt.puppetlabs.com source
541
542 ```puppet
543 apt::key { 'puppetlabs':
544   id      => '6F6B15509CF8E59E6E469F327F438280EF8D349F',
545   server  => 'keyserver.ubuntu.com',
546   options => 'http-proxy="http://proxyuser:proxypass@example.org:3128"',
547 }
548 ```
549
550 #### Parameters
551
552 The following parameters are available in the `apt::key` defined type:
553
554 * [`id`](#id)
555 * [`ensure`](#ensure)
556 * [`content`](#content)
557 * [`source`](#source)
558 * [`server`](#server)
559 * [`weak_ssl`](#weak_ssl)
560 * [`options`](#options)
561
562 ##### <a name="id"></a>`id`
563
564 Data type: `Pattern[/\A(0x)?[0-9a-fA-F]{8}\Z/, /\A(0x)?[0-9a-fA-F]{16}\Z/, /\A(0x)?[0-9a-fA-F]{40}\Z/]`
565
566 Specifies a GPG key to authenticate Apt package signatures. Valid options: a string containing a key ID (8 or 16 hexadecimal
567 characters, optionally prefixed with "0x") or a full key fingerprint (40 hexadecimal characters).
568
569 Default value: `$title`
570
571 ##### <a name="ensure"></a>`ensure`
572
573 Data type: `Enum['present', 'absent', 'refreshed']`
574
575 Specifies whether the key should exist. Valid options: 'present', 'absent' or 'refreshed'. Using 'refreshed' will make keys auto
576 update when they have expired (assuming a new key exists on the key server).
577
578 Default value: `present`
579
580 ##### <a name="content"></a>`content`
581
582 Data type: `Optional[String]`
583
584 Supplies the entire GPG key. Useful in case the key can't be fetched from a remote location and using a file resource is inconvenient.
585
586 Default value: ``undef``
587
588 ##### <a name="source"></a>`source`
589
590 Data type: `Optional[Pattern[/\Ahttps?:\/\//, /\Aftp:\/\//, /\A\/\w+/]]`
591
592 Specifies the location of an existing GPG key file to copy. Valid options: a string containing a URL (ftp://, http://, or https://) or
593 an absolute path.
594
595 Default value: ``undef``
596
597 ##### <a name="server"></a>`server`
598
599 Data type: `Pattern[/\A((hkp|hkps|http|https):\/\/)?([a-z\d])([a-z\d-]{0,61}\.)+[a-z\d]+(:\d{2,5})?(\/[a-zA-Z\d\-_.]+)*\/?$/]`
600
601 Specifies a keyserver to provide the GPG key. Valid options: a string containing a domain name or a full URL (http://, https://,
602 hkp:// or hkps://). The hkps:// protocol is currently only supported on Ubuntu 18.04.
603
604 Default value: `$::apt::keyserver`
605
606 ##### <a name="weak_ssl"></a>`weak_ssl`
607
608 Data type: `Boolean`
609
610 Specifies whether strict SSL verification on a https URL should be disabled. Valid options: true or false.
611
612 Default value: ``false``
613
614 ##### <a name="options"></a>`options`
615
616 Data type: `Optional[String]`
617
618 Passes additional options to `apt-key adv --keyserver-options`.
619
620 Default value: `$::apt::key_options`
621
622 ### <a name="aptmark"></a>`apt::mark`
623
624 Manages apt-mark settings
625
626 #### Parameters
627
628 The following parameters are available in the `apt::mark` defined type:
629
630 * [`setting`](#setting)
631
632 ##### <a name="setting"></a>`setting`
633
634 Data type: `Enum['auto','manual','hold','unhold']`
635
636 auto, manual, hold, unhold
637 specifies the behavior of apt in case of no more dependencies installed
638 https://manpages.debian.org/stable/apt/apt-mark.8.en.html
639
640 ### <a name="aptpin"></a>`apt::pin`
641
642 Manages Apt pins. Does not trigger an apt-get update run.
643
644 * **See also**
645   * http://linux.die.net/man/5/apt_preferences
646     * for context on these parameters
647
648 #### Parameters
649
650 The following parameters are available in the `apt::pin` defined type:
651
652 * [`ensure`](#ensure)
653 * [`explanation`](#explanation)
654 * [`order`](#order)
655 * [`packages`](#packages)
656 * [`priority`](#priority)
657 * [`release`](#release)
658 * [`release_version`](#release_version)
659 * [`component`](#component)
660 * [`originator`](#originator)
661 * [`label`](#label)
662 * [`origin`](#origin)
663 * [`version`](#version)
664 * [`codename`](#codename)
665
666 ##### <a name="ensure"></a>`ensure`
667
668 Data type: `Optional[Enum['file', 'present', 'absent']]`
669
670 Specifies whether the pin should exist. Valid options: 'file', 'present', and 'absent'.
671
672 Default value: `present`
673
674 ##### <a name="explanation"></a>`explanation`
675
676 Data type: `Optional[String]`
677
678 Supplies a comment to explain the pin. Default: "${caller_module_name}: ${name}".
679
680 Default value: ``undef``
681
682 ##### <a name="order"></a>`order`
683
684 Data type: `Variant[Integer]`
685
686 Determines the order in which Apt processes the pin file. Files with lower order numbers are loaded first.
687
688 Default value: `50`
689
690 ##### <a name="packages"></a>`packages`
691
692 Data type: `Variant[String, Array]`
693
694 Specifies which package(s) to pin.
695
696 Default value: `'*'`
697
698 ##### <a name="priority"></a>`priority`
699
700 Data type: `Variant[Numeric, String]`
701
702 Sets the priority of the package. If multiple versions of a given package are available, `apt-get` installs the one with the highest
703 priority number (subject to dependency constraints). Valid options: an integer.
704
705 Default value: `0`
706
707 ##### <a name="release"></a>`release`
708
709 Data type: `Optional[String]`
710
711 Tells APT to prefer packages that support the specified release. Typical values include 'stable', 'testing', and 'unstable'.
712
713 Default value: `''`
714
715 ##### <a name="release_version"></a>`release_version`
716
717 Data type: `Optional[String]`
718
719 Tells APT to prefer packages that support the specified operating system release version (such as Debian release version 7).
720
721 Default value: `''`
722
723 ##### <a name="component"></a>`component`
724
725 Data type: `Optional[String]`
726
727 Names the licensing component associated with the packages in the directory tree of the Release file.
728
729 Default value: `''`
730
731 ##### <a name="originator"></a>`originator`
732
733 Data type: `Optional[String]`
734
735 Names the originator of the packages in the directory tree of the Release file.
736
737 Default value: `''`
738
739 ##### <a name="label"></a>`label`
740
741 Data type: `Optional[String]`
742
743 Names the label of the packages in the directory tree of the Release file.
744
745 Default value: `''`
746
747 ##### <a name="origin"></a>`origin`
748
749 Data type: `Optional[String]`
750
751
752
753 Default value: `''`
754
755 ##### <a name="version"></a>`version`
756
757 Data type: `Optional[String]`
758
759
760
761 Default value: `''`
762
763 ##### <a name="codename"></a>`codename`
764
765 Data type: `Optional[String]`
766
767
768
769 Default value: `''`
770
771 ### <a name="aptppa"></a>`apt::ppa`
772
773 Manages PPA repositories using `add-apt-repository`. Not supported on Debian.
774
775 #### Examples
776
777 ##### Example declaration of an Apt PPA
778
779 ```puppet
780 apt::ppa{ 'ppa:openstack-ppa/bleeding-edge': }
781 ```
782
783 #### Parameters
784
785 The following parameters are available in the `apt::ppa` defined type:
786
787 * [`ensure`](#ensure)
788 * [`options`](#options)
789 * [`release`](#release)
790 * [`dist`](#dist)
791 * [`package_name`](#package_name)
792 * [`package_manage`](#package_manage)
793
794 ##### <a name="ensure"></a>`ensure`
795
796 Data type: `String`
797
798 Specifies whether the PPA should exist. Valid options: 'present' and 'absent'.
799
800 Default value: `'present'`
801
802 ##### <a name="options"></a>`options`
803
804 Data type: `Optional[String]`
805
806 Supplies options to be passed to the `add-apt-repository` command. Default: '-y'.
807
808 Default value: `$::apt::ppa_options`
809
810 ##### <a name="release"></a>`release`
811
812 Data type: `Optional[String]`
813
814 Specifies the operating system of your node. Valid options: a string containing a valid LSB distribution codename.
815 Optional if `puppet facts show os.distro.codename` returns your correct distribution release codename.
816
817 Default value: `fact('os.distro.codename')`
818
819 ##### <a name="dist"></a>`dist`
820
821 Data type: `Optional[String]`
822
823 Specifies the distribution of your node. Valid options: a string containing a valid distribution codename.
824 Optional if `puppet facts show os.name` returns your correct distribution name.
825
826 Default value: `$facts['os']['name']`
827
828 ##### <a name="package_name"></a>`package_name`
829
830 Data type: `Optional[String]`
831
832 Names the package that provides the `apt-add-repository` command. Default: 'software-properties-common'.
833
834 Default value: `$::apt::ppa_package`
835
836 ##### <a name="package_manage"></a>`package_manage`
837
838 Data type: `Boolean`
839
840 Specifies whether Puppet should manage the package that provides `apt-add-repository`.
841
842 Default value: ``false``
843
844 ### <a name="aptsetting"></a>`apt::setting`
845
846 Manages Apt configuration files.
847
848 * **See also**
849   * https://docs.puppetlabs.com/references/latest/type.html#file-attributes
850     * for more information on source and content parameters
851
852 #### Parameters
853
854 The following parameters are available in the `apt::setting` defined type:
855
856 * [`priority`](#priority)
857 * [`ensure`](#ensure)
858 * [`source`](#source)
859 * [`content`](#content)
860 * [`notify_update`](#notify_update)
861
862 ##### <a name="priority"></a>`priority`
863
864 Data type: `Variant[String, Integer, Array]`
865
866 Determines the order in which Apt processes the configuration file. Files with higher priority numbers are loaded first.
867
868 Default value: `50`
869
870 ##### <a name="ensure"></a>`ensure`
871
872 Data type: `Optional[Enum['file', 'present', 'absent']]`
873
874 Specifies whether the file should exist. Valid options: 'present', 'absent', and 'file'.
875
876 Default value: `file`
877
878 ##### <a name="source"></a>`source`
879
880 Data type: `Optional[String]`
881
882 Required, unless `content` is set. Specifies a source file to supply the content of the configuration file. Cannot be used in combination
883 with `content`. Valid options: see link above for Puppet's native file type source attribute.
884
885 Default value: ``undef``
886
887 ##### <a name="content"></a>`content`
888
889 Data type: `Optional[String]`
890
891 Required, unless `source` is set. Directly supplies content for the configuration file. Cannot be used in combination with `source`. Valid
892 options: see link above for Puppet's native file type content attribute.
893
894 Default value: ``undef``
895
896 ##### <a name="notify_update"></a>`notify_update`
897
898 Data type: `Boolean`
899
900 Specifies whether to trigger an `apt-get update` run.
901
902 Default value: ``true``
903
904 ### <a name="aptsource"></a>`apt::source`
905
906 Manages the Apt sources in /etc/apt/sources.list.d/.
907
908 #### Examples
909
910 ##### Install the puppetlabs apt source
911
912 ```puppet
913 apt::source { 'puppetlabs':
914   location => 'http://apt.puppetlabs.com',
915   repos    => 'main',
916   key      => {
917     id     => '6F6B15509CF8E59E6E469F327F438280EF8D349F',
918     server => 'keyserver.ubuntu.com',
919   },
920 }
921 ```
922
923 #### Parameters
924
925 The following parameters are available in the `apt::source` defined type:
926
927 * [`location`](#location)
928 * [`comment`](#comment)
929 * [`ensure`](#ensure)
930 * [`release`](#release)
931 * [`repos`](#repos)
932 * [`include`](#include)
933 * [`key`](#key)
934 * [`keyring`](#keyring)
935 * [`pin`](#pin)
936 * [`architecture`](#architecture)
937 * [`allow_unsigned`](#allow_unsigned)
938 * [`notify_update`](#notify_update)
939 * [`allow_insecure`](#allow_insecure)
940 * [`check_valid_until`](#check_valid_until)
941
942 ##### <a name="location"></a>`location`
943
944 Data type: `Optional[String]`
945
946 Required, unless ensure is set to 'absent'. Specifies an Apt repository. Valid options: a string containing a repository URL.
947
948 Default value: ``undef``
949
950 ##### <a name="comment"></a>`comment`
951
952 Data type: `String`
953
954 Supplies a comment for adding to the Apt source file.
955
956 Default value: `$name`
957
958 ##### <a name="ensure"></a>`ensure`
959
960 Data type: `String`
961
962 Specifies whether the Apt source file should exist. Valid options: 'present' and 'absent'.
963
964 Default value: `present`
965
966 ##### <a name="release"></a>`release`
967
968 Data type: `Optional[String]`
969
970 Specifies a distribution of the Apt repository.
971
972 Default value: ``undef``
973
974 ##### <a name="repos"></a>`repos`
975
976 Data type: `String`
977
978 Specifies a component of the Apt repository.
979
980 Default value: `'main'`
981
982 ##### <a name="include"></a>`include`
983
984 Data type: `Optional[Variant[Hash]]`
985
986 Configures include options. Valid options: a hash of available keys.
987
988 Options:
989
990 * **:deb** `Boolean`: Specifies whether to request the distribution's compiled binaries. Default true.
991 * **:src** `Boolean`: Specifies whether to request the distribution's uncompiled source code. Default false.
992
993 Default value: `{}`
994
995 ##### <a name="key"></a>`key`
996
997 Data type: `Optional[Variant[String, Hash]]`
998
999 Creates a declaration of the apt::key defined type. Valid options: a string to be passed to the `id` parameter of the `apt::key`
1000 defined type, or a hash of `parameter => value` pairs to be passed to `apt::key`'s `id`, `server`, `content`, `source`, `weak_ssl`,
1001 and/or `options` parameters.
1002
1003 Default value: ``undef``
1004
1005 ##### <a name="keyring"></a>`keyring`
1006
1007 Data type: `Optional[Stdlib::AbsolutePath]`
1008
1009 Absolute path to a file containing the PGP keyring used to sign this repository. Value is used to set signed-by on the source entry.
1010 See https://wiki.debian.org/DebianRepository/UseThirdParty for details.
1011
1012 Default value: ``undef``
1013
1014 ##### <a name="pin"></a>`pin`
1015
1016 Data type: `Optional[Variant[Hash, Numeric, String]]`
1017
1018 Creates a declaration of the apt::pin defined type. Valid options: a number or string to be passed to the `id` parameter of the
1019 `apt::pin` defined type, or a hash of `parameter => value` pairs to be passed to `apt::pin`'s corresponding parameters.
1020
1021 Default value: ``undef``
1022
1023 ##### <a name="architecture"></a>`architecture`
1024
1025 Data type: `Optional[String]`
1026
1027 Tells Apt to only download information for specified architectures. Valid options: a string containing one or more architecture names,
1028 separated by commas (e.g., 'i386' or 'i386,alpha,powerpc'). Default: undef (if unspecified, Apt downloads information for all architectures
1029 defined in the Apt::Architectures option).
1030
1031 Default value: ``undef``
1032
1033 ##### <a name="allow_unsigned"></a>`allow_unsigned`
1034
1035 Data type: `Boolean`
1036
1037 Specifies whether to authenticate packages from this release, even if the Release file is not signed or the signature can't be checked.
1038
1039 Default value: ``false``
1040
1041 ##### <a name="notify_update"></a>`notify_update`
1042
1043 Data type: `Boolean`
1044
1045 Specifies whether to trigger an `apt-get update` run.
1046
1047 Default value: ``true``
1048
1049 ##### <a name="allow_insecure"></a>`allow_insecure`
1050
1051 Data type: `Boolean`
1052
1053 Specifies whether to allow downloads from insecure repositories.
1054
1055 Default value: ``false``
1056
1057 ##### <a name="check_valid_until"></a>`check_valid_until`
1058
1059 Data type: `Boolean`
1060
1061 Specifies whether to check if the package release date is valid. Defaults to `True`.
1062
1063 Default value: ``true``
1064
1065 ## Resource types
1066
1067 ## Data types
1068
1069 ### <a name="aptauth_conf_entry"></a>`Apt::Auth_conf_entry`
1070
1071 Login configuration settings that are recorded in the file `/etc/apt/auth.conf`.
1072
1073 * **See also**
1074   * https://manpages.debian.org/testing/apt/apt_auth.conf.5.en.html
1075   * for more information
1076
1077 Alias of
1078
1079 ```puppet
1080 Struct[{
1081     machine => String[1],
1082     login => String,
1083     password => String
1084   }]
1085 ```
1086
1087 #### Parameters
1088
1089 The following parameters are available in the `Apt::Auth_conf_entry` data type:
1090
1091 * [`machine`](#machine)
1092 * [`login`](#login)
1093 * [`password`](#password)
1094
1095 ##### <a name="machine"></a>`machine`
1096
1097 Hostname of machine to connect to.
1098
1099 ##### <a name="login"></a>`login`
1100
1101 Specifies the username to connect with.
1102
1103 ##### <a name="password"></a>`password`
1104
1105 Specifies the password to connect with.
1106
1107 ### <a name="aptproxy"></a>`Apt::Proxy`
1108
1109 Configures Apt to connect to a proxy server.
1110
1111 Alias of
1112
1113 ```puppet
1114 Struct[{
1115     ensure     => Optional[Enum['file', 'present', 'absent']],
1116     host       => Optional[String],
1117     port       => Optional[Integer[0, 65535]],
1118     https      => Optional[Boolean],
1119     https_acng => Optional[Boolean],
1120     direct     => Optional[Boolean],
1121     perhost    => Optional[Array[Apt::Proxy_Per_Host]],
1122   }]
1123 ```
1124
1125 #### Parameters
1126
1127 The following parameters are available in the `Apt::Proxy` data type:
1128
1129 * [`ensure`](#ensure)
1130 * [`host`](#host)
1131 * [`port`](#port)
1132 * [`https`](#https)
1133 * [`direct`](#direct)
1134
1135 ##### <a name="ensure"></a>`ensure`
1136
1137 Specifies whether the proxy should exist. Valid options: 'file', 'present', and 'absent'. Prefer 'file' over 'present'.
1138
1139 ##### <a name="host"></a>`host`
1140
1141 Specifies a proxy host to be stored in `/etc/apt/apt.conf.d/01proxy`. Valid options: a string containing a hostname.
1142
1143 ##### <a name="port"></a>`port`
1144
1145 Specifies a proxy port to be stored in `/etc/apt/apt.conf.d/01proxy`. Valid options: an integer containing a port number.
1146
1147 ##### <a name="https"></a>`https`
1148
1149 Specifies whether to enable https proxies.
1150
1151 ##### <a name="direct"></a>`direct`
1152
1153 Specifies whether or not to use a `DIRECT` https proxy if http proxy is used but https is not.
1154
1155 ### <a name="aptproxy_per_host"></a>`Apt::Proxy_Per_Host`
1156
1157 Adds per-host overrides to the system default APT proxy configuration
1158
1159 Alias of
1160
1161 ```puppet
1162 Struct[{
1163     scope      => String,
1164     host       => Optional[String],
1165     port       => Optional[Integer[1, 65535]],
1166     https      => Optional[Boolean],
1167     direct     => Optional[Boolean],
1168   }]
1169 ```
1170
1171 #### Parameters
1172
1173 The following parameters are available in the `Apt::Proxy_Per_Host` data type:
1174
1175 * [`scope`](#scope)
1176 * [`host`](#host)
1177 * [`port`](#port)
1178 * [`https`](#https)
1179 * [`direct`](#direct)
1180
1181 ##### <a name="scope"></a>`scope`
1182
1183 Specifies the scope of the override.  Valid options: a string containing a hostname.
1184
1185 ##### <a name="host"></a>`host`
1186
1187 Specifies a proxy host to be stored in `/etc/apt/apt.conf.d/01proxy`. Valid options: a string containing a hostname.
1188
1189 ##### <a name="port"></a>`port`
1190
1191 Specifies a proxy port to be stored in `/etc/apt/apt.conf.d/01proxy`. Valid options: an integer containing a port number.
1192
1193 ##### <a name="https"></a>`https`
1194
1195 Specifies whether to enable https for this override.
1196
1197 ##### <a name="direct"></a>`direct`
1198
1199 Specifies whether or not to use a `DIRECT` target to bypass the system default proxy.
1200
1201 ## Tasks
1202
1203 ### <a name="init"></a>`init`
1204
1205 Allows you to perform apt functions
1206
1207 **Supports noop?** false
1208
1209 #### Parameters
1210
1211 ##### `action`
1212
1213 Data type: `Enum[update, upgrade, dist-upgrade, autoremove]`
1214
1215 Action to perform 
1216