際際滷

際際滷Share a Scribd company logo
Using Chef to Manage
     Your Server
    Environments
About Blend
DevOps
             (Development / Operations)

Combines disciplines of
software development /
    QA with system
     administration
Building/Deploying
   Manually

   Build scripts

   I want to tell this computer how it should be set up, and
    let it do the rest
Chef
   Client/Server system for managing configuration

   Declarative Recipes define end state instead of
    construction process

   Idempotent - re-running script only causes changes to
    execute
No scripts - recipes
   Cookbooks - modules for adding support for software

   Recipes - contained by cookbooks, define server
    configuration, templates, etc
   Attributes - configurable variables consumed by
    recipes
      Recipes provide defaults, can be overridden by server,
       role, or environment
      Some generated automatically

   Data Bags - hold arbitrary configuration data
Parts and pieces
   Chef Server - holds cookbooks and configuration for
    your organization

   Chef Client - installed on servers via bootstrap process
    to execute recipes, solo and client flavors

   Ohai - discovery utility that extracts automatic attributes
    from servers

   Knife - command line tool for managing chef
Managing/Orchestration
   Chef Solo - One server, no management, cookbooks go
    on server

   Hosted Chef - Opscode-provided server, fine-grained
    permission controls

   Chef Server - Self-hosted chef management server

   Chef supports git, but git repo and servers dont talk
Development cycle
   Create cookbook

   Develop/Test

   Upload recipe to chef server

   Execute on client servers
Blend Server Layout
/Sites
     .conf - all apache vhost configs symlink here
     [sitename]
         conf - apache and other configs
         htdocs - web app, usually apache root dir
         logs - apache and other logs
         deploy - deploy scripts
Development tools
   Berkshelf - code gen and dependency management

   Vagrant - automated testing environments
Linkses
   Chef - community.opscode.com

   Berkshelf - berkshelf.com

   Vagrant - vagrantup.com

   Epic Tutorial -
    vialstudios.com/guide-authoring-cookbooks.html
Questions?
           Joe Kepley
        Blend Interactive

    http://blendinteractive.com
http://github.com/blendinteractive
    http://joind.in/8102
            @joekepley

More Related Content

Managing Servers with Chef

  • 1. Using Chef to Manage Your Server Environments
  • 3. DevOps (Development / Operations) Combines disciplines of software development / QA with system administration
  • 4. Building/Deploying Manually Build scripts I want to tell this computer how it should be set up, and let it do the rest
  • 5. Chef Client/Server system for managing configuration Declarative Recipes define end state instead of construction process Idempotent - re-running script only causes changes to execute
  • 6. No scripts - recipes Cookbooks - modules for adding support for software Recipes - contained by cookbooks, define server configuration, templates, etc Attributes - configurable variables consumed by recipes Recipes provide defaults, can be overridden by server, role, or environment Some generated automatically Data Bags - hold arbitrary configuration data
  • 7. Parts and pieces Chef Server - holds cookbooks and configuration for your organization Chef Client - installed on servers via bootstrap process to execute recipes, solo and client flavors Ohai - discovery utility that extracts automatic attributes from servers Knife - command line tool for managing chef
  • 8. Managing/Orchestration Chef Solo - One server, no management, cookbooks go on server Hosted Chef - Opscode-provided server, fine-grained permission controls Chef Server - Self-hosted chef management server Chef supports git, but git repo and servers dont talk
  • 9. Development cycle Create cookbook Develop/Test Upload recipe to chef server Execute on client servers
  • 10. Blend Server Layout /Sites .conf - all apache vhost configs symlink here [sitename] conf - apache and other configs htdocs - web app, usually apache root dir logs - apache and other logs deploy - deploy scripts
  • 11. Development tools Berkshelf - code gen and dependency management Vagrant - automated testing environments
  • 12. Linkses Chef - community.opscode.com Berkshelf - berkshelf.com Vagrant - vagrantup.com Epic Tutorial - vialstudios.com/guide-authoring-cookbooks.html
  • 13. Questions? Joe Kepley Blend Interactive http://blendinteractive.com http://github.com/blendinteractive http://joind.in/8102 @joekepley

Editor's Notes

  1. - Automated releases - version control - Agile practices we know from dev can be used in server/config management
  2. Manual - tough to do same way twice, time consuming Build scripts - Brittle (tied to environment), hard to follow