/aws-devsecops-workshop

In this workshop we will build a pipeline for a sample WordPress site in a stack. We will explore how to validate, lint and test templates, and dive deeper in tools that help you enforce compliance and network analysis, together with your development pipeline, for a full DevSecOps CI/CD.

Primary LanguageHTML

DevSecOps on AWS

This library is licensed under the MIT-0 License. See the LICENSE file.

In this workshop we will build a pipeline for a sample WordPress site in a stack. We will explore how to validate, lint and test templates, and dive deeper in tools that help you enforce compliance and network analysis, together with your development pipeline, for a full DevSecOps CI/CD.

.
├── metadata.yml                      <-- Metadata file with descriptive information about the workshop
├── README.md                         <-- This instructions file
├── deck                              <-- Directory for presentation deck
├── resources                         <-- Directory for workshop resources
│   ├── code                          <-- Directory for workshop modules code
│   ├── policies                      <-- Directory for workshop modules IAM Roles and Policies
│   └── templates                     <-- Directory for workshop modules CloudFormation templates
└── workshop                          
    ├── buildspec.yml                 <-- AWS CodeBuild build script for building the workshop website
    ├── config.toml                   <-- Hugo configuration file for the workshop website
    └── content                       <-- Markdown files for pages/steps in workshop
    └── static                        <-- Any static assets to be hosted alongside the workshop (ie. images, scripts, documents, etc)
    └── themes                        <-- AWS Style Hugo Theme (Do not edit!)

Requirements

  1. Clone this repository.
  2. Install Hugo locally.

What's Included

This project the following folders:

  • deck: The location to store your presentation materials, if not already stored centrally in a system like KnowledgeMine or Wisdom.
  • resources: Store any example code, IAM policies, or Cloudformation templates needed by your workshop here.
  • workshop: This is the core workshop folder. This is generated as HTML and hosted for presentation for customers.

Navigate to the workshop directory

All command line directions in this documentation assume you are in the workshop directory. Navigate there now, if you aren't there already.

cd workshop

Create your first chapter page

Chapters are pages that contain other child pages. It has a special layout style and usually just contains a brief abstract of the section.

Discover what this template is all about and the core concepts behind it.

This template provides archetypes to create skeletons for your workshop. Begin by creating your first chapter page with the following command

cd workshop
hugo new --kind chapter intro/_index.en.md

By opening the given file, you should see the property chapter=true on top, meaning this page is a chapter.

By default all chapters and pages are created as a draft. If you want to render these pages, remove the property draft = true from the metadata.

Create your first content pages

Then, create content pages inside the previously created chapter. Here are two ways to create content in the chapter:

hugo new intro/first-content.en.md
hugo new intro/second-content/_index.en.md

Feel free to edit thoses files by adding some sample content and replacing the title value in the beginning of the files.

Launching the website locally

Launch by using the following command:

hugo serve

Go to http://localhost:1313

You should notice three things:

  1. You have a left-side Intro menu, containing two submenus with names equal to the title properties in the previously created files.
  2. The home page explains how to customize it by following the instructions.
  3. When you run hugo serve, when the contents of the files change, the page automatically refreshes with the changes. Neat!

Alternatively, you can run the following command in a terminal window to tell Hugo to automatically rebuild whenever a file is changed. This can be helpful when rapidly iterating over content changes.

hugo serve -D