File me tickets or star the repo.
Challenges Your Chef Skills By Solving Real Questions.
- Scenarios
- Scenario-101: Chef HelloWorld I
- Scenario-102: Chef HelloWorld II
- Scenario-103: Chef HelloWorld III
- Scenario-201: Enforce TDD For Your Chef Cookbooks I
- Scenario-202: Enforce TDD For Your Chef Cookbooks II
- Scenario-301: Use Chef To Deploy Jenkins I
- Scenario-302: Use Chef To Deploy Jenkins II
- Scenario-303: Use Chef To Deploy Jenkins II
- Scenario-401: Use Chef To Deploy 2 Nodes Jenkins I
- Highlights
- Contributors: Give People Credits
- License
Similar Challenges: https://www.dennyzhang.com/battle
- 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
- See more: Scenario-101
- 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
- See more: Scenario-102
- 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
- See more: Scenario-103
- TODO
- 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
- See more: Scenario-201
- 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
- See more: Scenario-202
- 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
- See more: Scenario-301
- 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
- See more: Scenario-302
- Objective: More Jenkins customization
- Requirements:
1. Use Jenkinsfile to create a Jenkins pipeline
2. Enable and configure ThinBackup
- See more: Scenario-303
- TODO
- 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
- See more: Scenario-303
- TODO
- More Resources:
https://github.com/chef-cookbooks/jenkins
https://github.com/jenkinsci/pipeline-examples
Below are folks who have contributed via GitHub!
- Code is licensed under MIT License.