A license is an authorization to use a commercial edition of the CFEngine software. It consists of a single file, generated by CFEngine AS headquarters in Norway. The file enables the CFEngine software to track authorizations of commercial editions, e.g. CFEngine Nova or CFEngine Constellation.
Commercial versions of the CFEngine software that are not authorized revert to behaving just like the open community editions. This allows them to function in a limited capacity to assist you in deploying licenses or upgrading licenses.
The extra facilities provided by commercial editions of CFEngine are subscription based, and must be paid for. License files enable these extra features for commercial editions.
No. In our experience, license servers have few redeeming features. It is CFEngine's policy that CFEngine should make computer administration simpler, not more difficult. Our licenses serve two purposes:
To obtain a commercial license from CFEngine, you must first have signed a contract (purchase order) with the Company or one of its partners. This entitles you to run a limited number of licensed instances of the CFEngine software. You may not mix different editions of CFEngine software, and the license is for whatever version you have paid for.
Once a purchase has been made, you must send CFEngine Support a copy of the public key file belonging to each host you wish to be a CFEngine policy server, along with an estimate of the maximum number of clients that is expected to use each server. The maximum number of licenses is fixed by the contract.
Create a license request on http://ticket.CFEngine.com with the public key as an attachment. |
The public key file lies in the CFEngine working directory, e.g.
policyhost# ls /var/cfengine/ppkeys/localhost.pub
To generate such a public key you must use some edition of the CFEngine software (either the Community Edition, or an unlicensed version of a commercial product from a pilot demo. etc). You generate key pair by running this command:
host# cf-key |
If you have been through a pilot process, or if you have used the Community Edition of CFEngine, you will already have this file. You must then send the file
localhost.pub
for
each host.
Your policy server is the single point of change for CFEngine management. It is the server host on which all policy changes are deployed, and it also doubles as a knowledge aggregator and a license tracker. This host should be able to exchange data with every instance running CFEngine at some time.
For some organizations, a single policy server is enough. More complex environments, that are distributed geographically or have intermittent communications, such as
When you receive the license file from us, you must install it on every host. The simplest way to do this is to install CFEngine on the policy server(s) first and install it there. Install the file in the /var/cfengine/masterfiles directory of the policy server(s), e.g.
mkdir -p /var/cfengine/masterfiles cp license.dat /var/cfengine/masterfiles |
Now, when you bootstrap each client, the license will follow automatically. The license.dat file should ultimately end up in the /var/cfengine/inputs (or Windows equivalent) directory on each host to enable the license.
To summarize, a complete license for each client host consists of
host# cf-agent --bootstrap --policy-server 123.456.789.123 |
If for some reason your hosts are permanently off-line, or cannot authorize at the time of installation, you will need to copy these files manually, off line.
As long as these files are present, CFEngine does not care whether hosts are on- or off-line.
You need to do one more thing in the CFEngine configuration. You must make a promise about the number of CFEngine instances you can paid for. This is a confirmation from you that documents in reports what you claim to have paid for
body common control { bundlesequence => { "update", "garbage_collection", "change_management", #... }; inputs => { "CFEngine.cf", "CFEngine_stdlib.cf", }; version => "1.2.3"; host_licenses_paid => "100"; }
You should make this promise both in promises.cf and failsafe.cf.
CFEngine keeps the number of licenses purchased for your edition on file, and asks you to report how many instances you are running at regular intervals for accounting purposes. This report can be generated from each CFEngine policy server itself.