Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions 1_MongoDB/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,17 @@ You should be able to explain the following:
## Instructions

* Translate the MongoDB installation instructions from `install.rb` into Chef code that completes the installation
* Use the Chef [Resources Reference](https://docs.chef.io/resources.html) to find the most appropriate Chef resources to use for each task
* Use the Chef [Resources Reference](https://docs.chef.io/resources/) to find the most appropriate Chef resources to use for each task
* Once you feel you have met the success criteria outlined above, send a link to your GitHub.com repo to the person coordinating these workshops
* Provide instructions for us to run your cookbook so that we can test your work.

There are a couple of ways that you can write, test and run your cookbook.

* Write and test your cookbook locally using Test Kitchen via Vagrant + Virtual Box, or the cloud platform of your choice.
* Steps for this option are outlined [here](https://learn.chef.io/tutorials/local-development/)
* Steps for this option are outlined [here](https://learn.chef.io/courses/course-v1:chef+LocalDev101+Perpetual/course/)
* Develop directly on your RHEL-based virtual machine
* Write your cookbook in vim, nano or emacs, and run `chef-client` in `--local-mode`
* The ChefDK or Chef Client must be installed on the VM first
* The Chef Workstation or Chef Client must be installed on the VM first

## Suggested Resources

Expand Down
6 changes: 3 additions & 3 deletions 2_Tomcat/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,17 @@ You should be able to explain the following:
## Instructions

* Translate the Tomcat installation instructions from `INSTRUCTIONS.rb` into Chef code that completes the installation and configuration
* Use the Chef [Resources Reference](https://docs.chef.io/resources.html) to find the most appropriate Chef resources to use for each task
* Use the Chef [Resources Reference](https://docs.chef.io/resources/) to find the most appropriate Chef resources to use for each task
* Once you feel you have met the success criteria outlined above, send a link to your GitHub.com repo to the person coordinating these workshops on your behalf
* Provide instructions for us to run your cookbook so that we can test your work.

There are a couple of ways that you can write, test and run your cookbook.

* Write and test your cookbook locally using Test Kitchen via Vagrant + Virtual Box, or the cloud platform of your choice.
* Steps for this option are outlined [here](https://learn.chef.io/tutorials/local-development/)
* Steps for this option are outlined [here](https://learn.chef.io/courses/course-v1:chef+LocalDev101+Perpetual/course/)
* Develop directly on your RHEL-based virtual machine
* Write your cookbook in vim, nano or emacs, and run `chef-client` in `--local-mode`
* The ChefDK or Chef Client must be installed on the VM first
* The Chef Workstation or Chef Client must be installed on the VM first

## Suggested Resources

Expand Down
2 changes: 1 addition & 1 deletion 3_Bonus/Awesome_Appliance_Repair/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ There are a couple of ways that you can write, test and run your cookbook.
* Steps for this option are outlined [here](https://learn.chef.io/tutorials/local-development/)
* Develop directly on your Ubuntu-based virtual machine
* Write your cookbook in vim, nano or emacs, and run `chef-client` in `--local-mode`
* The ChefDK or Chef Client must be installed on the VM first
* The Chef Workstation or Chef Client must be installed on the VM first

## Suggested Resources

Expand Down
6 changes: 3 additions & 3 deletions 3_Bonus/Middleman/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,17 @@ You should be able to explain the following:
>NOTE: This workshop uses Ubuntu 12.04 or newer and NOT a RHEL-based distribution

* Translate the middleman installation `INSTRUCTIONS.rb` into Chef code that completes the installation and configuration
* Use the Chef [Resources Reference](https://docs.chef.io/resources.html) to find the most appropriate Chef resources to use for each task
* Use the Chef [Resources Reference](https://docs.chef.io/resources/) to find the most appropriate Chef resources to use for each task
* Once you feel you have met the success criteria outlined above, send a link to your GitHub.com repo to the person coordinating these workshops on your behalf
* Provide instructions for us to run your cookbook so that we can test your work.

There are a couple of ways that you can write, test and run your cookbook.

* Write and test your cookbook locally using Test Kitchen via Vagrant + Virtual Box, or the cloud platform of your choice.
* Steps for this option are outlined [here](https://learn.chef.io/tutorials/local-development/)
* Steps for this option are outlined [here](https://learn.chef.io/courses/course-v1:chef+LocalDev101+Perpetual/course/)
* Develop directly on your Ubuntu-based virtual machine
* Write your cookbook in vim, nano or emacs, and run `chef-client` in `--local-mode`
* The ChefDK or Chef Client must be installed on the VM first
* The Chef Workstation or Chef Client must be installed on the VM first

## Suggested Resources

Expand Down
Binary file not shown.
36 changes: 36 additions & 0 deletions 4_Windows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Install Windows 2019 Server

Set up a new windows 2019 servers in the cloud or VM.

## Goal

Use Chef to successfully detect and remediate controls listed in attached Microsoft_Windows_Server_2019_Security_Benchmark.pdf file.

## Success Criteria

You should be prepared and able to demonstrate the following:

* Your Chef inspec profiles successfully executes on your target node without errors. It should the detect the controls that are passed or failed.
* Your Chef remediate cookbook successfully executes on your target node without errors to remdiate all controls in the given Microsoft_Windows_Server_2019_Security_Benchmark.pdf.
* Your Chef cookbook is portable and can be run by Chef to validate your work. Please include any instructions or assumptions needed to successfully execute your cookbook.
* You should break the server configuration manually to fail to inspec test and remediate the failed controls with the cookbook.
* Your GitHub.com source code repository shows the history of your work

You should be able to explain the following:

* Steps taken to achieve the end result
* Build and test process of Chef code
* Tools and resources used in the process

>Note: You are NOT required to use Chef Server for this exercise, but you may if that is your preference.

## Instructions

* Use the Chef [Resources Reference](https://docs.chef.io/resources/) to find the most appropriate Chef resources to use for each task.
* Use the Chef [Inspec Resources](https://docs.chef.io/inspec/resources/) to find the most appropriate Chef Inspec resources to use for each control.
* Once you feel you have met the success criteria outlined above, send a link to your GitHub.com repo to the person coordinating these workshops on your behalf
* Provide instructions for us to run your cookbook so that we can test your work.

## Suggested Resources

* Use the [Chef Documentation](http://docs.chef.io) to identify and use resources that will help you model the desired state of your infrastructure.
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@

## Instructions

Complete the mandatory workshops below. These may be completed in any order, but it the recommendation is `1_MongoDB` then `2_Tomcat`.
Complete the mandatory workshops below. These may be completed in any order, but it the recommendation is `1_MongoDB`, `2_Tomcat`, and then `4_Windows`.

* `1_MongoDB`
* `2_Tomcat`
* `3_Bonus`
* `4_Windows`

Each workshop includes instructions stating the goal of the workshop, the success criteria, and, in some cases, basic instructions. Basic instructions are provided with the understanding that those executing the workshops may not have any practical experience with the specific technologies involved.

If the first two workshops are completed successfully, additional bonus material from `3_Bonus` may be completed. This is extra credit material and additional consideration will be given if it is attempted and/or completed successfully.
If the `1_MongoDB`,`2_Tomcat` and `4_Windows` workshops are completed successfully, additional bonus material from `3_Bonus` may be completed. This is extra credit material and additional consideration will be given if it is attempted and/or completed successfully.

## Expectations

Expand All @@ -33,6 +34,7 @@ There are no correct or incorrect working solutions to each of the workshops. I
* Expand the functionality of the previous two workshops
* Awesome Appliance Repair - A simple, python-based web application that utilizes Apache for a web server and MySQL for a database.
* Middleman - A static site generator using all the shortcuts and tools in modern web development. It is a ruby (sinatra) application.
* **4_Windows:** Write inspec tests to audit windows 2019 servers and write a cookbook to remediate all tests give in the attached PDF.

## Pre-requisites

Expand All @@ -45,7 +47,7 @@ You will need some experience using Chef such as:

You will also need to install a few pieces of software on your local workstation:

* The [ChefDK](https://downloads.chef.io/chefdk) to develop and test your Chef code.
* The [Chef Workstation](https://downloads.chef.io/products/workstation) to develop and test your Chef code.
* A text editor to create and edit your Chef code (i.e. [Atom](https://atom.io), [VisualStudio Code](https://code.visualstudio.com), [SublimeText](https://www.sublimetext.com), or other)
* A free [GitHub.com](https://github.com) account to upload your work
* A virtual machine running a RHEL7 (or later) based linux distribution (RHEL, CentOS, Fedora, etc.) to serve as a test system
Expand Down