sigurd.teigen@cfengine.com R&D, CFEngine CFEngine has previously had multiple ways of loading data from an external file into a policy. This has been useful for basing policy on tablular data. For example, importing a CSV file to create accounts. Once data has been imported, it may be used using the existing CFEngine scalar and list data types. In order to make this more flexible, we are introducing a new data type ‘data’ for version 3.6 of CFEngine. A data container variable is an arbitrarly nested data structure of CFEngine primitives. You may think of a data container as a JSON document, because initially we are only supporting importing from JSON. However, this may change in the future allowing for importing data from YAML, XML and other files. Let us examine the flexibility and ease of use of this data type by way of an example. bundle agent test { vars: “doc” data => parsejson(’{ “a”: [ 1, 2 ], “b”: true }’); reports: “Hello $(doc[a]) $(doc[b])”; } This will output the following. $ cf-agent/cf-agent test.cf 2013-11-25T15:18:32-0500 notice: /main: R: Hello 1 true 2013-11-25T15:18:32-0500 notice: /main: R: Hello 2 true In this example, we use the function parsejson to assign a new data container. A data container may either be iterated as a list or as a scalar, depending on how it’s indexed. Above, we see that we index into a list ‘a’ in ‘doc’. Meanwhile, ‘b’ in ‘doc’ refers to a scalar. A list may contain other container types (list or maps), but only sibling scalars will be iterated over. Indexing works as in JavaScript, for example $(doc[a][1]) would refer to the second element in the list ‘a’ in ‘doc’. Currently, there is no inline syntax for data containers, although this is being planned for. A function readjson is available to import file, while function mergedata may be used to join existing data container variables into a new variable. We hope that data containers will be a practical way of working with structured data in policy, replacing current uses of arrays. Data containers are also used with the new Mustache template feature also in version 3.6. Learn more about CFEngine by visiting our website Evaluate CFEngine for free (upto 25 licenses, unlimited usage)
eystein.maloy.stenberg@cfengine.com Product Management, CFEngine Introduction The beauty and power of Docker comes from its ability to containerize any application into a portable self-sufficient entity, one that can run anywhere. This enables developers to deliver an application with all dependencies in a layered image structure. As if that was not enough, the images can be shared in an image repository (known as the Docker index) and deployed to and run on any Docker host. CFEngine, a pioneer in IT automation, enables organizations to become more agile by radically simplifying, automating and transforming the way they build, deliver and consume IT infrastructure and applications. With CFEngine, some of the largest IT organizations provision resources and deploy new applications orders of magnitude faster, while ensuring continuous availability, security and compliance in large-scale, very dynamic and highly complex environments. After applications are deployed, maintenance tasks such as process management and signaling, log management, and managing run-time configuration consistency and compliance become important. CFEngine is designed to be very lightweight, distributed and fault-tolerant. These attributes make it very well suited for managing containerized Docker applications. CFEngine is an extremely versatile technology and a good complement to Docker, which is very strong at getting code containerized, shipped and deployed. Advancing Process Management in Docker Docker monitors one process in each running container and the container lives or dies with that process. By introducing CFEngine inside Docker containers, we can alleviate a few of the issues that may arise:
William Gibson once said: “The future is here, but it is not evenly distributed”. Within the space of IT-operations and automation we see clear evidence of this. Last week at LISA, System Engineer Mike Svoboda from LinkedIn gave us a glimpse of insight into the future of infrastructure operations.
The lucky audience got to learn how LinkedIn automates IT-operations at one of the largest websites in the world. What LinkedIn has achieved with less than a handful of engineers the last couple of years is truly bleeding edge.
Mahesh Kumar, VP Marketing CFEngine
mahesh.kumar@cfengine.com
This month (literally tomorrow) at Velocity 2013 London Khushil Dep of the MailOnline will address the conference and present how his firm leverages CFEngine for their infrastructure management needs. As Khushil puts it “At the MailOnline we use CFEngine as the core of our configuration management. A way in which we describe our intentions in clear, precise and workable logic patterns which the Machine can understand without ambiguity.”
Mahesh Kumar, VP Marketing CFEngine
mahesh.kumar@cfengine.com
The CFEngine team was at LISA 2013 in Washington, D.C. this past week. It was the perfect setting, the weather playing nice, and having some of the sharpest minds talking about their accomplishments in the large installation system administration space.
There were training sessions earlier on as the conference started on the 3’rd of November. Wednesday’s proceedings were kicked off by Jason Hoffman, Founder, Joyent. Jason regaled the packed audience with his talk about ‘Modern Infrastructure - The convergence of network, compute and data’. It was very well delivered and informational.
Mahesh Kumar, VP Marketing CFEngine
@mahesh_CFE
mahesh.kumar@cfengine.com
Hello Everyone! It is not too often that one gets to join a company with solid fundamentals when it comes to technology and one that finds itself as the change leader in an area that is evolving real-time (DevOps and Continuous Delivery). Well, I am thrilled to report that I am onboard here at CFEngine as their VP of Marketing.
In the days ahead I will be reporting back frequently on the cool things we are doing here at CFEngine. Such as recently winning an award from JPMC that you can read more about in our blog. Of course we could speak about the ground breaking and innovative areas we are focused on here at CFEngine such as continuous delivery and continuous operations. However I am getting ahead of myself. I wanted to use this post to introduce myself as well as talk about the recent Velocity and DevOps Days events in NYC.
A while ago, work was started on a new promise type in CFEngine, the “users” promise type. What it does is make promises about which users are supposed to be present on each host, what login credentials they have, what groups they are part of, and so on. This has traditionally been something one would have to write in the CFEngine policy using system commands, but with this new feature it becomes a much more convenient and robust solution for users management.
Some software is more opinionated than others. If it ever made sense to anthropomorphize software, the CFEngine agent would be a good candidate. A CFEngine installation is a society of independent agents, each with their own goals, schedules and limited view of the world, individually doing their best under current weather.
Mark Burgess’ new book ‘In Search of Certainty’ may be viewed as a popular anthology for the design considerations that went into writing CFEngine. To that end, we are taken on a fast paced journey through topics such as classical and quantum mechanics, information theory, game theory and biology. It is clear that Mark had a lot of fun writing this book, drawing on and connecting dots of an eclectic array of examples from everyday life. Along the way, questions about how to design good tools are explored from a physicist point of view.
The CFEngine team is excited to present - CFEngine Week in New York City, October 14-18!
During that week we will be out in force in the Big Apple. Come meet us in one of the many events we are organizing or sponsoring:
Velocity Conference, Oct 14-16: Most companies with outward-facing dynamic websites face the same challenges: pages must load quickly, infrastructure must scale efficiently, and sites and services must be reliable, without burning out the team or breaking the budget. Velocity is the best place on the planet for web ops and performance professionals to learn from peers, exchange ideas with experts, and share best practices and lessons learned.
Authored by Remi Bergsma - http://blog.remibergsma.com
Back in June, just before I went off for holiday, I attended a CFEngine training in Amsterdam. When I returned from holiday a few weeks later, me and my team started making plans to implement CFEngine in our environment. After two months of hard work, I’m proud to say we manage about 350 out of our 400 Linux servers with CFEngine!
The ride has been fun, although not always easy. In this post I’ll give a quick overview of our CFEngine implementation, where I found useful info, etc.