Customizing Chef

Total Page:16

File Type:pdf, Size:1020Kb

Customizing Chef C u s t o m i z i n g Chef GETTING THE MOST OUT OF YOUR INFRASTRUCTURE AUTOMATION Jon Cowie www.it-ebooks.info Customizing Chef Customizing Take advantage of Chef’s highly customizable design to tackle specific Whether you are new automation issues that you can’t solve by simply using Chef’s tools, “ resources, and services out of the box. With this practical guide, you’ll to Chef or have been examine the internal structure of this configuration management using it for years, this technology and learn where, how, and why to add custom code. book has something Author Jon Cowie not only provides code snippets and practical advice for you! Approachable, for customizing Chef, but also helps you determine case by case whether C u s t o m i z i n g practical advice, working it’s in your best interests to customize at all. If you have intermediate-to- advanced Chef experience, this book is indispensable. code, and best practices can all be found in this ■ Explore Chef’s typical setups and why you’d want to delightful book, which customize them should be considered ■ Learn the Ruby concepts needed to write customizations required reading and ■ Customize the Chef run process and explore Chef’s internal a ready reference for classes anyone who is serious Chef ■ Chef Gain more insight into your Chef runs through handlers and Chef’s event stream about automating GETTING THE MOST OUT OF YOUR infrastructure with Chef. ■ Level up your Chef recipes by writing your own resources ” INFRASTRUCTURE AUTOMATION and providers —Nathen Harvey Community Director at Chef and Co-host ■ Create and extend plugins for Knife—Chef’s command-line of the Food Fight Show podcast tool ■ Interact with the Chef API to write scripts and reports ■ Learn how to contribute customizations to the Chef community Jon Cowie is a senior operations engineer at Etsy, where he solves interesting problems through his love of both coding and operations. He’s created and open- sourced several projects, including the Chef tools knife-spork and knife-preflight. Cowie SYSTEM ADMINISTRATION Twitter: @oreillymedia facebook.com/oreilly US $39.99 CAN $41.99 ISBN: 978-1-491-94935-1 Jon Cowie www.it-ebooks.info Customizing Chef Jon Cowie www.it-ebooks.info Customizing Chef by Jon Cowie Copyright © 2014 Jonathan Cowie. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://safaribooksonline.com). For more information, contact our corporate/ institutional sales department: 800-998-9938 or [email protected]. Editors: Courtney Nash and Brian Anderson Indexer: Wendy Catalano Production Editor: Nicole Shelby Cover Designer: Ellie Volckhausen Copyeditor: Rachel Head Interior Designer: David Futato Proofreader: Gillian McGarvey Illustrator: Rebecca Demarest September 2014: First Edition Revision History for the First Edition: 2014-08-26: First release See http://oreilly.com/catalog/errata.csp?isbn=9781491949351 for release details. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Customizing Chef, the picture of a ruffed grouse, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. ISBN: 978-1-491-94935-1 [LSI] www.it-ebooks.info This book is dedicated to my uncle, David Shrimpton, without whose encouragement and guidance I would likely never have entered this profession. He was a great friend and mentor to all of his students at the University of Kent as well as to myself, and is greatly missed by all who knew and loved him. www.it-ebooks.info www.it-ebooks.info Table of Contents Foreword. xiii Preface. xv Part I. Chef and Ruby 101 1. Introduction. 3 What Is Configuration Management? 3 So Why Chef? 4 Think Critically 7 Meet AwesomeInc 8 Criteria for Customization 10 How Do We Find Out When Our Chef Runs Are Failing, and Why? 11 How Do We Simplify Our Recipes to Reduce the Amount of Replicated Code? 12 How Do We Stop Our Developers and Ops Staff from Treading All over Each Other’s Changes? 12 State of the Customization Nation 13 Chef Supermarket 13 Development Tooling 13 Workflow Tooling 14 Knife Plugins 15 Handlers 16 Recipes and Resources 17 Chef Installation Types and Limitations 18 chef-solo 18 Open Source Chef 19 Local Mode 20 Private Enterprise Chef 20 Hosted Enterprise Chef 21 v www.it-ebooks.info Prerequisites 22 Knife 22 Nodes and Clients 22 Cookbooks, Attributes, Roles, Environments, and Data Bags 22 Chef Search 23 Ruby 23 Assumptions 23 2. Just Enough Ruby to Customize Chef. 25 Ruby Is Object-Oriented 26 Ruby Is Dynamically Typed 27 Classes 30 Getter and Setter Methods 31 Variable Scoping 33 Local Variables 34 Class Instance Variables 35 Inheritance 36 Modules 37 Modules as Namespaces 38 Modules as Mixins 39 Using Other Classes and Modules 41 Local Classes 41 RubyGems 42 Built-in Classes 43 When Things Go Wrong 44 Exceptions 44 Handling Exceptions 46 Defining Custom Exception Types 48 Tying It All Together 49 File Operations 50 HTTP Requests 52 Summary 55 3. Chef Internals. 57 Chef Architecture 58 Chef Client Tools 59 Chef Server 60 Anatomy of a Chef Run 62 Get Configuration Data 63 Authenticate/Register 64 Load and Build Node Object 65 Synchronize Cookbooks 66 vi | Table of Contents www.it-ebooks.info SetUp RunContext 66 Load Cookbook Data 68 Converge Node 69 Finalize 69 Dry-Run and Why-Run 70 The Problem with Dry-Run 71 Why-Run Mode 71 Usefulness of Why-Run 72 Using the Source 74 Getting the Chef Source Code 74 Chef Source Structure 75 Tracing a chef-client Run 77 Execute the chef-client Command 78 Run the Real chef-client Script 79 The Chef::Application::Client Class 80 The Chef::Application::Client run_chef_client Method 83 The Chef::Client Class 84 The Chef::Client Class do_run Method 86 Summary 91 Part II. Customizing Chef Runs 4. Extending Ohai. 95 Introduction 96 Ohai Attribute Collection 96 The Ohai Source Code 97 Ohai Example 1: Plugin Skeleton 97 Testing and Running Ohai Plugins 99 Testing Using irb 99 Running Using Chef 101 Ohai Example 2: Adding More to the Plugin 101 The Mash Object 102 Multiple collect_data Methods 103 Running example2.rb 105 Ohai Example 3: Multilevel Plugins 106 Summary 111 5. Creating Handlers. 113 Preparing a Test Environment 114 Create the Test chef-client Configuration 114 Create a Test Cookbook 115 Table of Contents | vii www.it-ebooks.info Verify That the Test Environment Works Correctly 116 Introduction to Handlers 117 The Run Status Object 119 Run Status Methods 119 Run Information Methods 120 Run Object Methods 121 Handler Example 1: Start Handler 122 Handler Example 2: Report Handler 126 Handler Example 3: Exception Handler 130 Handlers: Summary and Further Reading 136 6. Extending Chef Run Events. 139 Introduction to the Event Dispatcher 139 Event Dispatcher Initialization 140 Publish Overview 140 Subscribe Overview 141 Creating Formatters 142 Formatter Example 1: Skeleton Formatter 143 Formatter Example 2: Slightly Less Skeletal 144 Formatter Example 3: Custom Event Methods 146 Setting the Default Formatter 149 Formatters: Summary and Further Reading 150 Creating Custom Subscribers 151 Subscriber Example 1: Skeleton Subscriber 152 Subscriber Example 2: Registration with Start Handlers 152 Subscriber Example 3: Custom Event Methods 155 Custom Subscribers: Summary 157 Revisiting AwesomeInc—Which Customization? 158 Summary 161 Part III. Customizing Recipes 7. Definitions and Libraries. 165 Cookbook Structure Revisited 166 Creating a Test Environment 167 Definitions 168 What Is a Definition? 168 Definition Example 1: Skeleton 170 Adding Parameters 172 Definition Example 2: Using Parameters 173 Adding Resources 175 viii | Table of Contents www.it-ebooks.info Definition Example 3: Using Resources 176 Libraries 179 What Is a Library? 179 Library Example 1: Modules and Mixins 181 Library Example 2: Methods in a Custom Namespace 184 Library Example 3: Extending Core Chef Classes 186 Summary and Further Reading 188 8. Lightweight Resources and Providers. 191 Introduction to Resources and Providers 192 Automatically Choosing Providers 193 Resources and Providers—Lightweight Versus Heavyweight 194 Introduction to LWRPs 195 LWRP Example 1: Getting Started with LWRPs 196 Example 1: Creating a Resource 196 Example 1: Creating a Provider 198 Example 1: Using Our LWRP in a Recipe 199 The LWRP Domain-Specific Language 200 Resource DSL 201 Provider DSL 203 LWRP Example 2: Extending the Provider 205 Provider Internals 209 Desired Resource State 210 Current Resource State 212 Identifying and Executing Changes 215 Informing Chef About Updates 216 LWRP Example 3: Native Provider 217 Example 3: Preparing the Resource and Provider 217 Example 3: The load_current_resource Method 218 Example 3: Coding the Actions 220 Summary and Further Reading 224 9. Heavyweight Resources and Providers. 227 Introduction to HWRPs 228 Why Write HWRPs? 228 HWRPs in Cookbooks 229 HWRP Example 1: Getting Started with HWRPs 229 Example 1: Creating a Resource 230 Example 1: Creating a Provider 233 Example 1: Using Our HWRP in a Recipe 234 Example 1: Extending the Provider 235 Advanced HWRP Tricks 240 Table of Contents | ix www.it-ebooks.info Mixing HWRPs and LWRPs 240 Overriding Automatic Provider Resolution 243 Implementing Multi-Provider Resources 247 HWRP Example 2: Extending the package Resource 251 Example 2: Creating a Provider 251 Example 2: Using Our Provider in a Recipe 253 Example 2: Tapping into Chef’s Provider Mapping 255 Summary and Further Reading 258 Part IV.
Recommended publications
  • Alexander, Kleymenov
    Alexander, Kleymenov Key Skills ▪ Ruby ▪ JavaScript ▪ C/C++ ▪ SQL ▪ PL/SQL ▪ XML ▪ UML ▪ Ruby on Rails ▪ EventMachine ▪ Sinatra ▪ JQuery ▪ ExtJS ▪ Databases: Oracle (9i,10g), MySQL, PostgreSQL, MS SQL ▪ noSQL: CouchDB, MongoDB ▪ Messaging: RabbitMQ ▪ Platforms: Linux, Solaris, MacOS X, Windows ▪ Testing: RSpec ▪ TDD, BDD ▪ SOA, OLAP, Data Mining ▪ Agile, Scrum Experience May 2017 – June 2018 Digitalkasten Internet GmbH (Germany, Berlin) Lead Developer B2B & B2C SaaS: Development from the scratch. Ruby, Ruby on Rails, Golang, Elasticsearch, Ruby, Ruby on Rails, Golang, Elasticsearch, Postgresql, Javascript, AngularJS 2 / Angular 5, Ionic 2 & 3, Apache Cordova, RabbitMQ, OpenStack January 2017 – April 2017 (project work) Stellenticket Gmbh (Germany, Berlin) Lead developer Application prototype development with Ruby, Ruby on Rails, Javascript, Backbone.js, Postgresql. September 2016 – December 2016 Part-time work & studying German in Goethe-Institut e.V. (Germany, Berlin) Freelancer & Student Full-stack developer and German A1. May 2016 – September 2016 Tridion Assets Management Gmbh (Germany, Berlin) Team Lead Development team managing. Develop and implement architecture of application HRLab (application for HRs). Software development trainings for team. Planning of software development and life cycle. Ruby, Ruby on Rails, Javascript, Backbone.js, Postgresql, PL/pgSQL, Golang, Redis, Salesforce API November 2015 – May 2016 (Germany, Berlin) Ecratum Gmbh Ruby, Ruby on Rails developer ERP/CRM - Application development with: Ruby 2, RoR4, PostgreSQL, Redis/Elastic, EventMachine, MessageBus, Puma, AWS/EC2, etc. April 2014 — November 2015 (Russia, Moscow - Australia, Melbourne - Munich, Germany - Berlin, Germany) Freelance/DHARMA Dev. Ruby, Ruby on Rails developer notarikon.net Application development with: Ruby 2, RoR 4, PostgreSQL, MongoDB, Javascript (CoffeeScript), AJAX, jQuery, Websockets, Redis + own project: http://featmeat.com – complex service for health control: trainings tracking and data providing to medical adviser.
    [Show full text]
  • Github Essentials.Pdf
    [ 1 ] GitHub Essentials Unleash the power of collaborative workflow development using GitHub, one step at a time Achilleas Pipinellis BIRMINGHAM - MUMBAI GitHub Essentials Copyright © 2015 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: September 2015 Production reference: 1280915 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78355-371-6 www.packtpub.com Credits Author Copy Editor Achilleas Pipinellis Trishya Hajare Reviewer Project Coordinator Umesh Ram Sharma Shweta H Birwatkar Commissioning Editor Proofreader Dipika Gaonkar Safis Editng Acquisition Editor Indexer Nikhil Karkal Hemangini Bari Content Development Editor Production Coordinator Sumeet Sawant Nitesh Thakur Technical Editor Cover Work Saurabh Malhotra Nitesh Thakur About the Author Achilleas Pipinellis is an open source enthusiast and tries to get involved in as many projects as possible.
    [Show full text]
  • Avaliação De Performance De Interpretadores Ruby
    Universidade Federal de Santa Catarina Centro Tecnológico Curso de Sistemas de Informação Wilson de Almeida Avaliação de Performance de Interpretadores Ruby Florianópolis 2010 Wilson de Almeida Avaliação de Performance de Interpretadores Ruby Monograa apresentada ao Curso de Sistemas de Informação da UFSC, como requisito para a obten- ção parcial do grau de BACHAREL em Sistemas de Informação. Orientador: Lúcia Helena Martins Pacheco Doutora em Engenharia Florianópolis 2010 Almeida, Wilson Avaliação de Performance de Interpretadores Ruby / Wilson Al- meida - 2010 xx.p 1.Performance 2. Interpretadores.. I.Título. CDU 536.21 Wilson de Almeida Avaliação de Performance de Interpretadores Ruby Monograa apresentada ao Curso de Sistemas de Informação da UFSC, como requisito para a obten- ção parcial do grau de BACHAREL em Sistemas de Informação. Aprovado em 21 de junho de 2010 BANCA EXAMINADORA Lúcia Helena Martins Pacheco Doutora em Engenharia José Eduardo De Lucca Mestre em Ciências da Computação Eduardo Bellani Bacharel em Sistemas de Informação Aos meus pais e meu irmão. Aos familiares e amigos, em especial pra mi- nha eterna amiga Liliana, que está torcendo por mim de onde ela estiver. Agradecimentos Agradeço ao meu amigo, colega de curso, parceiro de trabalhos e orientador Eduardo Bellani, pelo encorajamento, apoio e seus ricos conselhos sobre o melhor direci- onamento deste trabalho. A professora Lúcia Helena Martins Pacheco pela orientação, amizade, e pela paciência, sem a qual este trabalho não se realizaria. Ao professor José Eduardo Delucca, por seus conselhos objetivos e pontuais. Todos os meus amigos que incentivaram e compreenderam a minha ausência nesse período de corrida atrás do objetivo de concluir o curso.
    [Show full text]
  • Test Kitchen, Inspec Docker - Fastest Way to Run Stuff (Virtual Virtual Machines) DOCKER
    TEST DRIVEN INFRASTRUCTURE COMPLIANCE AS CODE by Joaquín Menchaca À PROPOS DE MOI ABOUT ME ROCKET LAWYER SENIOR DEVOPS BUILD/RELEASE ENGINEER aka Linux Ninja Pants Automation Engineering Mutant actual photo https://slides.com/devopsstu dio/lisa18_tdi AGENDA 1. Setup 2. Context 3. Chef + InSpec 4. Ansible + InSpec 5. Bonus SETUP THE CODE https://github.com/darkn3rd/lisa18_t est_driven_infra CODE git clone \ https://github.com/darkn3rd/lisa18_test_driven_infra cd lisa18_test_driven_infra # Using Virtual Workstation vagrant up vagrant ssh cd lisa18_test_driven_infra # Using Host (MacOS X or Linux) #### Install Requirements # Using Host (Windows) #### Install Rrequiremnts #### Warning: Might not work, had success w/ Chef THE HOST SETUP must be able to run Docker or Vagrant MINIMUM REQUIRED ChefDK - bundles ruby, test kitchen, inspec Docker - fastest way to run stuff (virtual virtual machines) DOCKER Easiest Path is Docker Desktop DOCKER PACKAGE MANAGERS choco install docker-for-windows https://chocolatey.org/ brew cask install docker https://brew.sh/ DIRECT DOWNLOAD https://www.docker.com/products/docker-desktop DOCKER Debian Package on Ubuntu sudo apt-get update -qq sudo apt-get install -y apt-transport-https \ curl ca-certificates software-properties-common DOCKER_REPO="https://download.docker.com/linux/ubuntu" curl -fsSL ${DOCKER_REPO}/gpg | \ sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] ${DOCKER_REPO} \ $(lsb_release -cs) \ stable" sudo apt-get update -qq sudo apt-get install -y docker-ce sudo usermod -aG docker $USER
    [Show full text]
  • Michael Johann Mjohann@Rails­Experts.Com
    Steinfurt, Germany Michael Johann mjohann@rails­experts.com http://www.rails­experts.com I am interested in new projects where various modern technologies are combined to build great innovative products. My view is from the full stack developer to architecture and engineering aspects. I am also passionate about being a CTO if the company is trusting my technical experience. I've supported the most known industry standards before thy became mainstream. I've founded JavaSPEKTRUM print magazine in 1996 and RailsWayMagazine (print) in 2009 and have been editor in chief for both magazines. In 2008 I wrote a german book about "JRuby on Rails for Java Enterprise Developers). As a regular speaker at conferences in Europe/USA, I always spread the news about new technologies and how they apply to projects. As a person with multiple interests I combine using technical aspects in development with writing and speaking at conferences. I've been an evangelist for Java and Rails. Technical Skills Like: ruby, on, rails, ios, android, java, jee, html5, css3, javascript, mongodb, torquebox, ansible, docker, rspec, cucumber Dislike: php, typo3, cobol Experience Chief Full Stack Developer – Smaps GmbH December 2013 ­ Current ruby­on­rails­4.1, objective­c, mongodb, android Responsible for product development of backend, frontend and mobile clients Backend consists of MongoDB Frontend is HTML5 with Bootstrap, JQuery, GoogleMaps API iOS Client native with RestKit API communication Android native (Java) Interims CTO – Eco Novum GmbH 2012 ­ November 2013 ios, mongodb, jrubyonrails, html5, css3, javascript, chef, git, jira, json Responsible for all architectural and technological aspects of the products (several mobile payment solutions).
    [Show full text]
  • Rubabel: Wrapping Open Babel with Ruby Rob Smith1*, Ryan Williamson1, Dan Ventura1 and John T Prince2*
    Smith et al. Journal of Cheminformatics 2013, 5:35 http://www.jcheminf.com/content/5/1/35 SOFTWARE Open Access Rubabel: wrapping open Babel with Ruby Rob Smith1*, Ryan Williamson1, Dan Ventura1 and John T Prince2* Abstract Background: The number and diversity of wrappers for chemoinformatic toolkits suggests the diverse needs of the chemoinformatic community. While existing chemoinformatics libraries provide a broad range of utilities, many chemoinformaticians find compiled language libraries intimidating, time-consuming, arcane, and verbose. Although high-level language wrappers have been implemented, more can be done to leverage the intuitiveness of object-orientation, the paradigms of high-level languages, and the extensibility of languages such as Ruby. We introduce Rubabel, an intuitive, object-oriented suite of functionality that substantially increases the accessibily of the tools in the Open Babel chemoinformatics library. Results: Rubabel requires fewer lines of code than any other actively developed wrapper, providing better object organization and navigation, and more intuitive object behavior than extant solutions. Moreover, Rubabel provides a convenient interface to the many extensions currently available in Ruby, greatly streamlining otherwise onerous tasks such as creating web applications that serve up Rubabel functionality. Conclusions: Rubabel is powerful, intuitive, concise, freely available, cross-platform, and easy to install. We expect it to be a platform of choice for new users, Ruby users, and some users of current solutions. Keywords: Chemoinformatics, Open Babel, Ruby Background tasks. Though it allows the user to access the functionality Despite the fact that chemoinformatics tools have been of the component libraries from one Python script, Cin- developed since the late 1990s [1], the field has yet to fony does not automatically manage underlying data types rally in support of a single library.
    [Show full text]
  • Summer Camps
    SUMMER | 2014 RECREATION CAMPS ADULT CLASSES SENIOR SERVICES CITY RECREATION PROGRAMS & SERVICES Special Events Table of Contents Featured Events 2 Lafayette’s Annual Restaurant Walk Summer Camp Calendar 3 Tour Lafayette’s finest dining establishments and sample the Summer Camps 4-19 signature cuisine of each restaurant Preschool/Youth Classes 20-23 Tuesday, May 20, 2014 • 5:30–9:00pm Adult Classes 24-29 Wine Reception • Restaurant Tastings • Coffee and Dessert Musical entertainment at selected locations Adults 55+ Classes 30-33 Raffle Prizes • Auctions General Information 34 $45 per person Registration Form 35 www.lafayettechamber.org Summer Shows Back Cover Benefits Lafayette Community Foundation and the programs and services of the Lafayette Chamber of Commerce Lafayette Fall Ball 2014 Big League Fundamentals for Little League Players—All the Training, without the Travel! June 6, 13, 20 & 27 5/6 Yrs 7/8 Yrs 9/10 Yrs 3:30 to 4:30 4:30 to 5:30 5:30 to 6:30 Music Begins at 6:30pm Rock SESSION/DAYS DATES I: Mon/Wed 9/8 to 10/1 Visit www.LafayetteChamber.org II: Mon/Wed 10/6 to 10/29 The Plaza for full details 11/12 Yrs 3:30 to 5:30 SESSION/DAYS DATES Fridays in the Lafayette Plaza I: Thurs 9/11 to 10/2 II: Thurs 10/9 to 10/30 FEE MIN/MAX LOCATION $203 15/25 Buckeye Fields Lafayette Boys Basketball or Girls Volleyball Boy’s Basketball for Boys entering Grades 1–8 this fall & Girl’s Volleyball for Girls entering Grades 4–8 this fall New This Year: 1.
    [Show full text]
  • UNIVERSITY of CALIFORNIA, SAN DIEGO Toward Understanding And
    UNIVERSITY OF CALIFORNIA, SAN DIEGO Toward Understanding and Dealing with Failures in Cloud-Scale Systems A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science by Peng Huang Committee in charge: Professor Yuanyuan Zhou, Chair Professor Tara Javidi Professor Ranjit Jhala Professor George Porter Professor Stefan Savage 2016 Copyright Peng Huang, 2016 All rights reserved. The Dissertation of Peng Huang is approved and is acceptable in quality and form for publication on microfilm and electronically: Chair University of California, San Diego 2016 iii DEDICATION To my parents, brother and fiancée for their unconditional love and support. iv EPIGRAPH Quis custodiet ipsos custodes? (But who can watch the watchmen?) Juvenal Anything that can go wrong, will go wrong. Murphy’s law Those who fail to learn from the mistakes are doomed to repeat them. George Santayana In the middle of the night, [...] He would awaken and find himeself wondering if one of the machines had stopped working for some new, unknown reason. Or he would wake up thinking about the latest failure, the one whose cause they’d been looking for a whole week and sitll hadn’t found. The bogeyman—la machine—was there in his bedroom. Tracy Kidder, The Soul of a New Machine v TABLE OF CONTENTS SignaturePage...................................... .................. iii Dedication ......................................... .................. iv Epigraph........................................... .................. v TableofContents
    [Show full text]
  • The Apple Ecosystem
    APPENDIX A The Apple Ecosystem There are a lot of applications used to manage Apple devices in one way or another. Additionally, here’s a list of tools, sorted alphabetically per category in order to remain vendor agnostic. Antivirus Solutions for scanning Macs for viruses and other malware. • AVG: Basic antivirus and spyware detection and remediation. • Avast: Centralized antivirus with a cloud console for tracking incidents and device status. • Avira: Antivirus and a browser extension. Avira Connect allows you to view device status online. • BitDefender: Antivirus and malware managed from a central console. • CarbonBlack: Antivirus and Application Control. • Cylance: Ransomware, advanced threats, fileless malware, and malicious documents in addition to standard antivirus. • Kaspersky: Antivirus with a centralized cloud dashboard to track device status. © Charles Edge and Rich Trouton 2020 707 C. Edge and R. Trouton, Apple Device Management, https://doi.org/10.1007/978-1-4842-5388-5 APPENDIX A THe AppLe ECOSYSteM • Malware Bytes: Antivirus and malware managed from a central console. • McAfee Endpoint Security: Antivirus and advanced threat management with a centralized server to track devices. • Sophos: Antivirus and malware managed from a central console. • Symantec Mobile Device Management: Antivirus and malware managed from a central console. • Trend Micro Endpoint Security: Application whitelisting, antivirus, and ransomware protection in a centralized console. • Wandera: Malicious hot-spot monitoring, jailbreak detection, web gateway for mobile threat detection that integrates with common MDM solutions. Automation Tools Scripty tools used to automate management on the Mac • AutoCasperNBI: Automates the creation of NetBoot Images (read: NBI’s) for use with Casper Imaging. • AutoDMG: Takes a macOS installer (10.10 or newer) and builds a system image suitable for deployment with Imagr, DeployStudio, LANrev, Jamf Pro, and other asr or Apple Systems Restore-based imaging tools.
    [Show full text]
  • Idiomatic and Reproducible Software Builds Using Containers for Reliable Computing
    Master’s Thesis Idiomatic and Reproducible Software Builds using Containers for Reliable Computing Jonas Weber April 18, 2016 arXiv:1702.02999v1 [cs.SE] 9 Feb 2017 Albert-Ludwigs-Universität Freiburg Faculty of Engineering Department of Computer Science Bioinformatics Eingereichte Masterarbeit gemäß den Bestimmungen der Prüfungsordnung der Albert-Ludwidgs-Universität Freiburg für den Studiengang Master of Science (M.Sc.) Informatik vom 19. August 2005. Bearbeitungszeitraum 12. Januar 2016 - 12. Juli 2016 Gutachter Prof. Dr. Rolf Backofen Head of the Group Chair for Bioinformatics Zweitgutachter Prof. Dr. Christoph Scholl Director Chair of Operating Systems Betreuer Dr. Björn Grüning Abstract Containers as the unit of application delivery are the ‘next big thing’ in the software development world. They enable developers to create an executable image containing an application bundled with all its dependencies which a user can run inside a controlled environment with virtualized resources. Complex workflows for business-critical applications and research environments require a high degree of reproducibility which can be accomplished using uniquely identified images as units of computation. It will be shown in this thesis that the most widely used approaches to create an image from pre-existing software or from source code lack the ability to provide idiomaticity in their use of the technology as well as proper reproducibility safe-guards. In the first part, existing approaches are formalized and discussed and a new approach is introduced. The approaches are then evaluated using a suite of three different examples. This thesis provides a framework for formalizing operations involving a layered file system, containers and images, and a novel approach to the creation of images using utility containers and layer donning fulfilling the idiomaticity and reproducibility criteria.
    [Show full text]
  • Hbase: the Definitive Guide
    HBase: The Definitive Guide HBase: The Definitive Guide Lars George Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo HBase: The Definitive Guide by Lars George Copyright © 2011 Lars George. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or [email protected]. Editors: Mike Loukides and Julie Steele Indexer: Angela Howard Production Editor: Jasmine Perez Cover Designer: Karen Montgomery Copyeditor: Audrey Doyle Interior Designer: David Futato Proofreader: Jasmine Perez Illustrator: Robert Romano Printing History: September 2011: First Edition. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. HBase: The Definitive Guide, the image of a Clydesdale horse, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc., was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein. ISBN: 978-1-449-39610-7 [LSI] 1314323116 For my wife Katja, my daughter Laura, and son Leon.
    [Show full text]
  • Perfect Programmers
    TYTUŁHOW DOKUMENTU WE WORK AsdasdaAsdasda asdasdad asdasdasd TABLE OF CONTENTS Collaboration in a nutshell................................................................................................................................. 3 First contact.......................................................................................................................................................... 3 Prepare for development.................................................................................................................................... 4 Development......................................................................................................................................................... 5 Development teams............................................................................................................................................. 5 Agreements........................................................................................................................................................... 6 Estimates............................................................................................................................................................... 6 FA ......................................................................................................................................................................... 6 Do I have to pa" for bugs?.................................................................................................................................
    [Show full text]