Skip to content

Latest commit

 

History

History
46 lines (31 loc) · 1.97 KB

cm.md

File metadata and controls

46 lines (31 loc) · 1.97 KB

Homework Part 3: Configuration Management

In this assignment we'll focus on Configuration Management tooling using best practices in the field.

Requirements

  1. A free GCP account

Description

Not all applications and use cases fit in Kubernetes well: often, a monolith application is preferred, which may run best on virtualised hardware. In these cases, prior to or during CI/CD processes we must preconfigure these machines. One of the ways to do this is by using Configuration Management tooling, such as Ansible, Chef, Puppet, SaltStack. To successfully complete this assignment,

  1. Using a Configuration Management tool of choice, configure a GCP instance as a publicly accessible web server
  2. Continue the process by securing this instance using Configuration Management, to your best knowledge. Some of the things you can configure are:
    • Firewall rules
    • SSH Server
    • SELinux, AppArmor or similar
    • Fail2Ban
    • External logging and monitoring
  3. It's not always easy or fast to test changes in a Cloud. Configure a Vagrantfile to provision a local Virtual Machine or Docker image with your configuration management code.

Success criteria

  1. Web server is accessible from public Internet
  2. Web server can be configured from scratch entirely using the manifests provided
  3. Web server changes can be tested locally using Vagrant

Artifacts to be provided

  1. URL to the configured web server
  2. Configuration manifests
  3. Discuss your choice of tooling and the reasoning for it

Bonus points

  1. Automation for the instance configuration on code changes
  2. Configure packer to create a base preconfigured image that will work as soon as it's booted on an instance