Difference between revisions of "CFEngine"
Line 4: | Line 4: | ||
* The CFEngine Roadshow |
* The CFEngine Roadshow |
||
* Data |
* Data |
||
+ | Role profiles are the latest devlopment which aims at reducing redundancy of code and efficient provisioning of policies.<br /><br /> |
||
The CFEngine Roadshow is a complete and comprehensive set of CFEngine3 example policies.<br /> |
The CFEngine Roadshow is a complete and comprehensive set of CFEngine3 example policies.<br /> |
||
In the CFEngine Roadshow every host has a purpose in life, the role, independent from the platform and the environment it lives in. A role is a logical declaration of a use case. The entire process of self configuration as an autonomous voluntary is agent is carried out along the definition of the role. The role uses CFEngine's hard classes to connect to the implementing policies. The CFEngine Roadshow allows the agents to exchange messages that contain configuration data, delivered by Data.<br/><br/> |
In the CFEngine Roadshow every host has a purpose in life, the role, independent from the platform and the environment it lives in. A role is a logical declaration of a use case. The entire process of self configuration as an autonomous voluntary is agent is carried out along the definition of the role. The role uses CFEngine's hard classes to connect to the implementing policies. The CFEngine Roadshow allows the agents to exchange messages that contain configuration data, delivered by Data.<br/><br/> |
Revision as of 19:43, 10 July 2025
CFEngine has evolved over the decades and so have to policies built with the CFEngine DSL. Some people have a straight forward approach, while others seek to use the DSL to build abstract and generic policies. The Webhuis CFEngine policy set is an example of the latter, From Cfengine2 onwards the focus always has been on using the available system variables to decide which policies have to be available to the agent. Role based development has always been at the heart and center of the organisation of the policy sets.
Main lines of development are:
- Role profiles for Roles
- The CFEngine Roadshow
- Data
Role profiles are the latest devlopment which aims at reducing redundancy of code and efficient provisioning of policies.
The CFEngine Roadshow is a complete and comprehensive set of CFEngine3 example policies.
In the CFEngine Roadshow every host has a purpose in life, the role, independent from the platform and the environment it lives in. A role is a logical declaration of a use case. The entire process of self configuration as an autonomous voluntary is agent is carried out along the definition of the role. The role uses CFEngine's hard classes to connect to the implementing policies. The CFEngine Roadshow allows the agents to exchange messages that contain configuration data, delivered by Data.
Data has an important share in the configuration process because it provides the agent, through role_views, with all the external data it needs along the lines of its role. Data retrieves the information from a PostgreSQL backend. The Data database is specifically designed to provide those role_views to the agents.
- Policy setup and structure
- The CFEngine Roadshow
- Dynamic CFEngine3
- Dynamic Cfengine2
- Cfengine3 Messaging
- Data
- CFEngine3
Messaging and Data
Convergence is one of the key concepts of CFEngine and The CFEngine Roadshow is designed to convergently work towards the desired state.
ZMQ
The CFEngine Roadshow is able to apply a light weight broker less messaging system, ZeroMQ, because the information from the agent will eventually arrive. So far the Data use case only applies Asynchronous Request/Response.
Other agent in other roles are free to implement their own message exchange systems.
Data
The REQ message arrives at Data in a JSON format and Data stores the message in the feeds schema in the database, for processing, using the JSONB data type. JSON stands for JavaScript Object Notation, JSONB stands for JSON Binary.
Data runs a Python3 Object Oriented application. Data responds with a tailor made response with all the external data the host needs to configure itself.
Data delivers the data in a leveled structure:
- host
- domain
- role
- host_role
- domain_role
Useful links
- GitHub: https://github.com/Webhuis/CFEngine-Roadshow/tree/master/
- JSONB: https://tembo.io/docs/postgres_guides/postgres-basics/jsonb/
Terug naar: Voorpagina