diff --git a/examples.markdown b/examples.markdown index 18ef90199..2d8ddd8b3 100644 --- a/examples.markdown +++ b/examples.markdown @@ -109,7 +109,7 @@ Thus, CFEngine can function even if everything else fails ### Make the Example Stand Alone ### Instead of specifying the bundle sequence on the command line (as it was above), a [body common -control][Components and Common Control#Common Control] section can be added to +control][Components#Common Control] section can be added to the policy file. The **body common control** refers to those promises that are hard-coded into all CFEngine components and therefore affect the behavior of all components. Note that only one `body common control` is allowed per agent activation. @@ -252,7 +252,7 @@ from the example. }; ``` -4. Insert the policy file name in the [`inputs`][Components and Common Control#inputs] section of the main policy file +4. Insert the policy file name in the [`inputs`][Components#inputs] section of the main policy file `/var/cfengine/masterfiles/promises.cf`: ```cf3 diff --git a/examples/tutorials/custom_inventory.markdown b/examples/tutorials/custom_inventory.markdown index 685348951..9b18da29a 100644 --- a/examples/tutorials/custom_inventory.markdown +++ b/examples/tutorials/custom_inventory.markdown @@ -82,7 +82,7 @@ Git repository. If it is, please add the policy to your repository and ensure it gets to its final destination as needed. This policy will not be activated until it has been included in -[inputs][Components and Common Control#inputs]. For simplicity we will be +[inputs][Components#inputs]. For simplicity we will be adding it via [Augments][Augments] (`def.json`). Create `/var/cfengine/masterfiles/def.json` and populate it with the following content: diff --git a/examples/tutorials/distribute-files-from-a-central-location.markdown b/examples/tutorials/distribute-files-from-a-central-location.markdown index 0d1dca9cd..c1b112cab 100644 --- a/examples/tutorials/distribute-files-from-a-central-location.markdown +++ b/examples/tutorials/distribute-files-from-a-central-location.markdown @@ -162,12 +162,12 @@ is involved in patch distribution, they can view that bundle for specifics. ## Integrate the policy Now that all the pieces of the policy are in place, they must be integrated -into the policy so they can be activated. Add each policy file to the [`inputs`][Components and Common Control#inputs] +into the policy so they can be activated. Add each policy file to the [`inputs`][Components#inputs] section which is found under `body common control`. Once the policy file is included in inputs, the bundle can be activated. Bundles can be activated by adding them to either the `bundlesequence` or they can be called as a `methods` type promise. -Add the following entries to `promises.cf` under `body common control` -> [`inputs`][Components and Common Control#inputs]: +Add the following entries to `promises.cf` under `body common control` -> [`inputs`][Components#inputs]: "lib/custom/files.cf", "services/patching.cf", diff --git a/guide/faq/fix-undefined-body-error.markdown b/guide/faq/fix-undefined-body-error.markdown index 1becbf87e..28cb13c02 100644 --- a/guide/faq/fix-undefined-body-error.markdown +++ b/guide/faq/fix-undefined-body-error.markdown @@ -16,7 +16,7 @@ When running policy you see `error: Undefined body`. For example: The above errors indicate that the `tidy` and `recurse` bodies are not found in inputs. Bodies and bundles must either be defined within the same policy file or -included from [body common control inputs][Components and Common Control#inputs] +included from [body common control inputs][Components#inputs] or [body file control inputs][file control#inputs]. # Example: Add stdlib via body common control diff --git a/guide/faq/integrate-custom-policy.markdown b/guide/faq/integrate-custom-policy.markdown index 69e1ca54a..2a2bdc791 100644 --- a/guide/faq/integrate-custom-policy.markdown +++ b/guide/faq/integrate-custom-policy.markdown @@ -110,5 +110,5 @@ other. make up the policy set ( *inputs* ), and the order of the bundles to be executed ( *bundlesequence* ). -**See Also:** [`inputs` in `body common control`][Components and Common Control#inputs], [`bundlesequence` in `body common control`][Components and Common Control#bundlesequence] +**See also:** [`inputs` in `body common control`][Components#inputs], [`bundlesequence` in `body common control`][Components#bundlesequence] diff --git a/guide/faq/manual-execution.markdown b/guide/faq/manual-execution.markdown index 8390537df..af5296bd6 100644 --- a/guide/faq/manual-execution.markdown +++ b/guide/faq/manual-execution.markdown @@ -101,5 +101,5 @@ This command will run `cf-agent` with the additional class `patch_and_reboot` on classes it is using must be resolvable during pre-evaluation as the full evaluation is only allowed when the classes are found to be defined. -**See Also:** [How is "recently seen" determined][Components and Common Control#lastseenexpireafter], [`cf-runagent`][cf-runagent], [pre-evaluation][Normal Ordering#agent pre-evaluation step] +**See also:** [How is "recently seen" determined][Components#lastseenexpireafter], [`cf-runagent`][cf-runagent], [pre-evaluation][Normal Ordering#agent pre-evaluation step] diff --git a/guide/installation-and-configuration/general-installation.markdown b/guide/installation-and-configuration/general-installation.markdown index a1c237667..b94d37154 100644 --- a/guide/installation-and-configuration/general-installation.markdown +++ b/guide/installation-and-configuration/general-installation.markdown @@ -62,7 +62,7 @@ The bootstrap command must then be run on any client attaching itself to this se ## Post-Installation Configuration ## -CFEngine itself is configured through policy as well (see [Components and Common Control][] and +CFEngine itself is configured through policy as well (see [Components][] and [Masterfiles Policy Framework][] for details). The following basic changes to the default policy will configure `cf-serverd` and `cf-execd` for your environment. diff --git a/guide/installation-and-configuration/secure-bootstrap.markdown b/guide/installation-and-configuration/secure-bootstrap.markdown index ba99e0c03..a2b010ec8 100644 --- a/guide/installation-and-configuration/secure-bootstrap.markdown +++ b/guide/installation-and-configuration/secure-bootstrap.markdown @@ -57,7 +57,7 @@ wish to bootstrap. And install it using `cf-key`. [root@host001]# cf-key --trust-key /path/to/hubs/key.pub ``` -**Note:** If you are using [protocol_version `1` or `classic`][Components and Common Control#protocol_version] +**Note:** If you are using [protocol_version `1` or `classic`][Components#protocol_version] you need to supply an IP address before the path to the key. For example: diff --git a/guide/introduction/networking.markdown b/guide/introduction/networking.markdown index 3e4104cb7..77f8d072f 100644 --- a/guide/introduction/networking.markdown +++ b/guide/introduction/networking.markdown @@ -122,7 +122,7 @@ On the client side, i.e. `cf-runagent` and `cf-agent`, there are three issues: 1. Choosing which server to connect to. 2. Trusting the key of any previously unknown servers 3. Choosing whether data transfers should be encrypted (with - [`encrypt`][files#encrypt]) - not applicable if you are using new [`protocol_version`][Components and Common Control#protocol_version]. + [`encrypt`][files#encrypt]) - not applicable if you are using new [`protocol_version`][Components#protocol_version]. There are two ways of managing trust of server keys by a client. One is an automated option, setting the option [`trustkey`][files#trustkey] in a `copy_from` files promise, e.g. @@ -220,7 +220,7 @@ that cf-serverd requires to be encrypted can be logged by setting the ### Protocol 2 3.6 introduced a new protocol option for communication with -cf-serverd. [Protocol 2][Components and Common Control#protocol_version] +cf-serverd. [Protocol 2][Components#protocol_version] is the default in 3.7+ and uses a TLS session for encryption. **Note:** When protocol 2 is in use legacy encryption attributes are **noop**. @@ -239,14 +239,14 @@ setting the [body server control `allowciphers` attribute][cf-serverd#allowciphers]. Controlling which ciphers are allowed to be used in **outgoing** connections is done by setting -[body common control `tls_ciphers`][Components and Common Control#tls_ciphers]. +[body common control `tls_ciphers`][Components#tls_ciphers]. Additionally the minimum version of TLS required for **incoming** connections can be set in [body server control `allowtlsversion`][cf-serverd#allowtlsversion] and the minimum version of TLS required for **outgoing** connections can be set in -[body common control `tls_min_version`][Components and Common Control#tls_min_version]. +[body common control `tls_min_version`][Components#tls_min_version]. There are debug and verbose level logs produced by cf-agent to indicate when TLS is in use. diff --git a/index.markdown b/index.markdown index 0f1e3908d..85a568872 100644 --- a/index.markdown +++ b/index.markdown @@ -32,7 +32,7 @@ frequently asked questions (and answers :) *Shortcuts:* -## [Components][Components and Common Control] +## [Components][Components] Cf-agent, cf-serverd, cf-execd, cf-promises, etc. ## [Language concepts][Language Concepts] diff --git a/reference.markdown b/reference.markdown index 40aec3a06..bed1d89c4 100644 --- a/reference.markdown +++ b/reference.markdown @@ -10,7 +10,7 @@ components, bodies, functions, variables, classes and attributes in detail. Language elements that belong together are typically documented on the same page. -* [Components and Common Control][Components and Common Control] +* [Components][Components] * [Promise Types][Promise Types] * [Functions][Functions] * [Language Concepts][Language Concepts] diff --git a/reference/components.markdown b/reference/components.markdown index 95cc62b7e..d3c2ed7df 100644 --- a/reference/components.markdown +++ b/reference/components.markdown @@ -1,6 +1,6 @@ --- layout: default -title: Components and Common Control +title: Components published: true sorting: 10 tags: [Reference, Components] @@ -443,7 +443,7 @@ body common control using the [`body copy_from protocol_version`][files#protocol_version] attribute. -**See also:** [`body copy_from protocol_version`][files#protocol_version], `allowlegacyconnects`, [`allowtlsversion`][cf-serverd#allowtlsversion], [`allowciphers`][cf-serverd#allowciphers], [`tls_min_version`][Components and Common Control#tls_min_version], [`tls_ciphers`][Components and Common Control#tls_ciphers], [`encrypt`][files#encrypt], [`logencryptedtransfers`][cf-serverd#logencryptedtransfers], [`ifencrypted`][access#ifencrypted] +**See also:** [`body copy_from protocol_version`][files#protocol_version], `allowlegacyconnects`, [`allowtlsversion`][cf-serverd#allowtlsversion], [`allowciphers`][cf-serverd#allowciphers], [`tls_min_version`][Components#tls_min_version], [`tls_ciphers`][Components#tls_ciphers], [`encrypt`][files#encrypt], [`logencryptedtransfers`][cf-serverd#logencryptedtransfers], [`ifencrypted`][access#ifencrypted] **History:** Introduced in CFEngine 3.6.0 @@ -572,7 +572,7 @@ body common control } ``` -**See also:** [`protocol_version`][Components and Common Control#protocol_version], [`allowciphers`][cf-serverd#allowciphers], [`tls_min_version`][Components and Common Control#tls_min_version], [`allowtlsversion`][cf-serverd#allowtlsversion], [`encrypt`][files#encrypt], [`logencryptedtransfers`][cf-serverd#logencryptedtransfers], [`ifencrypted`][access#ifencrypted] +**See also:** [`protocol_version`][Components#protocol_version], [`allowciphers`][cf-serverd#allowciphers], [`tls_min_version`][Components#tls_min_version], [`allowtlsversion`][cf-serverd#allowtlsversion], [`encrypt`][files#encrypt], [`logencryptedtransfers`][cf-serverd#logencryptedtransfers], [`ifencrypted`][access#ifencrypted] **History:** Introduced in CFEngine 3.7.0 @@ -590,7 +590,7 @@ body common control } ``` -**See also:** [`protocol_version`][Components and Common Control#protocol_version], [`allowciphers`][cf-serverd#allowciphers], [`tls_ciphers`][Components and Common Control#tls_ciphers], [`allowtlsversion`][cf-serverd#allowtlsversion], [`encrypt`][files#encrypt], [`ifencrypted`][access#ifencrypted], [`logencryptedtransfers`][cf-serverd#logencryptedtransfers] +**See also:** [`protocol_version`][Components#protocol_version], [`allowciphers`][cf-serverd#allowciphers], [`tls_ciphers`][Components#tls_ciphers], [`allowtlsversion`][cf-serverd#allowtlsversion], [`encrypt`][files#encrypt], [`ifencrypted`][access#ifencrypted], [`logencryptedtransfers`][cf-serverd#logencryptedtransfers] **History:** Introduced in CFEngine 3.7.0 diff --git a/reference/components/cf-agent.markdown b/reference/components/cf-agent.markdown index d8f55577d..9858649b2 100644 --- a/reference/components/cf-agent.markdown +++ b/reference/components/cf-agent.markdown @@ -9,7 +9,7 @@ keywords: [agent] `cf-agent` evaluates policy code and makes changes to the system. Policy bundles are evaluated in the order of the provided `bundlesequence` (this is normally specified in the -[`common control body`][Components and Common Control#Common Control]). For +[`common control body`][Components#Common Control]). For each bundle, `cf-agent` groups promise statements according to their type. Promise types are then evaluated in a preset order to ensure fast system convergence to policy. diff --git a/reference/components/cf-serverd.markdown b/reference/components/cf-serverd.markdown index 2e93f98bd..f831b37fa 100644 --- a/reference/components/cf-serverd.markdown +++ b/reference/components/cf-serverd.markdown @@ -134,7 +134,7 @@ specify a list of hosts allowed to use the legacy protocol. [%CFEngine_promise_attribute()%] -**See also:** [`protocol_version`][Components and Common Control#protocol_version] +**See also:** [`protocol_version`][Components#protocol_version] ### allowciphers @@ -155,13 +155,13 @@ body server control ``` **Note:** When used with -[`protocol_version`][Components and Common Control#protocol_version] 1 (classic protocol), +[`protocol_version`][Components#protocol_version] 1 (classic protocol), this does not do anything as the classic protocol does not support TLS ciphers. **See also:** -[`protocol_version`][Components and Common Control#protocol_version], -[`tls_ciphers`][Components and Common Control#tls_ciphers], -[`tls_min_version`][Components and Common Control#tls_min_version], +[`protocol_version`][Components#protocol_version], +[`tls_ciphers`][Components#tls_ciphers], +[`tls_min_version`][Components#tls_min_version], [`allowtlsversion`][cf-serverd#allowtlsversion], [`encrypt`][files#encrypt], [`logencryptedtransfers`][cf-serverd#logencryptedtransfers], @@ -187,13 +187,13 @@ body server control ``` **Note:** When used with -[`protocol_version`][Components and Common Control#protocol_version] 1 (classic protocol), +[`protocol_version`][Components#protocol_version] 1 (classic protocol), this attribute does not do anything. **See also:** -[`protocol_version`][Components and Common Control#protocol_version], -[`tls_ciphers`][Components and Common Control#tls_ciphers], -[`tls_min_version`][Components and Common Control#tls_min_version], +[`protocol_version`][Components#protocol_version], +[`tls_ciphers`][Components#tls_ciphers], +[`tls_min_version`][Components#tls_min_version], [`allowciphers`][cf-serverd#allowciphers], [`encrypt`][files#encrypt], [`logencryptedtransfers`][cf-serverd#logencryptedtransfers], @@ -489,7 +489,7 @@ to syslog. These files are deemed to be particularly sensitive. } ``` -**See also:** [`ifencrypted`][access#ifencrypted], [`encrypt`][files#encrypt], [`tls_ciphers`][Components and Common Control#tls_ciphers], [`tls_min_version`][Components and Common Control#tls_min_version], [`allowciphers`][cf-serverd#allowciphers], [`allowtlsversion`][cf-serverd#allowtlsversion], [`protocol_version`][Components and Common Control#protocol_version] +**See also:** [`ifencrypted`][access#ifencrypted], [`encrypt`][files#encrypt], [`tls_ciphers`][Components#tls_ciphers], [`tls_min_version`][Components#tls_min_version], [`allowciphers`][cf-serverd#allowciphers], [`allowtlsversion`][cf-serverd#allowtlsversion], [`protocol_version`][Components#protocol_version] ### maxconnections diff --git a/reference/components/file_control_promises.markdown b/reference/components/file_control_promises.markdown index 63b78517d..f7763bd54 100644 --- a/reference/components/file_control_promises.markdown +++ b/reference/components/file_control_promises.markdown @@ -37,8 +37,46 @@ Use `sys.libdir` (absolute library path), `sys.local_libdir` (library path relat current masterfiles), and `this.promise_dirname` (the directory of the currently processed file) to avoid hard-coding paths. -**See also:** [`inputs`][Components and Common Control#inputs] in -[`body common control`][Components and Common Control] +Note that in `this.` variables are not available in `body file control` or `body common control` +but this can be worked around with a `bundle common` vars promise as follows: + +```cf3 +# one.cf +bundle common one +{ + vars: + "inputs" slist => { "$(this.promise_dirname)/two.cf" }; +} + +body file control +{ + inputs => { "@(one.inputs)" }; +} + +bundle agent main +{ + methods: + "two"; +} +``` + +```cf3 +# two.cf +bundle agent two +{ + reports: + "hello, from $(this.promise_filename)"; +} +``` + +```sh +$ cf-agent -KIf ./one.cf +R: hello, from /home/agent/./two.cf +``` + + +**See also:** [`inputs`][Components#inputs] in +[`body common control`][Components] **History:** Was introduced in CFEngine 3.6.0 diff --git a/reference/functions/hostsseen.markdown b/reference/functions/hostsseen.markdown index f43ff7b0f..a643ca7e4 100644 --- a/reference/functions/hostsseen.markdown +++ b/reference/functions/hostsseen.markdown @@ -31,4 +31,4 @@ reports: } ``` -**See Also:** [lastseenexpireafter in body common control][Components and Common Control#lastseenexpireafter] +**See also:** [lastseenexpireafter in body common control][Components#lastseenexpireafter] diff --git a/reference/functions/packagesmatching.markdown b/reference/functions/packagesmatching.markdown index c7096b0f6..0ee5a83f9 100644 --- a/reference/functions/packagesmatching.markdown +++ b/reference/functions/packagesmatching.markdown @@ -40,7 +40,7 @@ this: The following code extracts just the package names, then looks for some desired packages, and finally reports if they are installed. -**IMPORTANT:** Please note that you need to provide `package_inventory` attribute in `body common control` in order to be able to use this function. Also depending on the value(s) of `package_inventory` only packages from selected package modules will be returned. For more information about `package_inventory` please read [`package_inventory`][Components and Common Control#package_inventory] section. +**IMPORTANT:** Please note that you need to provide `package_inventory` attribute in `body common control` in order to be able to use this function. Also depending on the value(s) of `package_inventory` only packages from selected package modules will be returned. For more information about `package_inventory` please read [`package_inventory`][Components#package_inventory] section. [%CFEngine_include_example(packagesmatching.cf)%] diff --git a/reference/functions/packageupdatesmatching.markdown b/reference/functions/packageupdatesmatching.markdown index a49589dc3..251df349b 100644 --- a/reference/functions/packageupdatesmatching.markdown +++ b/reference/functions/packageupdatesmatching.markdown @@ -36,7 +36,7 @@ this: * `arch_regex` - Regular expression matching package architecutre * `method_regex` - Regular expression matching package method (apt-get, rpm, etc ...) -**IMPORTANT:** Please note that you need to provide `package_inventory` attribute in `body common control` in order to be able to use this function. Also depending on the value(s) of `package_inventory` only packages from selected package modules will be returned. For more information about `package_inventory` please read [`package_inventory`][Components and Common Control#package_inventory] section. +**IMPORTANT:** Please note that you need to provide `package_inventory` attribute in `body common control` in order to be able to use this function. Also depending on the value(s) of `package_inventory` only packages from selected package modules will be returned. For more information about `package_inventory` please read [`package_inventory`][Components#package_inventory] section. **Example:** diff --git a/reference/language-concepts/augments.markdown b/reference/language-concepts/augments.markdown index 468ca5405..804b8c90c 100644 --- a/reference/language-concepts/augments.markdown +++ b/reference/language-concepts/augments.markdown @@ -88,7 +88,7 @@ results in the variable `def.phone` with value `22-333-4444` being defined, and happens before policy is parsed or evaluated. You can see the list of variables thus defined in the output of `cf-promises ---show-vars` (see [Components and Common Control][]). They will be tagged with +--show-vars` (see [Components][]). They will be tagged with the tag `source=augments_file`. For instance, the above two variables (assuming you placed the data in `$(sys.inputdir)/def.json`) result in @@ -182,7 +182,7 @@ results in agents and `MISSING` is not defined. You can see the list of classes thus defined through `def.json` in the output -of `cf-promises --show-classes` (see [Components and Common Control][]). They +of `cf-promises --show-classes` (see [Components][]). They will be tagged with the tags `source=augments_file,hardclass`. For instance: ```console diff --git a/reference/language-concepts/bodies.markdown b/reference/language-concepts/bodies.markdown index a00fef9bc..2bbf193f8 100644 --- a/reference/language-concepts/bodies.markdown +++ b/reference/language-concepts/bodies.markdown @@ -171,7 +171,7 @@ This promise bodies configures the `bundlesequence` to execute on a cf-agent. This promise body defines the clients allowed to connect to a cf-serverd. For more information, see the reference documentation about the [CFEngine -Agents][Components and Common Control] +Agents][Components] #### Default bodies diff --git a/reference/promise-types.markdown b/reference/promise-types.markdown index 704743081..6dbaa35a0 100644 --- a/reference/promise-types.markdown +++ b/reference/promise-types.markdown @@ -314,7 +314,7 @@ log message. * `udp_syslog` -Log messages to [syslog_host][Components and Common Control#syslog_host] as +Log messages to [syslog_host][Components#syslog_host] as defined in body common control over UDP. Please note [UDP is unreliable](http://en.wikipedia.org/wiki/Syslog#Limitations). diff --git a/reference/promise-types/access.markdown b/reference/promise-types/access.markdown index 2e556c877..33e5a2fd4 100644 --- a/reference/promise-types/access.markdown +++ b/reference/promise-types/access.markdown @@ -399,10 +399,10 @@ access: ``` **Note:** This attribute is a noop when used with -[`protocol_version`][Components and Common Control#protocol_version] 2 or +[`protocol_version`][Components#protocol_version] 2 or greater. -**See also:** [`protocol_version`][Components and Common Control#protocol_version], [`allowtlsversion`][cf-serverd#allowtlsversion], [`allowciphers`][cf-serverd#allowciphers], [`tls_min_version`][Components and Common Control#tls_min_version], [`tls_ciphers`][Components and Common Control#tls_ciphers], [`encrypt`][files#encrypt], [`logencryptedtransfers`][cf-serverd#logencryptedtransfers], [`ifencrypted`][access#ifencrypted] +**See also:** [`protocol_version`][Components#protocol_version], [`allowtlsversion`][cf-serverd#allowtlsversion], [`allowciphers`][cf-serverd#allowciphers], [`tls_min_version`][Components#tls_min_version], [`tls_ciphers`][Components#tls_ciphers], [`encrypt`][files#encrypt], [`logencryptedtransfers`][cf-serverd#logencryptedtransfers], [`ifencrypted`][access#ifencrypted] ### report_data_select diff --git a/reference/promise-types/files.markdown b/reference/promise-types/files.markdown index ce4da4ee4..b6e6f7a8a 100644 --- a/reference/promise-types/files.markdown +++ b/reference/promise-types/files.markdown @@ -929,7 +929,7 @@ for the client and server hosts. **Note:** When used with `protocol_version` 2 or greater this attribute is a noop as the entire session is encrypted. -**See also:** [`protocol_version`][Components and Common Control#protocol_version], [`ifencrypted`][access#ifencrypted], [`protocol_version`][Components and Common Control#protocol_version], [`tls_ciphers`][Components and Common Control#tls_ciphers], [`tls_min_version`][Components and Common Control#tls_min_version], [`allowciphers`][cf-serverd#allowciphers], [`allowtlsversion`][cf-serverd#allowtlsversion] +**See also:** [`protocol_version`][Components#protocol_version], [`ifencrypted`][access#ifencrypted], [`protocol_version`][Components#protocol_version], [`tls_ciphers`][Components#tls_ciphers], [`tls_min_version`][Components#tls_min_version], [`allowciphers`][cf-serverd#allowciphers], [`allowtlsversion`][cf-serverd#allowtlsversion] #### check_root @@ -1209,7 +1209,7 @@ copy operation. **Note:** The value here will override the setting from [`body common control`][body common]. -**See also:** [`protocol_version`][Components and Common Control#protocol_version] in +**See also:** [`protocol_version`][Components#protocol_version] in [`body common`][body common], `allowlegacyconnects` **History:** Introduced in CFEngine 3.6.0 diff --git a/reference/promise-types/packages.markdown b/reference/promise-types/packages.markdown index 864f18da9..135685e8d 100644 --- a/reference/promise-types/packages.markdown +++ b/reference/promise-types/packages.markdown @@ -36,7 +36,7 @@ the local filesystem, like this: ``` The default package module can be globally specified with the -[`package_module`][Components and Common Control#package_module] attribute +[`package_module`][Components#package_module] attribute in body common control. Note that if your `policy` attribute specifies "absent", then the promiser @@ -201,7 +201,7 @@ ensure the latest available version from a repository is installed. The package module body you wish to use for the package promise. The default is platform dependent, see -[`package_module`][Components and Common Control#package_module] in Components +[`package_module`][Components#package_module] in Components and Common Control. The name of the body is expected to be the same as the name of the package module inside `/var/cfengine/modules/packages`. diff --git a/reference/special-variables/connection.markdown b/reference/special-variables/connection.markdown index 218d6ae3f..c875e9f47 100644 --- a/reference/special-variables/connection.markdown +++ b/reference/special-variables/connection.markdown @@ -19,7 +19,7 @@ access: literal strings within the `promiser` and admit/deny lists of `access` promise types; they cannot be passed into functions or stored in other variables. These variables can only be used with incoming connections that use -[`protocol_version`][Components and Common Control#protocol_version] >=2 ( or "latest" ). +[`protocol_version`][Components#protocol_version] >=2 ( or "latest" ). ### connection.key