Training by Vertical SysAdmin

Vertical Sysadmin, Inc. specializes in automating system administration using CFEngine. Aleksey Tsalolikhin, head of Vertical Sysadmin, has over 20 years experience in IT operations. Aleksey was trained by Mark Burgess, the creator of CFEngine.

Automating System Administration using CFEngine 3

Who should attend this course:
Anyone with at least a basic knowledge of system administration interested in increasing operational efficiency and sysadmin happiness.

Why do you need to know about Automated System Administration?
Automation of system administration is the key to scalability. It helps not only in change management but also in knowledge management (documenting the intended state of your system and the reasons why it is configured that way). Automating your system administration is key to career progression from system administration to more interesting system engineering work.

Why CFEngine 3?
CFEngine is the granddaddy of policy-based configuration management systems, and CFEngine version 3 increases the power and flexibility of managing network-attached computers. CFEngine can operate in the widest variety of environments, from embedded sensors to supercomputers, from underwater to outer space. It can run on the widest range of operating systems and has the smallest resource footprint. CFEngine is a very powerful tool.

What you will take back to work:
A thorough grounding in automating system administration using CFEngine 3 and the ability to implement configuration policies on your systems. You will be able to automatedly handle and control files, processes, packages, and commands, all resulting in Correct and Known Configuration on your servers. You will know how to set up CFEngine client-server, so that you can use it at scale.

What this course covers:

1. The history, design principles, and philosophy of CFEngine:

  • CFEngine 1: A configuration management language to handle different Unix systems
  • CFEngine 2: Computer Immunology and Convergence to Desired State
  • CFEngine 3: The Promise Model
  • The importance of abstraction for knowledge management

2. The Basic Grammar of CFEngine 3:

  • Promises of desired system state
  • Promise atributes
  • Collections of promises
  • Collections of promise attributes

3. The CFEngine 3 Data Types and How to Use Them:

  • Scalar variables: Strings, integers, and real numbers
  • Lists of Scalars

4. How to use Patterns in Promises to Describe Configuration Efficiently:

  • Classifying servers to control when and where configuration promises apply using CFEngine “classes”
  • Leveraging the power of regular expressions
  • Using lists to drive action: add or remove users, install or delete packages, and so on.
  • Re-using code by abstracting promise attributes into parameterizable promise bodies
  • Re-using code by abstracting promise bundles into parameterizable methods

5. Advanced CFEngine Topics

  • Selecting files using simple and compound filters
  • Selecting processes using simple and compound filters
  • Configuring a CFEngine client-server system
  • Generating reports; how CFEngine can help you audit and report compliance.

6. Many practical examples and exercises to help seed your policy set.

The course balances theory and practical. See the complete course plan.

Requirements: Attendees are expected to be familiar with command-line Linux/UNIX utilities and basic system administration tasks (installation software, setting up networking, etc). Each attendee will be asked to bring a laptop with VMWare Player as this class includes exercises that will be performed using a provided VM.

Customer Quotes:

“Thank you for such a great class. Been to lots of technical training and you are the best instructor I’ve had. Beyond standard lecture/lab your examples and willingness to help with non-class related questions pertaining to CFEngine is unmatched.”
— Thomas Nicholson, Sr. Systems Management Engineer

“I was able to “unlearn” some of my bad habits that came with my legacy CFEngine 2 set up. A lot of the things that previously made CFEngine 3 daunting to me are now clear and approachable.”
— Brian Bennett, Systems Architect

“I have rolled out cfengine to about 50 servers across the state of New Mexico. A few minor bumps, but all in all very successful. And the peace of mind is priceless :)”
— Dan Barber, Senior Network Systems Administrator, Supreme Court of New Mexico

“Thanks for providing such a great class of CFEngine 3. This class was theoretical plus practical which was truly good for implementing what we learn and helped to build a confidence. The practice examples helped to gain confidence with CFEngine language.”
— Harish Dhumal, Information Security Analyst, Ciber Inc.

“Aleksey (trainer) was one of the best hands-on teachers I’ve experienced in a long time. He is very knowledgeable about the subject, patient and keeps the class focused. His course materials including documentation, examples and exercises were very comprehensive. I certainly could have gained from his teachings and materials greatly at the onset of my learning CFEngine many months ago”
–- Paul Connally, IT Systems Administrator, PDX, Inc.

“All concepts were presented clearly with working examples of each. Pacing was excellent as well as personal attention paid to each student”.
–- Charles Farinella, Systems Administrator, Appropriate Solutions, Inc.

“The overall layout and content of the course made it very easy to understand. Aleksey did a great job of being thorough and providing information and answering questions. He very clearly presented the materials and also provided lots of real world examples that help applied the concepts. His willingness to provide specific examples based on feedback from the class was also very useful”.
— Thomas from a Fortune 50 Financial Company

“Aleksey did a great job of going through examples & helping us work through the exercises”.
— Brian from a Fortune 50 Financial Company

“I asked to bring Aleksey back not just because of his deep knowledge of CFEngine, but more because of his personal attention to each student and his tenacity in ensuring that all students understand the material before moving on. He brings an adequate supply of further exercises to keep the remaining students working while he works with someone who’s having particular problems, and is a stickler for staying on the schedule, which I really appreciate”.
— Danny from a Fortune 50 Financial Company

Click here to contact us for more information on Vertical Sysadmin’s CFEngine training courses.