Permalink
Browse files

Remove all of the materials.

This training content is being deprecated
  • Loading branch information...
1 parent dd718a2 commit 8fd0c1340f742672e78ab05cc2b6e3e321103651 @nathenharvey nathenharvey committed Oct 18, 2013
Showing with 0 additions and 25,827 deletions.
  1. +0 −28 CONTRIBUTING
  2. +0 −7 Gemfile
  3. +0 −134 Rakefile
  4. +0 −74 guides/instructor-setup.md
  5. +0 −99 guides/prerequisites.md
  6. +0 −9 guides/student-exercises.md
  7. +0 −42 guides/student-exercises/adding-a-new-node.md
  8. +0 −80 guides/student-exercises/adding-cookbooks.md
  9. +0 −96 guides/student-exercises/anatomy-of-a-chef-run.md
  10. +0 −72 guides/student-exercises/chef-node.md
  11. +0 −92 guides/student-exercises/cookbooks-recipes-resources.md
  12. +0 −50 guides/student-exercises/data-bags.md
  13. +0 −61 guides/student-exercises/example-cookbook.md
  14. +0 −87 guides/student-exercises/getting-started.md
  15. +0 −30 guides/student-exercises/introduction-to-search.md
  16. +0 −8 guides/student-exercises/lwrp-introduction.md
  17. +0 −104 guides/student-exercises/more-cookbooks.md
  18. +0 −103 guides/student-exercises/multiple-nodes-and-search.md
  19. +0 −38 guides/student-exercises/node-attributes.md
  20. +0 −78 guides/student-exercises/resources-in-depth.md
  21. +0 −45 guides/student-exercises/roles.md
  22. +0 −4 guides/student-exercises/troubleshooting.md
  23. +0 −20 image-src/README.md
  24. +0 −1,334 image-src/anatomy-of-chef-run.graffle
  25. +0 −2,392 image-src/authn-flow.graffle
  26. +0 −1,695 image-src/bare-metal-cloud.graffle
  27. +0 −1,351 image-src/bare-metal.graffle
  28. +0 −1,161 image-src/chef-basics-cookbook.graffle
  29. +0 −2,563 image-src/chef-server-arch.graffle
  30. +0 −856 image-src/chef-server-url-config.graffle
  31. +0 −3,559 image-src/complex-infrastructure.graffle
  32. +0 −1,416 image-src/doing-their-job.graffle
  33. +0 −1,680 image-src/integrated-systems.graffle
  34. +0 −306 image-src/third-party-services.graffle
  35. +0 −301 slides/additional-topics/01_slide.md
  36. +0 −324 slides/anatomy-of-a-chef-run/01_slide.md
  37. +0 −181 slides/base.css
  38. +0 −120 slides/chef-development/01_slide.md
  39. +0 −472 slides/chef-node/01_slide.md
  40. +0 −405 slides/cookbooks-recipes-resources/01_slide.md
  41. +0 −720 slides/getting-started/01_slide.md
  42. BIN slides/images/5-free-nodes.png
  43. BIN slides/images/anatomy-of-chef-run-0.png
  44. BIN slides/images/anatomy-of-chef-run-1.png
  45. BIN slides/images/anatomy-of-chef-run-2.png
  46. BIN slides/images/anatomy-of-chef-run-3.png
  47. BIN slides/images/anatomy-of-chef-run-4.png
  48. BIN slides/images/anatomy-of-chef-run-5.png
  49. BIN slides/images/anatomy-of-chef-run-6.png
  50. BIN slides/images/anatomy-of-chef-run.png
  51. BIN slides/images/anatomy-of-chef-run/anatomy-of-chef-run-001.png
  52. BIN slides/images/anatomy-of-chef-run/anatomy-of-chef-run-002.png
  53. BIN slides/images/anatomy-of-chef-run/anatomy-of-chef-run-003.png
  54. BIN slides/images/anatomy-of-chef-run/anatomy-of-chef-run-004.png
  55. BIN slides/images/anatomy-of-chef-run/anatomy-of-chef-run-005.png
  56. BIN slides/images/anatomy-of-chef-run/anatomy-of-chef-run-006.png
  57. BIN slides/images/anatomy-of-chef-run/anatomy-of-chef-run-007.png
  58. BIN slides/images/anatomy-of-chef-run/anatomy-of-chef-run-008.png
  59. BIN slides/images/anatomy-of-chef-run/anatomy-of-chef-run-009.png
  60. BIN slides/images/anatomy-of-chef-run/anatomy-of-chef-run-010.png
  61. BIN slides/images/anatomy-of-chef-run/anatomy-of-chef-run-011.png
  62. BIN slides/images/anatomy-of-chef-run/anatomy-of-chef-run-full.png
  63. BIN slides/images/authn-flow.png
  64. BIN slides/images/bare-metal-cloud.png
  65. BIN slides/images/bare-metal.png
  66. BIN slides/images/chef-basics-cookbook.png
  67. BIN slides/images/chef-server-arch.png
  68. BIN slides/images/chef-server-url-config.png
  69. BIN slides/images/complex-infrastructure.png
  70. BIN slides/images/doing-their-job.png
  71. BIN slides/images/email-verified.png
  72. BIN slides/images/free-trial.png
  73. BIN slides/images/generate-knife-config.png
  74. BIN slides/images/generate-validation-key.png
  75. BIN slides/images/getting-cookbooks.png
  76. BIN slides/images/hosted-chef-signup.png
  77. BIN slides/images/integrated-systems.png
  78. BIN slides/images/manage-console-user-login.png
  79. BIN slides/images/next-steps.png
  80. BIN slides/images/oc-chef-logo.png
  81. BIN slides/images/policy-driven-process.png
  82. BIN slides/images/select-organizations.png
  83. BIN slides/images/signup-about.png
  84. BIN slides/images/third-party-services.png
  85. BIN slides/images/user-get-private-key.png
  86. BIN slides/images/working-with-chef.png
  87. +0 −408 slides/introduction/01_slide.md
  88. +0 −317 slides/just-enough-ruby-for-chef/01_slide.md
  89. +0 −495 slides/lwrp-introduction/01_slide.md
  90. +0 −376 slides/more-cookbooks/01_slide.md
  91. +0 −377 slides/multiple-nodes-and-search/01_slide.md
  92. +0 −842 slides/resources-in-depth/01_slide.md
  93. +0 −193 slides/roles/01_slide.md
  94. +0 −33 slides/showoff.json
  95. +0 −57 slides/shrink.js
  96. +0 −532 slides/troubleshooting/01_slide.md
