Masterfiles Policy Framework upgrade
Introduction
Upgrading the Masterfiles Policy Framework (MPF) is an optional but highly recommended first step when upgrading CFEngine.
Upgrading the MPF is not an exact process as the details highly depend on the
specifics of the changes made to the default policy. This tutorial leverages
git
and shows an example of upgrading a simple policy set based on 3.6.7 to
3.7.4 and can be used as a reference for upgrading your own policy sets.
Prepare a Git clone of your working masterfiles
If you are not using Git and instead editing directly in
$(sys.workdir/masterfiles)
you can simply copy your masterfiles into a new
directory and initalize a new Git repository.
If you're using Git already simply clone your repository and skip to the next step.
[root@hub MPF_upgrade]# rsync -a /var/cfengine/masterfiles/ MPF_upgrade/
Then initialize the new Git repository and add all the files to it.
[root@hub ~]# cd MPF_upgrade/
[root@hub MPF_upgrade]# git init
Initialized empty Git repository in /root/MPF_upgrade/.git/
[root@hub MPF_upgrade]# git add -A
[root@hub MPF_upgrade]# git commit -m "Before Upgrade"
[master (root-commit) 108c210] Before Upgrade
78 files changed, 19980 insertions(+)
create mode 100644 CUSTOM/policy1.cf
create mode 100644 cf_promises_release_id
create mode 100644 cf_promises_validated
create mode 100644 cfe_internal/CFE_cfengine.cf
create mode 100644 cfe_internal/CFE_hub_specific.cf
create mode 100644 cfe_internal/CFE_knowledge.cf
create mode 100644 cfe_internal/cfengine_processes.cf
create mode 100644 cfe_internal/ha/ha.cf
create mode 100644 cfe_internal/ha/ha_def.cf
create mode 100644 cfe_internal/host_info_report.cf
create mode 100644 controls/3.4/cf_serverd.cf
create mode 100644 controls/cf_agent.cf
create mode 100644 controls/cf_execd.cf
create mode 100644 controls/cf_hub.cf
create mode 100644 controls/cf_monitord.cf
create mode 100644 controls/cf_runagent.cf
create mode 100644 controls/cf_serverd.cf
create mode 100644 def.cf
create mode 100644 inventory/any.cf
create mode 100644 inventory/debian.cf
create mode 100644 inventory/generic.cf
create mode 100644 inventory/linux.cf
create mode 100644 inventory/lsb.cf
create mode 100644 inventory/macos.cf
create mode 100644 inventory/os.cf
create mode 100644 inventory/redhat.cf
create mode 100644 inventory/suse.cf
create mode 100644 inventory/windows.cf
create mode 100644 lib/3.5/bundles.cf
create mode 100644 lib/3.5/cfe_internal.cf
create mode 100644 lib/3.5/commands.cf
create mode 100644 lib/3.5/common.cf
create mode 100644 lib/3.5/databases.cf
create mode 100644 lib/3.5/feature.cf
create mode 100644 lib/3.5/files.cf
create mode 100644 lib/3.5/guest_environments.cf
create mode 100644 lib/3.5/monitor.cf
create mode 100644 lib/3.5/packages.cf
create mode 100644 lib/3.5/paths.cf
create mode 100644 lib/3.5/processes.cf
create mode 100644 lib/3.5/reports.cf
create mode 100644 lib/3.5/services.cf
create mode 100644 lib/3.5/storage.cf
create mode 100644 lib/3.6/bundles.cf
create mode 100644 lib/3.6/cfe_internal.cf
create mode 100644 lib/3.6/cfengine_enterprise_hub_ha.cf
create mode 100644 lib/3.6/commands.cf
create mode 100644 lib/3.6/common.cf
create mode 100644 lib/3.6/databases.cf
create mode 100644 lib/3.6/edit_xml.cf
create mode 100644 lib/3.6/examples.cf
create mode 100644 lib/3.6/feature.cf
create mode 100644 lib/3.6/files.cf
create mode 100644 lib/3.6/guest_environments.cf
create mode 100644 lib/3.6/monitor.cf
create mode 100644 lib/3.6/packages.cf
create mode 100644 lib/3.6/paths.cf
create mode 100644 lib/3.6/processes.cf
create mode 100644 lib/3.6/reports.cf
create mode 100644 lib/3.6/services.cf
create mode 100644 lib/3.6/stdlib.cf
create mode 100644 lib/3.6/storage.cf
create mode 100644 lib/3.6/users.cf
create mode 100644 lib/3.6/vcs.cf
create mode 100644 promises.cf
create mode 100644 services/autorun.cf
create mode 100644 services/autorun/custom_policy2.cf
create mode 100644 services/autorun/hello.cf
create mode 100644 services/file_change.cf
create mode 100644 sketches/meta/api-runfile.cf
create mode 100644 templates/host_info_report.mustache
create mode 100644 update.cf
create mode 100644 update/cfe_internal_dc_workflow.cf
create mode 100644 update/cfe_internal_local_git_remote.cf
create mode 100644 update/cfe_internal_update_from_repository.cf
create mode 100644 update/update_bins.cf
create mode 100644 update/update_policy.cf
create mode 100644 update/update_processes.cf
[root@hub MPF_upgrade]# git status
# On branch master
nothing to commit, working directory clean
Now we have a Git repository that we can start merging in the changes from upstream.
Merge the upstream changes to the MPF into your policy
Remove everything except the .git directory.
By first removing everything we will easily be able so see which files are new, changed, moved or removed upstream.
[root@hub MPF_upgrade]# rm -rf *
[root@hub MPF_upgrade]# git status
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: CUSTOM/policy1.cf
deleted: cf_promises_release_id
deleted: cf_promises_validated
deleted: cfe_internal/CFE_cfengine.cf
deleted: cfe_internal/CFE_hub_specific.cf
deleted: cfe_internal/CFE_knowledge.cf
deleted: cfe_internal/cfengine_processes.cf
deleted: cfe_internal/ha/ha.cf
deleted: cfe_internal/ha/ha_def.cf
deleted: cfe_internal/host_info_report.cf
deleted: controls/3.4/cf_serverd.cf
deleted: controls/cf_agent.cf
deleted: controls/cf_execd.cf
deleted: controls/cf_hub.cf
deleted: controls/cf_monitord.cf
deleted: controls/cf_runagent.cf
deleted: controls/cf_serverd.cf
deleted: def.cf
deleted: inventory/any.cf
deleted: inventory/debian.cf
deleted: inventory/generic.cf
deleted: inventory/linux.cf
deleted: inventory/lsb.cf
deleted: inventory/macos.cf
deleted: inventory/os.cf
deleted: inventory/redhat.cf
deleted: inventory/suse.cf
deleted: inventory/windows.cf
deleted: lib/3.5/bundles.cf
deleted: lib/3.5/cfe_internal.cf
deleted: lib/3.5/commands.cf
deleted: lib/3.5/common.cf
deleted: lib/3.5/databases.cf
deleted: lib/3.5/feature.cf
deleted: lib/3.5/files.cf
deleted: lib/3.5/guest_environments.cf
deleted: lib/3.5/monitor.cf
deleted: lib/3.5/packages.cf
deleted: lib/3.5/paths.cf
deleted: lib/3.5/processes.cf
deleted: lib/3.5/reports.cf
deleted: lib/3.5/services.cf
deleted: lib/3.5/storage.cf
deleted: lib/3.6/bundles.cf
deleted: lib/3.6/cfe_internal.cf
deleted: lib/3.6/cfengine_enterprise_hub_ha.cf
deleted: lib/3.6/commands.cf
deleted: lib/3.6/common.cf
deleted: lib/3.6/databases.cf
deleted: lib/3.6/edit_xml.cf
deleted: lib/3.6/examples.cf
deleted: lib/3.6/feature.cf
deleted: lib/3.6/files.cf
deleted: lib/3.6/guest_environments.cf
deleted: lib/3.6/monitor.cf
deleted: lib/3.6/packages.cf
deleted: lib/3.6/paths.cf
deleted: lib/3.6/processes.cf
deleted: lib/3.6/reports.cf
deleted: lib/3.6/services.cf
deleted: lib/3.6/stdlib.cf
deleted: lib/3.6/storage.cf
deleted: lib/3.6/users.cf
deleted: lib/3.6/vcs.cf
deleted: promises.cf
deleted: services/autorun.cf
deleted: services/autorun/custom_policy2.cf
deleted: services/autorun/hello.cf
deleted: services/file_change.cf
deleted: sketches/meta/api-runfile.cf
deleted: templates/host_info_report.mustache
deleted: update.cf
deleted: update/cfe_internal_dc_workflow.cf
deleted: update/cfe_internal_local_git_remote.cf
deleted: update/cfe_internal_update_from_repository.cf
deleted: update/update_bins.cf
deleted: update/update_policy.cf
deleted: update/update_processes.cf
no changes added to commit (use "git add" and/or "git commit -a")
Install the new MPF
The MPF can be obtained from
any community package (in
$(sys.workdir)/share/CoreBase/
),
enterprise hub package (in
$(sys.workdir)/share/NovaBase/
),
masterfiles source tarball (requires
./configure
and make install
),
installed masterfiles tarball (ready
for extraction),
or
directly from github.
We will install the MPF from source obtained directly from github.
Note: You will need automake
to install from source.
First clone the masterfiles repository for the version you are installing. And verify you have the correct tag checked out.
Note: Directly checking out a tag as in the example below is only supported in Git versions 1.7.9.5 and newer.
[root@hub MPF_upgrade]# cd ..
[root@hub ~]# git clone -b 3.7.4 https://github.com/cfengine/masterfiles
[root@hub ~]# cd masterfiles
[root@hub ~]# git describe
3.7.4
Note: For systems without python 3 easily available (such as centos 6) you can use the following to get around problems in autogen with 3rdparty/core/determine-version.py, which requires python3.
export EXPLICIT_VERSION=$(git describe)
Now we will install the masterfiles from upstream into the directory where we are doing the integration.
First we build and install masterfiles to a temporary location.
./autogen.sh
[root@hub masterfiles]# ./autogen.sh
configure.ac:31: installing `./config.guess'
configure.ac:31: installing `./config.sub'
configure.ac:34: installing `./install-sh'
configure.ac:34: installing `./missing'
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking how to create a ustar tar archive... gnutar
checking whether to disable maintainer-specific portions of Makefiles... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for a BSD-compatible install... /usr/bin/install -c
Summary of options:
Core directory -> not set - tests are disabled
Enterprise directory -> not set - some tests are disabled
Install prefix -> /var/cfengine
configure: generating makefile targets
configure: creating ./config.status
config.status: creating Makefile
config.status: creating controls/3.5/update_def.cf
config.status: creating controls/3.6/update_def.cf
config.status: creating controls/3.7/update_def.cf
config.status: creating modules/packages/Makefile
config.status: creating promises.cf
config.status: creating tests/acceptance/Makefile
config.status: creating tests/unit/Makefile
DONE: Configuration done. Run "make install" to install CFEngine Masterfiles.
[root@hub masterfiles]# ./configure --prefix /tmp/masterfiles-3.7.4
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking how to create a ustar tar archive... gnutar
checking whether to disable maintainer-specific portions of Makefiles... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for a BSD-compatible install... /usr/bin/install -c
Summary of options:
Core directory -> not set - tests are disabled
Enterprise directory -> not set - some tests are disabled
Install prefix -> /tmp/masterfiles-3.7.4
configure: generating makefile targets
configure: creating ./config.status
config.status: creating Makefile
config.status: creating controls/3.5/update_def.cf
config.status: creating controls/3.6/update_def.cf
config.status: creating controls/3.7/update_def.cf
config.status: creating modules/packages/Makefile
config.status: creating promises.cf
config.status: creating tests/acceptance/Makefile
config.status: creating tests/unit/Makefile
DONE: Configuration done. Run "make install" to install CFEngine Masterfiles.
Then after running make install
we move the installed masterfiles into our
integration directory.
[root@hub masterfiles]# mv /tmp/masterfiles-3.7.4/masterfiles/* ../MPF_upgrade
[root@hub masterfiles]# cd ../MPF_upgrade/
Merge differences
Now we can use git status
to see an overview of the changes to the
repository between our starting point and the new MPF.
[root@hub MPF_upgrade]# git status
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: CUSTOM/policy1.cf
deleted: cf_promises_release_id
deleted: cf_promises_validated
modified: cfe_internal/CFE_cfengine.cf
deleted: cfe_internal/CFE_hub_specific.cf
deleted: cfe_internal/CFE_knowledge.cf
deleted: cfe_internal/cfengine_processes.cf
deleted: cfe_internal/ha/ha.cf
deleted: cfe_internal/ha/ha_def.cf
deleted: cfe_internal/host_info_report.cf
deleted: controls/3.4/cf_serverd.cf
deleted: controls/cf_agent.cf
deleted: controls/cf_execd.cf
deleted: controls/cf_hub.cf
deleted: controls/cf_monitord.cf
deleted: controls/cf_runagent.cf
deleted: controls/cf_serverd.cf
deleted: def.cf
modified: inventory/any.cf
modified: inventory/linux.cf
modified: inventory/lsb.cf
modified: lib/3.5/cfe_internal.cf
modified: lib/3.5/common.cf
modified: lib/3.5/files.cf
modified: lib/3.5/packages.cf
deleted: lib/3.5/reports.cf
modified: lib/3.6/cfe_internal.cf
modified: lib/3.6/common.cf
modified: lib/3.6/files.cf
modified: lib/3.6/packages.cf
deleted: lib/3.6/reports.cf
modified: lib/3.6/services.cf
modified: lib/3.6/stdlib.cf
modified: promises.cf
deleted: services/autorun.cf
deleted: services/autorun/custom_policy2.cf
deleted: services/file_change.cf
modified: sketches/meta/api-runfile.cf
modified: update.cf
deleted: update/cfe_internal_dc_workflow.cf
deleted: update/cfe_internal_local_git_remote.cf
deleted: update/cfe_internal_update_from_repository.cf
deleted: update/update_bins.cf
deleted: update/update_policy.cf
deleted: update/update_processes.cf
Untracked files:
(use "git add <file>..." to include in what will be committed)
cfe_internal/core/
cfe_internal/enterprise/
cfe_internal/update/
controls/3.5/
controls/3.6/
controls/3.7/
inventory/freebsd.cf
lib/3.6/autorun.cf
lib/3.6/cfe_internal_hub.cf
lib/3.7/
services/main.cf
no changes added to commit (use "git add" and/or "git commit -a")
All of the Untracked files are new additions from upstream so they should be safe to take.
[root@hub MPF_upgrade]# git add cfe_internal/core/ \
cfe_internal/enterprise/ \
cfe_internal/update/ \
controls/3.5/ \
controls/3.6/ \
controls/3.7/ \
inventory/freebsd.cf \
lib/3.6/autorun.cf \
lib/3.6/cfe_internal_hub.cf \
lib/3.7/ \
services/main.cf
We can run git status again to see the current overview:
[root@hub MPF_upgrade]# git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: cfe_internal/core/deprecated/cfengine_processes.cf
new file: cfe_internal/core/host_info_report.cf
new file: cfe_internal/core/limit_robot_agents.cf
new file: cfe_internal/core/log_rotation.cf
new file: cfe_internal/core/main.cf
new file: cfe_internal/enterprise/CFE_hub_specific.cf
new file: cfe_internal/enterprise/CFE_knowledge.cf
new file: cfe_internal/enterprise/file_change.cf
new file: cfe_internal/enterprise/ha/ha.cf
new file: cfe_internal/enterprise/ha/ha_def.cf
new file: cfe_internal/enterprise/ha/ha_update.cf
new file: cfe_internal/enterprise/main.cf
new file: cfe_internal/update/cfe_internal_dc_workflow.cf
new file: cfe_internal/update/cfe_internal_local_git_remote.cf
new file: cfe_internal/update/cfe_internal_update_from_repository.cf
new file: cfe_internal/update/update_bins.cf
new file: cfe_internal/update/update_policy.cf
new file: cfe_internal/update/update_processes.cf
new file: controls/3.5/cf_agent.cf
new file: controls/3.5/cf_execd.cf
new file: controls/3.5/cf_hub.cf
new file: controls/3.5/cf_monitord.cf
new file: controls/3.5/cf_runagent.cf
new file: controls/3.5/cf_serverd.cf
new file: controls/3.5/def.cf
new file: controls/3.5/def_inputs.cf
new file: controls/3.5/reports.cf
new file: controls/3.5/update_def.cf
new file: controls/3.5/update_def_inputs.cf
new file: controls/3.6/cf_agent.cf
new file: controls/3.6/cf_execd.cf
new file: controls/3.6/cf_hub.cf
new file: controls/3.6/cf_monitord.cf
new file: controls/3.6/cf_runagent.cf
new file: controls/3.6/cf_serverd.cf
new file: controls/3.6/def.cf
new file: controls/3.6/def_inputs.cf
new file: controls/3.6/reports.cf
new file: controls/3.6/update_def.cf
new file: controls/3.6/update_def_inputs.cf
new file: controls/3.7/cf_agent.cf
new file: controls/3.7/cf_execd.cf
new file: controls/3.7/cf_hub.cf
new file: controls/3.7/cf_monitord.cf
new file: controls/3.7/cf_runagent.cf
new file: controls/3.7/cf_serverd.cf
new file: controls/3.7/def.cf
new file: controls/3.7/def_inputs.cf
new file: controls/3.7/reports.cf
new file: controls/3.7/update_def.cf
new file: controls/3.7/update_def_inputs.cf
new file: inventory/freebsd.cf
new file: lib/3.6/autorun.cf
new file: lib/3.6/cfe_internal_hub.cf
new file: lib/3.7/autorun.cf
new file: lib/3.7/bundles.cf
new file: lib/3.7/cfe_internal.cf
new file: lib/3.7/cfe_internal_hub.cf
new file: lib/3.7/cfengine_enterprise_hub_ha.cf
new file: lib/3.7/commands.cf
new file: lib/3.7/common.cf
new file: lib/3.7/databases.cf
new file: lib/3.7/edit_xml.cf
new file: lib/3.7/examples.cf
new file: lib/3.7/feature.cf
new file: lib/3.7/files.cf
new file: lib/3.7/guest_environments.cf
new file: lib/3.7/monitor.cf
new file: lib/3.7/packages.cf
new file: lib/3.7/paths.cf
new file: lib/3.7/processes.cf
new file: lib/3.7/services.cf
new file: lib/3.7/stdlib.cf
new file: lib/3.7/storage.cf
new file: lib/3.7/users.cf
new file: lib/3.7/vcs.cf
new file: services/main.cf
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: CUSTOM/policy1.cf
deleted: cf_promises_release_id
deleted: cf_promises_validated
modified: cfe_internal/CFE_cfengine.cf
deleted: cfe_internal/CFE_hub_specific.cf
deleted: cfe_internal/CFE_knowledge.cf
deleted: cfe_internal/cfengine_processes.cf
deleted: cfe_internal/ha/ha.cf
deleted: cfe_internal/ha/ha_def.cf
deleted: cfe_internal/host_info_report.cf
deleted: controls/3.4/cf_serverd.cf
deleted: controls/cf_agent.cf
deleted: controls/cf_execd.cf
deleted: controls/cf_hub.cf
deleted: controls/cf_monitord.cf
deleted: controls/cf_runagent.cf
deleted: controls/cf_serverd.cf
deleted: def.cf
modified: inventory/any.cf
modified: inventory/linux.cf
modified: inventory/lsb.cf
modified: lib/3.5/cfe_internal.cf
modified: lib/3.5/common.cf
modified: lib/3.5/files.cf
modified: lib/3.5/packages.cf
deleted: lib/3.5/reports.cf
modified: lib/3.6/cfe_internal.cf
modified: lib/3.6/common.cf
modified: lib/3.6/files.cf
modified: lib/3.6/packages.cf
deleted: lib/3.6/reports.cf
modified: lib/3.6/services.cf
modified: lib/3.6/stdlib.cf
modified: promises.cf
deleted: services/autorun.cf
deleted: services/autorun/custom_policy2.cf
deleted: services/file_change.cf
modified: sketches/meta/api-runfile.cf
modified: update.cf
deleted: update/cfe_internal_dc_workflow.cf
deleted: update/cfe_internal_local_git_remote.cf
deleted: update/cfe_internal_update_from_repository.cf
deleted: update/update_bins.cf
deleted: update/update_policy.cf
deleted: update/update_processes.cf
Next we want to bring back any of our custom policy files. Keeping your
polices organized together helps to make this process easy. The custom policy
files in the example policy set are CUSTOM/policy1.cf
and
services/autorun/custom_policy2.cf
. Restore them with git checkout
.
[root@hub MPF_upgrade] git checkout CUSTOM/policy1.cf services/autorun/custom_policy2.cf
The files marked as modified in the git status
output are files that have
changed upstream.
[root@hub MPF_upgrade]# git status | grep modified
modified: cfe_internal/CFE_cfengine.cf
modified: inventory/any.cf
modified: inventory/linux.cf
modified: inventory/lsb.cf
modified: lib/3.5/cfe_internal.cf
modified: lib/3.5/common.cf
modified: lib/3.5/files.cf
modified: lib/3.5/packages.cf
modified: lib/3.6/cfe_internal.cf
modified: lib/3.6/common.cf
modified: lib/3.6/files.cf
modified: lib/3.6/packages.cf
modified: lib/3.6/services.cf
modified: lib/3.6/stdlib.cf
modified: promises.cf
modified: sketches/meta/api-runfile.cf
modified: update.cf
For any files that you have not modified (like those in lib) simply add them
to gits staging area with git add
. Carefully review and merge or
re-integrate your custom changes on top of the upstream files.
The remaining files in git status
marked as deleted are files that have
been moved or removed from upstream.
NOTE: It is uncommon for any files to be moved or deleted between patch releases (e.g. 3.7.1 -> 3.7.2).
[root@hub MPF_upgrade]# git status | grep deleted
deleted: cf_promises_release_id
deleted: cf_promises_validated
deleted: cfe_internal/CFE_hub_specific.cf
deleted: cfe_internal/CFE_knowledge.cf
deleted: cfe_internal/cfengine_processes.cf
deleted: cfe_internal/ha/ha.cf
deleted: cfe_internal/ha/ha_def.cf
deleted: cfe_internal/host_info_report.cf
deleted: controls/3.4/cf_serverd.cf
deleted: controls/cf_agent.cf
deleted: controls/cf_execd.cf
deleted: controls/cf_hub.cf
deleted: controls/cf_monitord.cf
deleted: controls/cf_runagent.cf
deleted: controls/cf_serverd.cf
deleted: def.cf
deleted: lib/3.5/reports.cf
deleted: lib/3.6/reports.cf
deleted: services/autorun.cf
deleted: services/file_change.cf
deleted: update/cfe_internal_dc_workflow.cf
deleted: update/cfe_internal_local_git_remote.cf
deleted: update/cfe_internal_update_from_repository.cf
deleted: update/update_bins.cf
deleted: update/update_policy.cf
deleted: update/update_processes.cf
It's a good idea to review these files as some of them might have contained
modifications, especially def.cf
and any files under controls
. Always keep
track of the modifications you make to any of the files that ship with the
MPF. Make sure that any necessary customization's to the deleted files are
carried through to their new locations.
Once the files are no longer needed you can git rm
them.
[root@hub MPF_upgrade]# git rm def.cf cf_promises_release_id cf_promises_validated cfe_internal/CFE_hub_specific.cf cfe_internal/CFE_knowledge.cf cfe_internal/cfengine_processes.cf cfe_internal/ha/ha.cf cfe_internal/ha/ha_def.cf cfe_internal/host_info_report.cf controls/3.4/cf_serverd.cf controls/cf_agent.cf controls/cf_execd.cf controls/cf_hub.cf controls/cf_monitord.cf controls/cf_runagent.cf controls/cf_serverd.cf lib/3.5/reports.cf lib/3.6/reports.cf services/autorun.cf services/file_change.cf update/cfe_internal_dc_workflow.cf update/cfe_internal_local_git_remote.cf update/cfe_internal_update_from_repository.cf update/update_bins.cf update/update_policy.cf update/update_processes.cf
rm 'def.cf'
rm 'cf_promises_release_id'
rm 'cf_promises_validated'
rm 'cfe_internal/CFE_hub_specific.cf'
rm 'cfe_internal/CFE_knowledge.cf'
rm 'cfe_internal/cfengine_processes.cf'
rm 'cfe_internal/ha/ha.cf'
rm 'cfe_internal/ha/ha_def.cf'
rm 'cfe_internal/host_info_report.cf'
rm 'controls/3.4/cf_serverd.cf'
rm 'controls/cf_agent.cf'
rm 'controls/cf_execd.cf'
rm 'controls/cf_hub.cf'
rm 'controls/cf_monitord.cf'
rm 'controls/cf_runagent.cf'
rm 'controls/cf_serverd.cf'
rm 'lib/3.5/reports.cf'
rm 'lib/3.6/reports.cf'
rm 'services/autorun.cf'
rm 'services/file_change.cf'
rm 'update/cfe_internal_dc_workflow.cf'
rm 'update/cfe_internal_local_git_remote.cf'
rm 'update/cfe_internal_update_from_repository.cf'
rm 'update/update_bins.cf'
rm 'update/update_policy.cf'
rm 'update/update_processes.cf'
Review git status
and make sure that the policy validates then commit your
changes.
[root@hub MPF_upgrade]# git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: cf_promises_release_id
deleted: cf_promises_validated
modified: cfe_internal/CFE_cfengine.cf
renamed: cfe_internal/cfengine_processes.cf -> cfe_internal/core/deprecated/cfengine_processes.cf
renamed: cfe_internal/host_info_report.cf -> cfe_internal/core/host_info_report.cf
new file: cfe_internal/core/limit_robot_agents.cf
new file: cfe_internal/core/log_rotation.cf
new file: cfe_internal/core/main.cf
renamed: cfe_internal/CFE_hub_specific.cf -> cfe_internal/enterprise/CFE_hub_specific.cf
renamed: cfe_internal/CFE_knowledge.cf -> cfe_internal/enterprise/CFE_knowledge.cf
renamed: services/file_change.cf -> cfe_internal/enterprise/file_change.cf
new file: cfe_internal/enterprise/ha/ha.cf
renamed: cfe_internal/ha/ha_def.cf -> cfe_internal/enterprise/ha/ha_def.cf
new file: cfe_internal/enterprise/ha/ha_update.cf
new file: cfe_internal/enterprise/main.cf
deleted: cfe_internal/ha/ha.cf
renamed: update/cfe_internal_dc_workflow.cf -> cfe_internal/update/cfe_internal_dc_workflow.cf
renamed: update/cfe_internal_local_git_remote.cf -> cfe_internal/update/cfe_internal_local_git_remote.cf
new file: cfe_internal/update/cfe_internal_update_from_repository.cf
renamed: update/update_bins.cf -> cfe_internal/update/update_bins.cf
renamed: update/update_policy.cf -> cfe_internal/update/update_policy.cf
renamed: update/update_processes.cf -> cfe_internal/update/update_processes.cf
deleted: controls/3.4/cf_serverd.cf
renamed: controls/cf_agent.cf -> controls/3.5/cf_agent.cf
new file: controls/3.5/cf_execd.cf
renamed: controls/cf_hub.cf -> controls/3.5/cf_hub.cf
renamed: controls/cf_monitord.cf -> controls/3.5/cf_monitord.cf
renamed: controls/cf_runagent.cf -> controls/3.5/cf_runagent.cf
renamed: controls/cf_serverd.cf -> controls/3.5/cf_serverd.cf
renamed: def.cf -> controls/3.5/def.cf
new file: controls/3.5/def_inputs.cf
renamed: lib/3.5/reports.cf -> controls/3.5/reports.cf
renamed: update.cf -> controls/3.5/update_def.cf
new file: controls/3.5/update_def_inputs.cf
new file: controls/3.6/cf_agent.cf
new file: controls/3.6/cf_execd.cf
new file: controls/3.6/cf_hub.cf
new file: controls/3.6/cf_monitord.cf
new file: controls/3.6/cf_runagent.cf
new file: controls/3.6/cf_serverd.cf
new file: controls/3.6/def.cf
new file: controls/3.6/def_inputs.cf
renamed: lib/3.6/reports.cf -> controls/3.6/reports.cf
new file: controls/3.6/update_def.cf
new file: controls/3.6/update_def_inputs.cf
new file: controls/3.7/cf_agent.cf
new file: controls/3.7/cf_execd.cf
new file: controls/3.7/cf_hub.cf
new file: controls/3.7/cf_monitord.cf
new file: controls/3.7/cf_runagent.cf
new file: controls/3.7/cf_serverd.cf
new file: controls/3.7/def.cf
new file: controls/3.7/def_inputs.cf
new file: controls/3.7/reports.cf
new file: controls/3.7/update_def.cf
new file: controls/3.7/update_def_inputs.cf
deleted: controls/cf_execd.cf
modified: inventory/any.cf
new file: inventory/freebsd.cf
modified: inventory/linux.cf
modified: inventory/lsb.cf
modified: lib/3.5/cfe_internal.cf
modified: lib/3.5/common.cf
modified: lib/3.5/files.cf
modified: lib/3.5/packages.cf
renamed: services/autorun.cf -> lib/3.6/autorun.cf
modified: lib/3.6/cfe_internal.cf
renamed: lib/3.6/cfe_internal.cf -> lib/3.6/cfe_internal_hub.cf
modified: lib/3.6/common.cf
modified: lib/3.6/files.cf
modified: lib/3.6/packages.cf
modified: lib/3.6/services.cf
modified: lib/3.6/stdlib.cf
new file: lib/3.7/autorun.cf
new file: lib/3.7/bundles.cf
new file: lib/3.7/cfe_internal.cf
new file: lib/3.7/cfe_internal_hub.cf
new file: lib/3.7/cfengine_enterprise_hub_ha.cf
new file: lib/3.7/commands.cf
new file: lib/3.7/common.cf
new file: lib/3.7/databases.cf
new file: lib/3.7/edit_xml.cf
new file: lib/3.7/examples.cf
new file: lib/3.7/feature.cf
new file: lib/3.7/files.cf
new file: lib/3.7/guest_environments.cf
new file: lib/3.7/monitor.cf
new file: lib/3.7/packages.cf
new file: lib/3.7/paths.cf
new file: lib/3.7/processes.cf
new file: lib/3.7/services.cf
new file: lib/3.7/stdlib.cf
new file: lib/3.7/storage.cf
new file: lib/3.7/users.cf
new file: lib/3.7/vcs.cf
modified: promises.cf
new file: services/main.cf
modified: sketches/meta/api-runfile.cf
modified: update.cf
deleted: update/cfe_internal_update_from_repository.cf
[root@hub MPF_upgrade]# cf-promises -cf ./promises.cf
[root@hub MPF_upgrade]# cf-promises -cf ./update.cf
[root@hub MPF_upgrade]# git commit -m "After Policy Upgrade"
100 files changed, 12521 insertions(+), 1493 deletions(-)
delete mode 100644 cf_promises_release_id
delete mode 100644 cf_promises_validated
rewrite cfe_internal/CFE_cfengine.cf (88%)
rename cfe_internal/{ => core/deprecated}/cfengine_processes.cf (95%)
rename cfe_internal/{ => core}/host_info_report.cf (98%)
create mode 100644 cfe_internal/core/limit_robot_agents.cf
create mode 100644 cfe_internal/core/log_rotation.cf
create mode 100644 cfe_internal/core/main.cf
rename cfe_internal/{ => enterprise}/CFE_hub_specific.cf (85%)
rename cfe_internal/{ => enterprise}/CFE_knowledge.cf (100%)
rename {services => cfe_internal/enterprise}/file_change.cf (58%)
create mode 100644 cfe_internal/enterprise/ha/ha.cf
rename cfe_internal/{ => enterprise}/ha/ha_def.cf (54%)
create mode 100644 cfe_internal/enterprise/ha/ha_update.cf
create mode 100644 cfe_internal/enterprise/main.cf
delete mode 100644 cfe_internal/ha/ha.cf
rename {update => cfe_internal/update}/cfe_internal_dc_workflow.cf (100%)
rename {update => cfe_internal/update}/cfe_internal_local_git_remote.cf (100%)
create mode 100644 cfe_internal/update/cfe_internal_update_from_repository.cf
rename {update => cfe_internal/update}/update_bins.cf (97%)
rename {update => cfe_internal/update}/update_policy.cf (92%)
rename {update => cfe_internal/update}/update_processes.cf (92%)
delete mode 100644 controls/3.4/cf_serverd.cf
rename controls/{ => 3.5}/cf_agent.cf (80%)
create mode 100644 controls/3.5/cf_execd.cf
rename controls/{ => 3.5}/cf_hub.cf (100%)
rename controls/{ => 3.5}/cf_monitord.cf (100%)
rename controls/{ => 3.5}/cf_runagent.cf (100%)
rename controls/{ => 3.5}/cf_serverd.cf (87%)
rename def.cf => controls/3.5/def.cf (74%)
create mode 100644 controls/3.5/def_inputs.cf
rename {lib => controls}/3.5/reports.cf (80%)
rename update.cf => controls/3.5/update_def.cf (59%)
create mode 100644 controls/3.5/update_def_inputs.cf
create mode 100644 controls/3.6/cf_agent.cf
create mode 100644 controls/3.6/cf_execd.cf
create mode 100644 controls/3.6/cf_hub.cf
create mode 100644 controls/3.6/cf_monitord.cf
create mode 100644 controls/3.6/cf_runagent.cf
create mode 100644 controls/3.6/cf_serverd.cf
create mode 100644 controls/3.6/def.cf
create mode 100644 controls/3.6/def_inputs.cf
rename {lib => controls}/3.6/reports.cf (78%)
create mode 100644 controls/3.6/update_def.cf
create mode 100644 controls/3.6/update_def_inputs.cf
create mode 100644 controls/3.7/cf_agent.cf
create mode 100644 controls/3.7/cf_execd.cf
create mode 100644 controls/3.7/cf_hub.cf
create mode 100644 controls/3.7/cf_monitord.cf
create mode 100644 controls/3.7/cf_runagent.cf
create mode 100644 controls/3.7/cf_serverd.cf
create mode 100644 controls/3.7/def.cf
create mode 100644 controls/3.7/def_inputs.cf
create mode 100644 controls/3.7/reports.cf
create mode 100644 controls/3.7/update_def.cf
create mode 100644 controls/3.7/update_def_inputs.cf
delete mode 100644 controls/cf_execd.cf
create mode 100644 inventory/freebsd.cf
rename {services => lib/3.6}/autorun.cf (50%)
rewrite lib/3.6/cfe_internal.cf (67%)
rename lib/3.6/{cfe_internal.cf => cfe_internal_hub.cf} (77%)
create mode 100644 lib/3.7/autorun.cf
create mode 100644 lib/3.7/bundles.cf
create mode 100644 lib/3.7/cfe_internal.cf
create mode 100644 lib/3.7/cfe_internal_hub.cf
create mode 100644 lib/3.7/cfengine_enterprise_hub_ha.cf
create mode 100644 lib/3.7/commands.cf
create mode 100644 lib/3.7/common.cf
create mode 100644 lib/3.7/databases.cf
create mode 100644 lib/3.7/edit_xml.cf
create mode 100644 lib/3.7/examples.cf
create mode 100644 lib/3.7/feature.cf
create mode 100644 lib/3.7/files.cf
create mode 100644 lib/3.7/guest_environments.cf
create mode 100644 lib/3.7/monitor.cf
create mode 100644 lib/3.7/packages.cf
create mode 100644 lib/3.7/paths.cf
create mode 100644 lib/3.7/processes.cf
create mode 100644 lib/3.7/services.cf
create mode 100644 lib/3.7/stdlib.cf
create mode 100644 lib/3.7/storage.cf
create mode 100644 lib/3.7/users.cf
create mode 100644 lib/3.7/vcs.cf
create mode 100644 services/main.cf
rewrite update.cf (78%)
delete mode 100644 update/cfe_internal_update_from_repository.cf
Now your Masterfiles Policy Framework is upgraded and ready to be tested.