Re: Bootstrap in chroot

Markus Rexhepi-Lindberg <[email protected]> Wed, 22 May 2024 04:38:09 -0700 (PDT)
Newsgroups gmane.comp.sysutils.cfengine.general
Message-ID <[email protected]>
It seems that the bootstrap fails AFAIK. For instance the 
`/var/cfengine/policy_server.dat` file does not get provisioned.

I first run a bootstrap as I otherwise can't start cf-execd.

Starting cf-execd without running a bootstrap first.
```
# cf-execd
   error: There is no readable input file at 
'/var/cfengine/inputs/promises.cf'. (stat: No such file or directory)
   error: Failsafe condition triggered. Interactive session detected, 
skipping failsafe.cf execution.
   error: Error reading CFEngine policy. Exiting...
```

Running a boostrap and then starting cf-execd.
```
# cf-agent -B <redacted>
  notice: Bootstrap mode: implicitly trusting server, use --trust-server=no 
if server trust is already established
  notice: Trusting new key: MD5=<redacted>
R: Bootstrapping from host '<redacted>' via built-in policy 
'/var/cfengine/inputs/failsafe.cf'
R: This autonomous node assumes the role of voluntary client
R: Updated local policy from policy server
R: Triggered an initial run of the policy
R: Restarted systemd unit cfengine3
   error: Bootstrapping failed, cf-execd is not running
# cf-execd
#
```

After I have done this I attempt to run the policies.
```
# cf-agent -KIC
...
error: No suitable server found for '/var/cfengine/scripts/'
...
```
I get errors suggesting that there is not suitable server to be found/used. 
The policies them self seem to run fine though.

If I run a bootstrap again as the last step.
```
# cf-agent -B <redacted>
  notice: Bootstrap mode: implicitly trusting server, use --trust-server=no 
if server trust is already established
R: Bootstrapping from host '<redacted>' via built-in policy 
'/var/cfengine/inputs/failsafe.cf'
R: This autonomous node assumes the role of voluntary client
R: Updated local policy from policy server
R: Triggered an initial run of the policy
  notice: Bootstrap to '<redacted>' completed successfully!
# ls -l /var/cfengine/policy_server.dat
-rw------- 1 root root 26 May 22 13:35 /var/cfengine/policy_server.dat
```
It goes through and the `/var/cfengine/policy_server.dat` file gets 
provisioned and I do not get "No suitable server ..." errors when running 
`cf-agent`.

--
Markus
On Wednesday, May 22, 2024 at 12:50:51 PM UTC+2 [email protected] 
wrote:

> Hi Markus,
>
> On Mon, 2024-05-20 at 02:58 -0700, Markus Rexhepi-Lindberg wrote:
> > Is it possible to bootstrap a host running in a chroot?
> > 
> > I want to bootstrap a host during its provisioning stage were it 
> currently runs in a chroot environment. While bootstrapping cf-agent 
> complains that the cf-execd daemon is not running, which seems to be the 
> case since cfengine3.service is not allowed to start in a chroot 
> environment.
> > 
> > ```
> > # chroot /target cf-agent -B <cfehub>
> >  notice: Bootstrap mode: implicitly trusting server, use 
> --trust-server=no if server trust is already established
> >    notice: Trusting new key: MD5=<redacted>
> >  R: Bootstrapping from host '<redacted>' via built-in policy 
> '/var/cfengine/inputs/failsafe.cf'
> >  R: This autonomous node assumes the role of voluntary client
> >  R: Updated local policy from policy server
> >  R: Triggered an initial run of the policy
> >  R: Restarted systemd unit cfengine3
> >     error: Bootstrapping failed, cf-execd is not running
> >    notice: Bootstrap mode: implicitly trusting server, use 
> --trust-server=no if server trust is already established
> > ```
> > 
> > I managed to workaround this by first trying to bootstrap, which fails, 
> then manually start cf-execd in the chroot and finally try to bootstrap 
> again which succeeds.
> > 
> > ```
> > # chroot /traget cf-execd
> > # chroot /target cf-agent -B <cfehub>
> > R: Bootstrapping from host '<redacted>' via built-in policy 
> '/var/cfengine/inputs/failsafe.cf'
> > R: This autonomous node assumes the role of voluntary client
> > R: Updated local policy from policy server
> > R: Triggered an initial run of the policy
> >   notice: Bootstrap to '<redacted>' completed successfully!
> > ```
> > 
> > This works but feels like a hack. Is there another way this could be 
> done?
> Did you check if the second run is necessary? AFAICT, the error about 
> cf-execd
> not running is a valid one, but it doesn't mean that the rest of the 
> bootstrap
> process didn't run or failed. I'd expect the host to be bootstrapped just 
> fine
> just with the daemons (cf-execd, cf-serverd, cf-monitord) not running. So I
> think you can skip the last step, but you should start the other two 
> daemons in
> the chroot as well.
>
> --
> Vratislav
>

-- 
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/0a378e7e-d113-42f1-8674-0efdc1e5731en%40googlegroups.com.