View
@@ -1,28 +0,0 @@
-These materials are an Opscode open source project. They are
-dual-licensed under Creative Commons and the Apache License, Version
-2.0. See the LICENSE file for more information about your rights.
-
-In order to contribute changes to the supporting code and significant
-example code on slides, we require a contributor license
-agreement. Please see the following wiki document for more
-information:
-
-* http://wiki.opscode.com/display/chef/How+to+Contribute
-
-A contributor license agreement is not required to contribute changes
-to the slides, guides or notes that are placed under Creative Commons
-license. However, for tracking purposes we ask that a ticket in JIRA
-is created, and noted in the commit message for the change.
-
-* http://tickets.opscode.com/browse/FND
-
-For example:
-
- git commit -m '[FND-##] - fixed typos in getting started'
-
-When making changes in the repository, please do not modify the
-"showoff.json" file. Also please do not replace images without new
-sources such as OmniGraffle.
-
-If you would like to be credited for contributions, add your name to
-the __Authors__ section of the README.md.
View
@@ -1,7 +0,0 @@
-source :rubygems
-gem "rake"
-gem "redcarpet"
-gem "pdfkit"
-gem "showoff", :git => "git://github.com/jtimberman/showoff.git", :branch => "chef-fnd"
-gem "chef", "~> 0.10.0"
-gem "knife-ec2"
View
134 Rakefile
@@ -1,134 +0,0 @@
-# -*- coding: utf-8 -*-
-require "fileutils"
-require 'redcarpet'
-require 'json'
-
-desc "Serve the presentation"
-task :present do
- Dir.chdir("slides")
- sh "bundle exec showoff serve"
-end
-
-desc "Generate static HTML"
-task :static do
- Dir.chdir("slides")
- sh "bundle exec showoff static"
- sh "zip static.zip static/*"
-end
-
-desc "Create the directory and initial slides (with SECTION=name)"
-task :mksection do
- section = ENV['SECTION']
- slides_dir = File.join(File.dirname(__FILE__), "slides", section)
- guides_dir = File.join(File.dirname(__FILE__), "guides", "student-exercises")
- puts "** Creating section #{section} **"
- FileUtils.mkdir_p(slides_dir)
- FileUtils.mkdir_p(guides_dir)
- unless File.exists?(File.join(slides_dir, "01_slide.md"))
- puts "- populating slide template #{slides_dir}/01_slide.md"
- File.open(File.join(slides_dir, "01_slide.md"), "a+") do |f|
- f.puts "# #{section_header(section)}\n\n"
- f.puts "Section Objectives:\n"
- f.puts copyright_header
- f.puts "# Summary\n\n\n"
- f.puts "# Questions\n\n*\n\n"
- f.puts "# Additional Resources\n\n*\n\n"
- f.puts "# Lab Exercise\n\n"
- f.puts section_header(section)
- end
- puts "- populating exercises #{File.join(guides_dir, section)}.md"
- File.open(File.join(guides_dir, "#{section}.md"), "a+") do |g|
- g.puts exercise_guide(section)
- end
- end
-end
-
-desc "Generate HTML out of Markdown (Slides)"
-task :md_to_html do
- html_dir = File.join("slides", "html")
- sections = showoff_sections
- FileUtils.mkdir_p(html_dir)
- sections.each_with_index do |s,i|
- fn = File.join(html_dir, "section-#{i}-#{s}.html")
- %x[grep -v "@@@" slides/#{s}/01_slide.md | redcarpet > #{fn}]
- %x[cp #{s}/*.png html 2>/dev/null]
- File.open(File.join("slides", "html", "index.html"), "a+") do |h|
- h.puts html_list_item s, fn
- end
- end
-end
-
-desc "Generate HTML out of Markdown (Guides)"
-task :student_guide do
- guides_dir = File.join("guides", "student-exercises")
- sections = showoff_sections
- markdown = []
- FileUtils.mkdir_p(html_dir)
- sections.each do |s|
- fn = File.join(guides_dir, "#{s}.md")
- markdown << IO.read(fn) if File.exists?(fn)
- end
- File.open(File.join(html_dir, "Student-Exercises.html"), "a+") do |h|
- h.puts Redcarpet::Markdown.new(Redcarpet::Render::HTML).render(markdown.join("\n<hr />\n"))
- end
-end
-
-desc "Generate HTML Student Prerequisites"
-task :student_prereq do
- File.unlink(File.join(html_dir, "Student-Prerequisites.html"))
- markdown = IO.read(File.join("guides", "prerequisites.md"))
- FileUtils.mkdir_p(html_dir)
- File.open(File.join(html_dir, "Student-Prerequisites.html"), "a+") do |h|
- h.puts Redcarpet::Markdown.new(Redcarpet::Render::HTML).render(markdown)
- end
-end
-
-desc "Count the number of slides per section"
-task :slide_counter do
- sections = showoff_sections
- puts "** Number of slides in each section:"
- sections.each do |section|
- puts "- #{section}: #{line_count(File.join("slides", section, "01_slide.md"))}"
- end
-end
-
-def html_dir
- File.join(File.dirname(__FILE__), "guides", "html")
-end
-
-def line_count(slides)
- count = 0
- begin
- f = File.open(slides)
- rescue
- return "section does not exist, create with `mksection`"
- end
- f.each do |line|
- count += 1 if line =~ /^# /
- end
- count
-end
-
-def html_list_item(section, filename)
- %Q{<li><a href="../#{filename}">#{section}</a></li>}
-end
-
-def showoff_sections
- JSON.parse(IO.read(File.join("slides", "showoff.json")))['sections']
-end
-
-def section_header(section = "welcome")
- lcase = %w{an of the a}
- parts = section.split(/[-_]/)
- header = Array(parts).flatten.map {|p| lcase.include?(p) ? p : p.capitalize }
- header.join(' ')
-end
-
-def copyright_header
- "\n.notes These course materials are Copyright © 2010-2012 Opscode, Inc. All rights reserved.
-This work is licensed under a Creative Commons Attribution Share Alike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/us; or send a letter to Creative Commons, 171 2nd Street, Suite 300, San Francisco, California, 94105, USA.\n\n"
-end
-
-def exercise_guide(section = "welcome")
- "#{section_header(section)}\n======================\n\n## Objectives\n\n## Acceptance Criteria\n\n## Questions\n"
-end
View
@@ -1,74 +0,0 @@
-Description
-===========
-
-This guide describes requirements set up an environment that Chef
-Fundamentals students use for hands on exercises.
-
-Specifics are written for Amazon EC2. If another environment is
-used, then adjust accordingly based on the requirements.
-
-Base Operating System
-=====================
-
-The target systems used by the Chef Fundamentals exercises are assumed
-to be Ubuntu Server 10.04 or higher.
-
-Required Network Access
-=======================
-
-Students will configure systems that need to be accessed on the
-public-facing IP address through the following TCP ports:
-
-* 22
-* 80 and 443
-* 22002
-
-Login Credentials
-=================
-
-Students will log into the systems with a common username and
-password. For consistency, use the password "opstrain_0150".
-
-EC2 Implementation
-==================
-
-## Create Security Group
-
-Use the EC2 API tools to manage the `fnd` security group as described
-below. If multiple Chef Fundamentals classes are happening at the same
-time and using the same EC2 account, modify the security group name
-accordingly. It may be desirable to use a different region, e.g. when
-conducting a class in Europe or Asia use the appropriate
-region. Append "`--region REGION`" to the commands.
-
- export labgroup=fnd
- ec2addgrp ${labgroup} -d ${labgroup}
- ec2auth ${labgroup} -P tcp -s 0.0.0.0/0 -p 22
- ec2auth ${labgroup} -P tcp -s 0.0.0.0/0 -p 443
- ec2auth ${labgroup} -P tcp -s 0.0.0.0/0 -p 22002
- ec2auth ${labgroup} -P tcp -s 0.0.0.0/0 -p 8080
- ec2auth ${labgroup} -P tcp -s 0.0.0.0/0 -p 80
-
-## Bootstrap Templates
-
-Use the bootstrap template found in `.chef/bootstrap/fnd-lab.erb` to
-create new instances with the login credentials set. For example, this
-will configure the `ubuntu` user to log in with the password "opstrain_0150".
-
-## Launch Instances
-
-This step is used for the systems which will be used by students as
-nodes to configure. For each student, execute the following `knife
-ec2` command.
-
- knife ec2 server create \
- -f m1.small -I $lucid_small \
- -x ubuntu -d fnd-lab -G ${labgroup}
-
-If another region is required, append "`--region REGION`" and "`-Z
-ZONE`" to specify the region and availability zone in that region.
-
-Replace "$lucid_small" with the current AMI from Canonical's list of
-AMIs for Ubuntu:
-
-* http://uec-images.ubuntu.com/releases/10.04/release/
View
@@ -1,99 +0,0 @@
-This guide describes prerequisites that students should meet in order
-to get the most out of Chef Fundamentals.
-
-# General Requirements
-
-Students should be familiar with basic to intermediate system
-administration topics including the following:
-
-* Command-line familiarity with Unix/Linux shells or Windows
- Powershell
-* System resource concepts like package, service and user management
-* Key-based authentication (e.g., RSA/SSH)
-* Version control systems (e.g., Git, Mercurial, Subversion)
-* Knowledge of cloud computing or virtualization concepts such as
- API-driven compute
-
-Students should have basic working knowledge with at least one third
-generation programming language such as Perl, Python, Php or Ruby.
-
-* Basic data structures (string, numbers, array, hash or language
- equivalent)
-* Conditionals (if/unless, case)
-* Loops (for/foreach, while, or language equivalent)
-
-# Workstation Requirements
-
-Student Exercises will run from a management workstation
-system. Students should install non-Chef required software before the
-class starts.
-
-* SSH/SCP (OpenSSH, puTTY/WinSCP or equivalent)
-* [Git](http://git-scm.org)
-
-On Unix/Linux/OS X systems:
-
-* C/C++ compiler, build environment (`build-essential`, Xcode, or
- platform equivalent).
-
-If Chef is not already installed, use [Opscode's Full Stack Chef
-installer](http://www.opscode.com/chef/install). This will also be
-covered during the introductory portion of the course.
-
-### Mac OS X Users
-
-**If you do not already have Xcode installed**
-
-Recently, Apple made Xcode 4.3's command-line tools available as a
-separate download from the full Xcode package. If you do not already
-have Xcode installed, you can use this installation instead, as it is
-a 165Mb download instead of several gigabytes. Log in with your Apple
-ID here:
-
-* https://developer.apple.com/downloads/index.action
-
-And select, "Command Line Tools for Xcode" to download the dmg.
-
-## Additional Requirements
-
-The instructor may provide virtual machine image(s) in the form of a
-VMDK format disk image which will be the target system(s) to configure
-with Chef during the hands on exercises. This can be imported into
-VMware Fusion, Player or Workstation, or otherwise indicated by the
-instructor. The image should be downloaded before the course starts,
-and imported into the virtual machine hypervisor as indicated by the
-instructor.
-
-They will also provide additional details such as the platform of the
-virtual machine, and the login information.
-
-# Chef Server Requirements
-
-Students may already have a Chef Server, whether it is Opscode Hosted
-Chef, Opscode Private Chef or an Open Source Chef Server. The
-exercises in the course will focus on using Opscode Hosted Chef unless
-otherwise prior arrangements have been made by the instructor with the
-students.
-
-## Sign up for Opscode Hosted Chef
-
-It is recommended that students do not use the same Chef Server that
-their production infrastructure might be using. It is relatively quick
-and easy to sign up for Opscode Hosted Chef, so this is done during
-the first exercises of the course. Students are welcome to sign up
-ahead of time. The signup process will also provide instructions how
-to set up an organization which you will use for your Chef
-Server. When creating the organization, select the Free trial, which
-you may continue to use for free for further studies and to manage up
-to 5 nodes when the class is over.
-
-* http://www.opscode.com/hosted-chef/
-
-# Need Help?
-
-If you are taking this course from Opscode directly and need help or
-have questions above this document, please email support@opscode.com with
-"Chef Fundamentals Prerequisites" in the subject line.
-
-If you are taking this course from an independent Chef Fundamentals
-trainer, contact your instructor for assistance.
@@ -1,9 +0,0 @@
-The current Student Exercise guide is `handholder-exercises.md`. These
-include more "hand holding" to assist students, but don't facilitate
-learning and reinforcement. As the course materials stand, use these
-exercises for conducting the course hands on exercises.
-
-Student exercises are being rewritten and will be in the
-`student-exercises` directory, one file per section of the same
-name. The course materials need to be updated to match how the
-exercises will be conducted.
@@ -1,42 +0,0 @@
-Adding a New Node
-======================
-
-## Objectives
-
-* Use `knife bootstrap` to set up a new node as a load balancer in front of the existing target node.
-
-## Acceptance Criteria
-
-* `haproxy` cookbook in repository.
-* `load_balancer` role to apply `haproxy` recipe that uses Search.
-* Second target system is bootstrapped with `knife bootstrap` and configured as a load balancer.
-* Answered questions.
-
-## Acquire Haproxy Cookbook
-
-Download the `haproxy` cookbook from the Chef Community Site. We're going to use the `app_lb` recipe. Review the recipe, and the attributes. Upload the cookbook to the Chef Server.
-
-## Create Load Balancer Role
-
-Create a new role named `load_balancer`. It should use the `haproxy` cookbook's `app_lb` recipe. The `haproxy` cookbook uses the attribute `member_port` to specify what port the web servers are listening to. Set this attribute in the role to "80".
-
-Upload the role to the Chef Server.
-
-## Bootstrap new Node
-
-Your instructor will provide a second target system's IP address. Use the `knife bootstrap` command to automatically set up the system with the `base` and `load_balancer` roles with Chef.
-
-Once complete, navigate to the public IP address of the load balancer system in your web browser on port 80. Then navigate to the same IP on port 22002.
-
-## Questions
-
-How does the `haproxy::app_lb` recipe determine what nodes to search? Can it be modified? If so, where would that be done?
-
-
-How many nodes have HTTP traffic balanced by haproxy?
-
-
-What other attributes does the haproxy cookbook have?
-
-
-The haproxy cookbook has a `default` recipe. How does it differ from the `app_lb` recipe?
Oops, something went wrong.

0 comments on commit 8fd0c13

Please sign in to comment.