Re: Could not load requested further augments from file

"'Nick Anderson' via help-cfengine" <[email protected]> Mon, 19 Aug 2024 15:50:31 -0500
Newsgroups gmane.comp.sysutils.cfengine.general
Message-ID <CAE46pPuz03aLLwzfWT89ov_eBcB=A45pE3tJFJTGXiwsXcGrCw@mail.gmail.com>
Ah great, glad you got it sorted.

> Typo in host_specific.json.  Turns out cfe doesn't recognize
host_specfic.json.

Classic kind of typo I would make.
This should be visible in verbose outputs (if you don't miss it with all
the other logging).

 verbose: No host-specific JSON data available at
'/var/cfengine/data/host_specific.json'


On Mon, Aug 19, 2024 at 3:46 PM Beto <[email protected]> wrote:

> So, there were two issues:
>
>
>    1. AVCs on an augments file in /srv that selinux was blocking access
>    to.
>    2. Typo in host_specific.json.  Turns out cfe doesn't recognize
>    host_specfic.json.
>
>
> Rather than fiddling with selinux contexts  I moved the augments file in
> /srv to host_specific.json and updated def.json to use the variables from
> host_specific.json.
>
> Thank you all for your help.
> On Monday, August 19, 2024 at 8:15:52 AM UTC-5 [email protected]
> wrote:
>
>> Yes, I introduced the idea that the docs are "imprecise" because I got
>> lucky enough to choose the ONE non-sys variable which is available in
>> augments for expansion: def.jq which is the only non-sys non-const variable
>> which is defined in the agent aka C-code as can be seen with this command
>> to show all variables and filter out sys and const variables:
>>
>> $ cf-promises --show-vars | grep "source=agent" | grep -v sys | grep -v
>> const default:def.jq jq --compact-output --monochrome-output --ascii-output
>> --unbuffered --sort-keys invocation,source=agent,command_name=jq
>>
>> So as Vrata mentioned, you are likely running into an SELinux issue.
>>
>> -Craig
>>
>> On Monday, August 19, 2024 at 1:12:25 AM UTC-5 [email protected]
>> wrote:
>>
>>> Hello,
>>>
>>> On Fri, 2024-08-16 at 14:06 -0700, Beto wrote:
>>> > Weird thing is this occurs ONLY on RHEL8, not on RHEL7 and  this same
>>> augments configuration has been in use for years.
>>> That suggests the difference is most likely SELinux. Does it happen even
>>> if you
>>> do a manual agent run from an interactive shell with `cf-agent -KI`? If
>>> not,
>>> please double-check `ausearch -m AVC` on an affected system.
>>>
>>> Another alternative is to run `strace -ff -- cf-agent -KI 2>
>>> cf-agent.strace`,
>>> look for the particular file name in the trace and see what happens when
>>> the
>>> file is attempted to be opened and read.
>>>
>>> >
>>> > I thought maybe I could use host_specific.json to get around this
>>> issue but I can't tell that host_specific.json is being seen at all (as you
>>> say the doc is "imprecise").
>>> What do you think is imprecise in the docs? I think it's quite clear:
>>>
>>> There are two canonical augments files, host_specific.json, and def.json
>>> which may load additional Augments as specified by the augments key.
>>>
>>> Notes:
>>> CFEngine variables are not expanded unless otherwise noted.
>>>
>>> and then there is a note for the def.json file:
>>>
>>> sys variables are expanded in def.json and all subsequently loaded
>>> augments
>>> as specified by the augments key.
>>>
>>> You can do a verbose agent run using `--verbose` to see details of what
>>> it is doing
>>> and which files it is loading.
>>>
>>> One thing is quite clear -- the error message that further augments
>>> could not be
>>> loaded should be enhanced to explain why.
>>>
>>> --
>>> Vratislav
>>>
>>> >
>>> > On Friday, August 16, 2024 at 4:00:51 PM UTC-5 Beto wrote:
>>> > > There are no selinux AVCs logged.
>>> > >
>>> > > On Friday, August 16, 2024 at 3:42:41 PM UTC-5
>>> [email protected] wrote:
>>> > > > Def.jq might itself be special what about def.foo?
>>> > > >
>>> > > > On Fri, Aug 16, 2024, 3:10 PM '[email protected]' via
>>> help-cfengine <[email protected]> wrote:
>>> > > > > The docs might be a bit imprecise.
>>> https://docs.cfengine.com/docs/3.24/reference-language-concepts-augments.html
>>> says in two separate notes:
>>> > > > >
>>> > > > >  * CFEngine variables are not expanded unless otherwise noted.
>>> > > > >  * sys variables are expanded in def.json and all subsequently
>>> loaded augments as specified by the augments key.
>>> > > > > ---
>>> > > > >
>>> > > > > I did a little test and it does seem your def.network and sys
>>> variables should both be expanded so I wonder if it is an access or selinux
>>> issue?
>>> > > > >
>>> > > > > Maybe check /var/log/audit/audit.log for cf-serverd related
>>> entries?
>>> > > > >
>>> > > > > ---
>>> > > > >
>>> > > > > My test:
>>> > > > > $ cat def.json
>>> > > > > {
>>> > > > >   "vars": {
>>> > > > >     "foo": "${def.jq}",
>>> > > > >     "bar": "baz"
>>> > > > >   }
>>> > > > > }
>>> > > > >
>>> > > > > $ cat t.cf
>>> > > > > bundle agent main
>>> > > > > {
>>> > > > >   reports:
>>> > > > >  "foo is ${default:def.foo}";
>>> > > > >  "bar is ${default:def.bar}";
>>> > > > >  "def.jq is ${def.jq}";
>>> > > > > }
>>> > > > >
>>> > > > > result:
>>> > > > > R: foo is jq --compact-output --monochrome-output --ascii-output
>>> --unbuffered --sort-keys
>>> > > > > R: bar is baz
>>> > > > > R: def.jq is jq --compact-output --monochrome-output
>>> --ascii-output --unbuffered --sort-keys
>>> > > > > On Friday, August 16, 2024 at 2:57:53 PM UTC-5 Nick Anderson
>>> wrote:
>>> > > > > > I dont think you can use non sys variables in augments like
>>> that becuase augmwnts is loaded before policy is read at all. Check the
>>> augments docs (i can't atm, on the move).
>>> > > > > >
>>> > > > > > On Fri, Aug 16, 2024, 1:43 PM Beto <[email protected]> wrote:
>>> > > > > > > As we upgrade from RHEL7 to RHEL8 I'm seeing this in
>>> /var/log/messages:
>>> > > > > > >
>>> > > > > > > Aug 16 12:54:06 zombie cf-serverd[1921]: CFEngine(server)
>>>  Rereading policy file '/var/cfengine/inputs/promises.cf'
>>> > > > > > > Aug 16 12:54:06 zombie cf-serverd[1921]:   error: Could not
>>> load requested further augments from file '/srv/sysadmin/etc/
>>> > > > > > > cfengine/augments.json'
>>> > > > > > > Aug 16 12:54:06 zombie cf-serverd[1921]:   error: Could not
>>> load requested further augments from file '$(sys.inputdir)/au
>>> > > > > > > gments/augments_$(def.network).json'
>>> > > > > > > Aug 16 12:54:06 zombie cf-serverd[1921]: CFEngine(server)
>>>  Could not load requested further augments from file '/srv/sysa
>>> > > > > > > dmin/etc/cfengine/augments.json'
>>> > > > > > > Aug 16 12:54:06 zombie cf-serverd[1921]: CFEngine(server)
>>>  Could not load requested further augments from file '$(sys.inp
>>> > > > > > > utdir)/augments/augments_$(def.network).json'
>>> > > > > > >
>>> > > > > > > Not seeing this on RHEL7.
>>> > > > > > >
>>> > > > > > > CFEngine Core 3.24.0
>>> > > > > > > CFEngine Enterprise 3.24.0
>>> > > > > > >
>>> > > > > > > Any ideas?
>>> > > > > > > --
>>> > > > > > > You received this message because you are subscribed to the
>>> Google Groups "help-cfengine" group.
>>> > > > > > > To unsubscribe from this group and stop receiving emails
>>> from it, send an email to [email protected].
>>> > > > > > > To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/help-cfengine/857f33e7-4ac3-45f1-8b90-234de4c98bc8n%40googlegroups.com.
>>>
>>>
>>> --
> You received this message because you are subscribed to the Google Groups
> "help-cfengine" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/help-cfengine/4035b131-5b0f-438b-97bb-6a01b58cf6ean%40googlegroups.com
> <https://groups.google.com/d/msgid/help-cfengine/4035b131-5b0f-438b-97bb-6a01b58cf6ean%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups "help-cfengine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion on the web visit https://groups.google.com/d/msgid/help-cfengine/CAE46pPuz03aLLwzfWT89ov_eBcB%3DA45pE3tJFJTGXiwsXcGrCw%40mail.gmail.com.