Coder Social home page Coder Social logo

nwea's Introduction

NWEA Tech Quiz

Usage and requirements:

Solution works on a default install CentOS 7 installation with puppet installed.

Install the following puppet modules or use the full tgz (assumes puppet is on the path):

  1. sudo puppet module install jfryman-nginx
  2. sudo puppet module install puppetlabs/vcsrepo
  3. sudo puppet module install puppetlabs/firewall

Run puppet apply /etc/puppetlabs/code/environments/production/manifests/site.pp

Discussion

I chose this solution because I am more familiar with Puppet than some of the other solutions including items like the firewall module. I used the vcs and nginx modules because they seem robust and widely used. I chose a role/profile pattern to try to separate two tasks: setting up a webserver and placing content on it. I like the role/profile concept because it allows solutions to go further down the chain of what is required and becomes more specific each step.

I using a role/profile pattern may be the best part of my solution. I also like using the VCS repo module because it has a nice abstraction for pulling content. This coupled with the use of environments could have content being cloned from different branches for different environments. I think I should have made some of the classes to set up nginx and pull files using git in other classes then implemented those passing parameters such as port and the host's root directory. It would simplify dealing with the firewall and selinux each time. I also would move to use hiera for more of the site specific details. Using the default node is another weakness in my solution.

Automating a task such as this is useful because creating a webserver with a site is a common pattern and such tasks would occur often. Automating it gains better consistency, eliminates waiting for someone to create it, makes it scalable, and allows the task to be part of an automated orchestration process for use throughout the development and deployment cycle.

nwea's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.