vagrant/plugins/provisioners/cfengine/cap/linux/cfengine_needs_bootstrap.rb
Chris Roberts ea25996b21
Update Vagrant behavior outside of installers
Remove customized require behaviors and modify the bin executable
to check for missing tools that Vagrant expects to exist when
running outside of an installer.
2025-04-02 11:40:17 -07:00

37 lines
1.3 KiB
Ruby

# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: BUSL-1.1
require "log4r"
module VagrantPlugins
module CFEngine
module Cap
module Linux
module CFEngineNeedsBootstrap
def self.cfengine_needs_bootstrap(machine, config)
logger = Log4r::Logger.new("vagrant::plugins::cfengine::cap_linux_cfengine_bootstrap")
machine.communicate.tap do |comm|
# We hardcode fixing the permissions on /var/cfengine/ppkeys/, if it exists,
# because otherwise CFEngine will fail to bootstrap.
if comm.test("test -d /var/cfengine/ppkeys", sudo: true)
logger.debug("Fixing permissions on /var/cfengine/ppkeys")
comm.sudo("chmod -R 600 /var/cfengine/ppkeys")
end
logger.debug("Checking if CFEngine is bootstrapped...")
bootstrapped = comm.test("test -f /var/cfengine/policy_server.dat", sudo: true)
if bootstrapped && !config.force_bootstrap
logger.info("CFEngine already bootstrapped, no need to do it again")
return false
end
logger.info("CFEngine needs bootstrap.")
return true
end
end
end
end
end
end
end