diff --git a/1_MongoDB/README.md b/1_MongoDB/README.md index 70b32d8..69a7741 100644 --- a/1_MongoDB/README.md +++ b/1_MongoDB/README.md @@ -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 diff --git a/2_Tomcat/README.md b/2_Tomcat/README.md index ad172c8..b00ac97 100644 --- a/2_Tomcat/README.md +++ b/2_Tomcat/README.md @@ -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 diff --git a/3_Bonus/Awesome_Appliance_Repair/README.md b/3_Bonus/Awesome_Appliance_Repair/README.md index 1df6907..f01bc8e 100644 --- a/3_Bonus/Awesome_Appliance_Repair/README.md +++ b/3_Bonus/Awesome_Appliance_Repair/README.md @@ -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 diff --git a/3_Bonus/Middleman/README.md b/3_Bonus/Middleman/README.md index ead01e6..05c342f 100644 --- a/3_Bonus/Middleman/README.md +++ b/3_Bonus/Middleman/README.md @@ -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 diff --git a/4_Windows/Microsoft_Windows_Server_2019_Security_Benchmark.pdf b/4_Windows/Microsoft_Windows_Server_2019_Security_Benchmark.pdf new file mode 100644 index 0000000..a213a2d Binary files /dev/null and b/4_Windows/Microsoft_Windows_Server_2019_Security_Benchmark.pdf differ diff --git a/4_Windows/README.md b/4_Windows/README.md new file mode 100644 index 0000000..3c7de4e --- /dev/null +++ b/4_Windows/README.md @@ -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. diff --git a/README.md b/README.md index 76b9ccf..b3e6aab 100644 --- a/README.md +++ b/README.md @@ -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 @@ -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 @@ -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