/challenges-chef

:book: Challenges Your Chef Skills By Solving Real Questions.

Primary LanguageRuby

challenges-chef: Chef Case study from dummy to pro

Build Status PRs Welcome

LinkedIn slack Github

File me tickets or star the repo.

Table of Contents

Challenges Your Chef Skills By Solving Real Questions.

Similar Challenges: https://www.dennyzhang.com/battle

Scenarios

Scenario-101: Chef HelloWorld I

  • Objective: Create a dummy cookbook, and test deployment in docker
  • Requirements:
1. Use docker container to start a env with chef pre-installed
2. Create a dummy cookbook and apply it

Scenario-102: Chef HelloWorld II

  • Objective: Pure VM deployment
  • Requirements:
1. Start a VM, install chef facility
2. Create a dummy cookbook to install jq package
3. Before install jq, run "apt-get update" by chef. So you need berkshelf.
4. Enforce rubocop and foodcritic for code static check

Scenario-103: Chef HelloWorld III

  • Objective: Setup chef server and chef client
  • Requirements:
1. Start 3 containers to run chef server, knife workstation and chef client
2. Install and configure knife
3. From knife node run chef deployment in chef client node

Scenario-201: Enforce TDD For Your Chef Cookbooks I

  • Objective: Test your cookbooks. Run kitchen docker in your laptop.
  • Requirements:
1. Use kitchen to test your cookbook: start a container and test the logic
2. Enforce kitchen verify logic via serverspec

Scenario-202: Enforce TDD For Your Chef Cookbooks II

  • Objective: Deploy for 3 scenarios: docker, local VM and public cloud
  • Requirements:
1. Use Kitchen to test local vm deployment
2. Use Kitchen to test docker deployment
3. Use Kitchen to test cloud VM deployment

Scenario-301: Use Chef To Deploy Jenkins I

  • Objective: Use chef to deploy one common service for real
  • Requirements:
1. Deploy a standalone jenkins by chef
2. Chef shall add one jenkins user
3. Chef shall add a dummy job with slack notification enabled
4. Run deployment in docker, vagrant and EC2
5. Test both Ubuntu 14.04 and Centos 7

Scenario-302: Use Chef To Deploy Jenkins II

  • Objective: More Jenkins customization
  • Requirements:
1. For better security, only registered user can login
2. For better security, Jenkins listen on port 18080, instead of 8080
3. When Jenkins is down, get alerts

Scenario-303: Use Chef To Deploy Jenkins II

  • Objective: More Jenkins customization
  • Requirements:
1. Use Jenkinsfile to create a Jenkins pipeline
2. Enable and configure ThinBackup

Scenario-401: Use Chef To Deploy 2 Nodes Jenkins I

  • Objective: Test and verify the deployment for both all-in-one and 2 nodes cluster
  • Requirements:
1. Test 2 nodes jenkins cluster deployment in docker
2. Use Jenkinsfile to configure Jenkins
3. Define Jenkins pipeline

Highlights

  • More Resources:
https://github.com/chef-cookbooks/jenkins
https://github.com/jenkinsci/pipeline-examples

Contributors: Give People Credits

Below are folks who have contributed via GitHub!

License