SlideShare a Scribd company logo
1 of 33
Download to read offline
State of the CFEngine
Or Since last time at Cong Management Camp
Nick Anderson
February 26, 2018
Releases
7 releases since 2017-01-01
Version Date
3.7.5 2017-03-30
3.10.1 2017-03-30
3.10.2 2017-08-11
3.11.0 2017-08-11
3.7.6 2017-09-12
3.10.3 2018-02-02
3.7.7 2018-02-02
Contributions
Core MPF Docs
Commits 256 163 207
Contributors 24 14 17
New Contributors 9 4 6
with attribute
bundle agent main
{
vars:
todo slist = { a 1, b 2, c 3 };
# Here, `with` is the canonified version of $(todo), l
# intermediate canonification array.
$(with) string = $(todo), with = canonify($(todo
complex data = '
{
x: 200,
y: [ 1, 2, null, true, false ]
}
';
reports:
with attribute
R: For iterable 'a 1' we created variable 'a_1' and its valu
R: For iterable 'b 2' we created variable 'b_2' and its valu
R: For iterable 'c 3' we created variable 'c_3' and its valu
R: We can print a data container compactly without creating
R: We can print a data container fully without creating a te
x: 200,
y: [
1,
2,
null,
true,
false
]
}
inline_mustache
You are no longer required to use an external le template. Now
you can provide the template directly within the policy.
bundle agent main
{
vars:
d data = '{ hello: world, feature: [ render,
files:
/tmp/example.txt
create = true,
template_method = inline_mustache,
edit_template_string = {{%-top-}},
template_data = @(d);
}
inline_mustache
Results in /tmp/example.txt having this content.
{
feature: [
render,
inline,
mustache
],
hello: world
}
Figure: Example template_method inline_mustache
Multiple augments
NOTE: Current implementation discussion in progress in CFE-2741.
Please consider participating.
{
vars:{
my_var: defined in def.json,
my_other_var: Defined ONLY in def.json
},
augments: [
/tmp/$(sys.flavor).json
]
}
Figure: Example /tmp/def.json
Multiple augments
{
vars: {
my_var: Overridden in centos_6.json,
centos_6_var: Defined ONLY in centos_6.json
}
}
Figure: Example /tmp/centos_6.json
Multiple augments
[root@hub tmp]# cf-agent -KIf ./example.cf
R: def.my_var == Overridden in centos_6.json
R: def.my_other_var == Defined ONLY in def.json
R: def.centos_6_var == Defined ONLY in centos_6.json
missing_ok
Augments - Append the bundlesequnece of promises.cf
and update.cf
control_common_bundlesequence_end
control_common_update_bundlesequence_end
{
vars:{
control_common_bundlesequence_end: [ mybundle1, myb
control_common_update_bundlesequence_end: [ my_update
}
}
Order of bundle actuation not guaranteed.
Agent errors if named bundle is missing.
Augments - Log le retention and rotation limits
mpf_log_files_max_size Max le size before rotation
mpf_log_file_retention Number of le rotations to keep
mpf_log_dir_retention Number of le rotations to keep in
outputs, reports, and the Enterprise application log
directory.
{
vars: {
mpf_log_file_retention: 5,
mpf_log_file_max_size: 10M,
mpf_log_dir_retention: 7
}
}
Augments - Execution schedule
control_executor_schedule Classes that trigger execution of
cf-agent.
{
vars: {
control_executor_schedule: [ Min00, Min30 ]
}
}
Augments - splaytime
control_executor_splaytime Maximum number of minutes
exec_commad should wait before executing.
{
vars: {
control_executor_splaytime: 3
}
}
Augments - allowlegacyconnects
control_server_allowlegacyconnects List of subnets allowed
to connect using legacy protocol (versions prior to
3.7.0).
{
vars: {
control_server_allowlegacyconnects: [ 0.0.0.0/0 ]
}
}
Augments - maxconnections
control_serverd_maxconnections Maximum number of
connections allowed by cf-serverd.
{
vars:{
control_serverd_maxconnections: 1000
}
}
Augments - Client initiated reporting (Enterprise)
control_hub_exclude_hosts List of subnets to exclude from hub
initiated report collection.
client_initiated_reporting_enabled List of classes that if
dened should initiate reporting to an enterprise hub.
control_server_call_collect_interval Number of minutes
between client initiated reporting.
{
vars: {
control_server_call_collect_interval: 1,
control_hub_exclude_hosts: [ 0.0.0.0/0 ]
},
classes {
client_initiated_reporting_enabled: [ any ]
}
}
Augments - files_single_copy
control_agent_files_single_copy List of regular expressions
matching les that should not be copied more than
once.
{
vars:{
control_agent_files_single_copy: [ .* ]
}
}
Augments - default_repository
mpf_control_agent_default_repository List of classes class
will cause these backups to be placed in
$(sys.workdir)/backups.
control_agent_default_backup Directory where backups should
be placed (defaults to $(sys.workdir/backups).
{
classes: {
mpf_control_agent_default_repository: [ any ]
},
vars: {
control_agent_default_repository: /var/cfengine/edit_
}
}
templates shortcut
dir_templates Path to common template directory. Shortcut
provided by cf-serverd as templates/.
{
vars: {
dir_templates: /var/cfengine/mytemplat
}
}
bundle agent example
{
files:
$(def.dir_templates)/mytemplate.mustache - { myservi
copy_from = remote_dcp( templates/mytemplate.mustach
$(sys.policy_server) ),
comment = mytemplate is necessary in order to render
Automatically restart components on related data change
While the agent itsef will reload its cong upon notice of policy
change this bundle specically handles changes to variables used in
the MPF which may come from external data sources which are
unknown to the components themselves.
mpf_augments_control_enabled List of classes that automatic
component restart on related data change should be
enabled for.
{
classes:{
mpf_augments_control_enabled: [ any ]
}
}
Host info report now now renders inventory variables
cf-agent -KIb host_info_report
### Inventory
#### Variables tagged for inventory
{
default:cfe_autorun_inventory_disk.free: 5.00,
default:cfe_autorun_inventory_listening_ports.ports: [
22,
25,
53,
],
default:cfe_autorun_inventory_memory.total: 32050.27,
default:sys.arch: x86_64,
default:sys.cf_version: 3.11.0,
default:sys.class: linux,
default:sys.cpus: 4,
UI responsiveness
Testing with 50,000 host data sets
Global Host Search
Easily nd hosts by name, ip or identity
host count trend widget
mail settings
Exported reports can now be sent as attachments in emails
LDAP settings API
default roles
New OOTB Inventory Attributes
Policy Release Id
AIX OS Level
Inventory API
curl --user admin -X POST 
-H 'content-type: application/json' 
https://hub/api/inventory -d '{ select:[ Host name, O
Figure: Example API Query
Inventory API
{
data: [
{
header: [
{
columnName: Host name,
columnType: STRING
},
{
columnName: OS type,
columnType: STRING
}
],
queryTimeMs: 11,
rowCount: 2,
rows: [
[

More Related Content

What's hot

VPN Access Runbook
VPN Access RunbookVPN Access Runbook
VPN Access RunbookTaha Shakeel
 
Dance for the puppet master: G6 Tech Talk
Dance for the puppet master: G6 Tech TalkDance for the puppet master: G6 Tech Talk
Dance for the puppet master: G6 Tech TalkMichael Peacock
 
Writing Redis in Python with asyncio
Writing Redis in Python with asyncioWriting Redis in Python with asyncio
Writing Redis in Python with asyncioJames Saryerwinnie
 
Powerful and flexible templates with Twig
Powerful and flexible templates with Twig Powerful and flexible templates with Twig
Powerful and flexible templates with Twig Michael Peacock
 
Unit Testing Express Middleware
Unit Testing Express MiddlewareUnit Testing Express Middleware
Unit Testing Express MiddlewareMorris Singer
 
Unit testing powershell
Unit testing powershellUnit testing powershell
Unit testing powershellMatt Wrock
 
Async all around us (promises)
Async all around us (promises)Async all around us (promises)
Async all around us (promises)Francisco Ferreira
 
Testowanie JavaScript
Testowanie JavaScriptTestowanie JavaScript
Testowanie JavaScriptTomasz Bak
 
exportDisabledUsersRemoveMailbox
exportDisabledUsersRemoveMailboxexportDisabledUsersRemoveMailbox
exportDisabledUsersRemoveMailboxDaniel Gilhousen
 
Rntb20200805
Rntb20200805Rntb20200805
Rntb20200805t k
 
Dpilot Source Code With ScreenShots
Dpilot Source Code With ScreenShots Dpilot Source Code With ScreenShots
Dpilot Source Code With ScreenShots DeepAnshu Sharma
 
Source Code for Dpilot
Source Code for Dpilot Source Code for Dpilot
Source Code for Dpilot Nidhi Chauhan
 
Power shell examples_v4
Power shell examples_v4Power shell examples_v4
Power shell examples_v4JoeDinaso
 
Store and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and CassandraStore and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and CassandraDeependra Ariyadewa
 
Spring data ii
Spring data iiSpring data ii
Spring data ii명철 강
 

What's hot (20)

8. Move in Laravel
8. Move in Laravel8. Move in Laravel
8. Move in Laravel
 
VPN Access Runbook
VPN Access RunbookVPN Access Runbook
VPN Access Runbook
 
7. Lower upper in Laravel
7. Lower upper in Laravel7. Lower upper in Laravel
7. Lower upper in Laravel
 
Dance for the puppet master: G6 Tech Talk
Dance for the puppet master: G6 Tech TalkDance for the puppet master: G6 Tech Talk
Dance for the puppet master: G6 Tech Talk
 
dotCloud and go
dotCloud and godotCloud and go
dotCloud and go
 
Writing Redis in Python with asyncio
Writing Redis in Python with asyncioWriting Redis in Python with asyncio
Writing Redis in Python with asyncio
 
Powerful and flexible templates with Twig
Powerful and flexible templates with Twig Powerful and flexible templates with Twig
Powerful and flexible templates with Twig
 
Unit Testing Express Middleware
Unit Testing Express MiddlewareUnit Testing Express Middleware
Unit Testing Express Middleware
 
Unit testing powershell
Unit testing powershellUnit testing powershell
Unit testing powershell
 
Async all around us (promises)
Async all around us (promises)Async all around us (promises)
Async all around us (promises)
 
Testowanie JavaScript
Testowanie JavaScriptTestowanie JavaScript
Testowanie JavaScript
 
Unqlite
UnqliteUnqlite
Unqlite
 
Kitura Todolist tutorial
Kitura Todolist tutorialKitura Todolist tutorial
Kitura Todolist tutorial
 
exportDisabledUsersRemoveMailbox
exportDisabledUsersRemoveMailboxexportDisabledUsersRemoveMailbox
exportDisabledUsersRemoveMailbox
 
Rntb20200805
Rntb20200805Rntb20200805
Rntb20200805
 
Dpilot Source Code With ScreenShots
Dpilot Source Code With ScreenShots Dpilot Source Code With ScreenShots
Dpilot Source Code With ScreenShots
 
Source Code for Dpilot
Source Code for Dpilot Source Code for Dpilot
Source Code for Dpilot
 
Power shell examples_v4
Power shell examples_v4Power shell examples_v4
Power shell examples_v4
 
Store and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and CassandraStore and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and Cassandra
 
Spring data ii
Spring data iiSpring data ii
Spring data ii
 

Similar to State of the CFEngine 2018

Dive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr TsapDive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr TsapProvectus
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesLindsay Holmwood
 
DevOps Enabling Your Team
DevOps Enabling Your TeamDevOps Enabling Your Team
DevOps Enabling Your TeamGR8Conf
 
Fullstack conf 2017 - Basic dev pipeline end-to-end
Fullstack conf 2017 - Basic dev pipeline end-to-endFullstack conf 2017 - Basic dev pipeline end-to-end
Fullstack conf 2017 - Basic dev pipeline end-to-endEzequiel Maraschio
 
Migrating PriceChirp to Rails 3.0: The Pain Points
Migrating PriceChirp to Rails 3.0: The Pain PointsMigrating PriceChirp to Rails 3.0: The Pain Points
Migrating PriceChirp to Rails 3.0: The Pain PointsSteven Evatt
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slidesharetomcopeland
 
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...Big Data Spain
 
Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Carlos Sanchez
 
Código Saudável => Programador Feliz - Rs on Rails 2010
Código Saudável => Programador Feliz - Rs on Rails 2010Código Saudável => Programador Feliz - Rs on Rails 2010
Código Saudável => Programador Feliz - Rs on Rails 2010Plataformatec
 
Symfony2 - from the trenches
Symfony2 - from the trenchesSymfony2 - from the trenches
Symfony2 - from the trenchesLukas Smith
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012Carlos Sanchez
 
Service discovery and configuration provisioning
Service discovery and configuration provisioningService discovery and configuration provisioning
Service discovery and configuration provisioningSource Ministry
 
Ch ch-changes cake php2
Ch ch-changes cake php2Ch ch-changes cake php2
Ch ch-changes cake php2markstory
 
Analysis of commits and pull requests in Travis CI, Buddy and AppVeyor using ...
Analysis of commits and pull requests in Travis CI, Buddy and AppVeyor using ...Analysis of commits and pull requests in Travis CI, Buddy and AppVeyor using ...
Analysis of commits and pull requests in Travis CI, Buddy and AppVeyor using ...Andrey Karpov
 
PhpUnit - The most unknown Parts
PhpUnit - The most unknown PartsPhpUnit - The most unknown Parts
PhpUnit - The most unknown PartsBastian Feder
 
X64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newX64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newYiwei Ma
 
Deploying a simple Rails application with AWS Elastic Beanstalk
Deploying a simple Rails application with AWS Elastic BeanstalkDeploying a simple Rails application with AWS Elastic Beanstalk
Deploying a simple Rails application with AWS Elastic BeanstalkJulien SIMON
 
Automation with Ansible and Containers
Automation with Ansible and ContainersAutomation with Ansible and Containers
Automation with Ansible and ContainersRodolfo Carvalho
 

Similar to State of the CFEngine 2018 (20)

Dive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr TsapDive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr Tsap
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
DevOps Enabling Your Team
DevOps Enabling Your TeamDevOps Enabling Your Team
DevOps Enabling Your Team
 
Fullstack conf 2017 - Basic dev pipeline end-to-end
Fullstack conf 2017 - Basic dev pipeline end-to-endFullstack conf 2017 - Basic dev pipeline end-to-end
Fullstack conf 2017 - Basic dev pipeline end-to-end
 
Migrating PriceChirp to Rails 3.0: The Pain Points
Migrating PriceChirp to Rails 3.0: The Pain PointsMigrating PriceChirp to Rails 3.0: The Pain Points
Migrating PriceChirp to Rails 3.0: The Pain Points
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshare
 
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...
 
Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012
 
Código Saudável => Programador Feliz - Rs on Rails 2010
Código Saudável => Programador Feliz - Rs on Rails 2010Código Saudável => Programador Feliz - Rs on Rails 2010
Código Saudável => Programador Feliz - Rs on Rails 2010
 
Symfony2 - from the trenches
Symfony2 - from the trenchesSymfony2 - from the trenches
Symfony2 - from the trenches
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012
 
Helm 3
Helm 3Helm 3
Helm 3
 
Service discovery and configuration provisioning
Service discovery and configuration provisioningService discovery and configuration provisioning
Service discovery and configuration provisioning
 
Ch ch-changes cake php2
Ch ch-changes cake php2Ch ch-changes cake php2
Ch ch-changes cake php2
 
Analysis of commits and pull requests in Travis CI, Buddy and AppVeyor using ...
Analysis of commits and pull requests in Travis CI, Buddy and AppVeyor using ...Analysis of commits and pull requests in Travis CI, Buddy and AppVeyor using ...
Analysis of commits and pull requests in Travis CI, Buddy and AppVeyor using ...
 
PhpUnit - The most unknown Parts
PhpUnit - The most unknown PartsPhpUnit - The most unknown Parts
PhpUnit - The most unknown Parts
 
X64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newX64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 new
 
Generators
GeneratorsGenerators
Generators
 
Deploying a simple Rails application with AWS Elastic Beanstalk
Deploying a simple Rails application with AWS Elastic BeanstalkDeploying a simple Rails application with AWS Elastic Beanstalk
Deploying a simple Rails application with AWS Elastic Beanstalk
 
Automation with Ansible and Containers
Automation with Ansible and ContainersAutomation with Ansible and Containers
Automation with Ansible and Containers
 

More from Nick Anderson

Building a host based firewall on top of CFEngine
Building a host based firewall on top of CFEngineBuilding a host based firewall on top of CFEngine
Building a host based firewall on top of CFEngineNick Anderson
 
Security_Practices_with_CFEngine-cfgcamp_2016
Security_Practices_with_CFEngine-cfgcamp_2016Security_Practices_with_CFEngine-cfgcamp_2016
Security_Practices_with_CFEngine-cfgcamp_2016Nick Anderson
 
CloudOpen North America 2013: Vagrant & CFEngine
CloudOpen North America 2013: Vagrant & CFEngineCloudOpen North America 2013: Vagrant & CFEngine
CloudOpen North America 2013: Vagrant & CFEngineNick Anderson
 
Ohio Linux Fest 2013: Provisioning VMs Quickly with Vagrant and CFEngine
Ohio Linux Fest 2013: Provisioning VMs Quickly with Vagrant and CFEngineOhio Linux Fest 2013: Provisioning VMs Quickly with Vagrant and CFEngine
Ohio Linux Fest 2013: Provisioning VMs Quickly with Vagrant and CFEngineNick Anderson
 
Vagrant & CFEngine - LOPSA East 2013
Vagrant & CFEngine - LOPSA East 2013Vagrant & CFEngine - LOPSA East 2013
Vagrant & CFEngine - LOPSA East 2013Nick Anderson
 

More from Nick Anderson (6)

Building a host based firewall on top of CFEngine
Building a host based firewall on top of CFEngineBuilding a host based firewall on top of CFEngine
Building a host based firewall on top of CFEngine
 
Security_Practices_with_CFEngine-cfgcamp_2016
Security_Practices_with_CFEngine-cfgcamp_2016Security_Practices_with_CFEngine-cfgcamp_2016
Security_Practices_with_CFEngine-cfgcamp_2016
 
2016-02-01_dark
2016-02-01_dark2016-02-01_dark
2016-02-01_dark
 
CloudOpen North America 2013: Vagrant & CFEngine
CloudOpen North America 2013: Vagrant & CFEngineCloudOpen North America 2013: Vagrant & CFEngine
CloudOpen North America 2013: Vagrant & CFEngine
 
Ohio Linux Fest 2013: Provisioning VMs Quickly with Vagrant and CFEngine
Ohio Linux Fest 2013: Provisioning VMs Quickly with Vagrant and CFEngineOhio Linux Fest 2013: Provisioning VMs Quickly with Vagrant and CFEngine
Ohio Linux Fest 2013: Provisioning VMs Quickly with Vagrant and CFEngine
 
Vagrant & CFEngine - LOPSA East 2013
Vagrant & CFEngine - LOPSA East 2013Vagrant & CFEngine - LOPSA East 2013
Vagrant & CFEngine - LOPSA East 2013
 

Recently uploaded

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 

Recently uploaded (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

State of the CFEngine 2018

  • 1. State of the CFEngine Or Since last time at Cong Management Camp Nick Anderson February 26, 2018
  • 2.
  • 3. Releases 7 releases since 2017-01-01 Version Date 3.7.5 2017-03-30 3.10.1 2017-03-30 3.10.2 2017-08-11 3.11.0 2017-08-11 3.7.6 2017-09-12 3.10.3 2018-02-02 3.7.7 2018-02-02
  • 4. Contributions Core MPF Docs Commits 256 163 207 Contributors 24 14 17 New Contributors 9 4 6
  • 5. with attribute bundle agent main { vars: todo slist = { a 1, b 2, c 3 }; # Here, `with` is the canonified version of $(todo), l # intermediate canonification array. $(with) string = $(todo), with = canonify($(todo complex data = ' { x: 200, y: [ 1, 2, null, true, false ] } '; reports:
  • 6. with attribute R: For iterable 'a 1' we created variable 'a_1' and its valu R: For iterable 'b 2' we created variable 'b_2' and its valu R: For iterable 'c 3' we created variable 'c_3' and its valu R: We can print a data container compactly without creating R: We can print a data container fully without creating a te x: 200, y: [ 1, 2, null, true, false ] }
  • 7. inline_mustache You are no longer required to use an external le template. Now you can provide the template directly within the policy. bundle agent main { vars: d data = '{ hello: world, feature: [ render, files: /tmp/example.txt create = true, template_method = inline_mustache, edit_template_string = {{%-top-}}, template_data = @(d); }
  • 8. inline_mustache Results in /tmp/example.txt having this content. { feature: [ render, inline, mustache ], hello: world } Figure: Example template_method inline_mustache
  • 9. Multiple augments NOTE: Current implementation discussion in progress in CFE-2741. Please consider participating. { vars:{ my_var: defined in def.json, my_other_var: Defined ONLY in def.json }, augments: [ /tmp/$(sys.flavor).json ] } Figure: Example /tmp/def.json
  • 10. Multiple augments { vars: { my_var: Overridden in centos_6.json, centos_6_var: Defined ONLY in centos_6.json } } Figure: Example /tmp/centos_6.json
  • 11. Multiple augments [root@hub tmp]# cf-agent -KIf ./example.cf R: def.my_var == Overridden in centos_6.json R: def.my_other_var == Defined ONLY in def.json R: def.centos_6_var == Defined ONLY in centos_6.json
  • 13. Augments - Append the bundlesequnece of promises.cf and update.cf control_common_bundlesequence_end control_common_update_bundlesequence_end { vars:{ control_common_bundlesequence_end: [ mybundle1, myb control_common_update_bundlesequence_end: [ my_update } } Order of bundle actuation not guaranteed. Agent errors if named bundle is missing.
  • 14. Augments - Log le retention and rotation limits mpf_log_files_max_size Max le size before rotation mpf_log_file_retention Number of le rotations to keep mpf_log_dir_retention Number of le rotations to keep in outputs, reports, and the Enterprise application log directory. { vars: { mpf_log_file_retention: 5, mpf_log_file_max_size: 10M, mpf_log_dir_retention: 7 } }
  • 15. Augments - Execution schedule control_executor_schedule Classes that trigger execution of cf-agent. { vars: { control_executor_schedule: [ Min00, Min30 ] } }
  • 16. Augments - splaytime control_executor_splaytime Maximum number of minutes exec_commad should wait before executing. { vars: { control_executor_splaytime: 3 } }
  • 17. Augments - allowlegacyconnects control_server_allowlegacyconnects List of subnets allowed to connect using legacy protocol (versions prior to 3.7.0). { vars: { control_server_allowlegacyconnects: [ 0.0.0.0/0 ] } }
  • 18. Augments - maxconnections control_serverd_maxconnections Maximum number of connections allowed by cf-serverd. { vars:{ control_serverd_maxconnections: 1000 } }
  • 19. Augments - Client initiated reporting (Enterprise) control_hub_exclude_hosts List of subnets to exclude from hub initiated report collection. client_initiated_reporting_enabled List of classes that if dened should initiate reporting to an enterprise hub. control_server_call_collect_interval Number of minutes between client initiated reporting. { vars: { control_server_call_collect_interval: 1, control_hub_exclude_hosts: [ 0.0.0.0/0 ] }, classes { client_initiated_reporting_enabled: [ any ] } }
  • 20. Augments - files_single_copy control_agent_files_single_copy List of regular expressions matching les that should not be copied more than once. { vars:{ control_agent_files_single_copy: [ .* ] } }
  • 21. Augments - default_repository mpf_control_agent_default_repository List of classes class will cause these backups to be placed in $(sys.workdir)/backups. control_agent_default_backup Directory where backups should be placed (defaults to $(sys.workdir/backups). { classes: { mpf_control_agent_default_repository: [ any ] }, vars: { control_agent_default_repository: /var/cfengine/edit_ } }
  • 22. templates shortcut dir_templates Path to common template directory. Shortcut provided by cf-serverd as templates/. { vars: { dir_templates: /var/cfengine/mytemplat } } bundle agent example { files: $(def.dir_templates)/mytemplate.mustache - { myservi copy_from = remote_dcp( templates/mytemplate.mustach $(sys.policy_server) ), comment = mytemplate is necessary in order to render
  • 23. Automatically restart components on related data change While the agent itsef will reload its cong upon notice of policy change this bundle specically handles changes to variables used in the MPF which may come from external data sources which are unknown to the components themselves. mpf_augments_control_enabled List of classes that automatic component restart on related data change should be enabled for. { classes:{ mpf_augments_control_enabled: [ any ] } }
  • 24. Host info report now now renders inventory variables cf-agent -KIb host_info_report ### Inventory #### Variables tagged for inventory { default:cfe_autorun_inventory_disk.free: 5.00, default:cfe_autorun_inventory_listening_ports.ports: [ 22, 25, 53, ], default:cfe_autorun_inventory_memory.total: 32050.27, default:sys.arch: x86_64, default:sys.cf_version: 3.11.0, default:sys.class: linux, default:sys.cpus: 4,
  • 25. UI responsiveness Testing with 50,000 host data sets
  • 26. Global Host Search Easily nd hosts by name, ip or identity
  • 28. mail settings Exported reports can now be sent as attachments in emails
  • 31. New OOTB Inventory Attributes Policy Release Id AIX OS Level
  • 32. Inventory API curl --user admin -X POST -H 'content-type: application/json' https://hub/api/inventory -d '{ select:[ Host name, O Figure: Example API Query
  • 33. Inventory API { data: [ { header: [ { columnName: Host name, columnType: STRING }, { columnName: OS type, columnType: STRING } ], queryTimeMs: 11, rowCount: 2, rows: [ [