SlideShare a Scribd company logo
1 of 15
Download to read offline
CHALLENGE 4 – ATTACK!!
(RETAKE EARTH)
BY JAMES BROWN (@JBCOMPVM)
Contents
Executive Summary.......................................................................................................................................3
Requirements............................................................................................................................................3
Constraints................................................................................................................................................3
Assumptions..............................................................................................................................................3
Risks ..........................................................................................................................................................4
Conceptual Design ........................................................................................................................................5
Automation...............................................................................................................................................5
Architecture Design ......................................................................................................................................6
Physical Design..........................................................................................................................................6
Logical Design............................................................................................................................................7
Application Design ....................................................................................................................................7
Docker...................................................................................................................................................7
Puppet Master Container .......................................................................................................................12
Web server with puppet .....................................................................................................................12
Chef Container ........................................................................................................................................14
Web server with Chef .........................................................................................................................14
Backup Registry...................................................................................................................................15
Executive Summary
We have secured the human race on Mars and the Moon. It is now time to take back our home
planet. Teams of robots and humans are being sent back to Earth to secure locations across the
globe. Infrastructure will need to be setup. No IT personnel will be sent on this mission. The IT
team has been tasked with creating a test scenario. When the team lands on Earth there will be
mixed equipment and OS software available. We need to come up with multiple scenarios.
The Web server must run in a container. Two different operating systems, orchestration tools,
and webservers need to be evaluated.
No IT personnel will be sent on this mission. All instructions need to be documented and
provided to the invasion team.
If you accept this challenge, the Human race may be able to retake their home planet.
Requirements
1. Webserver must display “Welcome Back to Earth!”
2. Two different orchestrations tools
3. Two different OS
4. Two different Webservers
5. Web server must run inside a container
6. Code will be deploy by non-technical personnel
Constraints
1. Power and cooling could be hard acquire
2. The design must incorporate use of unknown or Frankenstein hardware
Assumptions
1. Internet will be available through a satellite connection
2. There will be access to a computer console (monitor, keyboard, mouse)
3. Communication link between Earth Team and IT Team needs to be established
Risks
1. Docker Hub could be offline
2. Electricity
3. Hardware left behind
4. Earth Team will not have to knowledge
5. Zombies could capture the teams
6. Aliens could aid the zombies
7. Zombies have devoured all computer systems
Conceptual Design
Automation
The IT Team been given the task to create two webserver that can be deployed on any operating
system.
Docker is widely available on Windows, Linux, and UNIX systems. Docker can run/install on top of any
operating system base. Including a virtual guess OS.
Architecture Design
Physical Design
All hardware specifications are unknown until the HAZ (Human Against Zombies) team have landed and
secured the location to bring the web server online.
When the HAZ team land on Earth, it will have been one year sense the human race had fled. With coal,
nuclear, and hydro power station offline, because of lack of supervision, electricity will be hard to come
by. HAZ will need to find small generators to power small racks of hardware.
These data centers that were left on Earth were heavily designed with compute, storage, and
networking. If these server were not maintained, all system will be offline. Systems of this size require
the correct boot order. A communication link between the HAZ team and the IT Team will need to be
established. If possible video and remote control software need to be in place to provide the utmost
support for this team.
Logical Design
Docker will be used as the base/starting point for this design. The onsite personnel will need to install
Docker on a server that has been acquired. This can be on Linux (CentOS and Ubuntu) and/or Windows.
If a virtual infrastructure is still online you can create a guest VM to install Docker.
Server vCPU RAM (GB) OS Disk (GB) Data Disk (GB) Quantity
Docker 2 8 80 200 1
Application Design
Docker
Docker is the key piece for this deployment. All server that will be deployed will run within a container.
Docker will be installed on any physical hardware system that is still running. (CentOS, Ubuntu, or
Windows)
CentOS 7 will be used for the purpose of this design. Bootable USB images of CentOS 6 and 7, Ubuntu
14.04 and 12.04, and Windows 2012 R2 will be label and brought to earth.
If for some reason, the Docker Hub is offline skip down to the Backup Image Registry section.
Linux Install (CentOS)
Requirments:
Docker requires a 64-bit installation regardless of your CentOS version. The kernel must be 3.10 or
above.
To check your current kernel version, open a terminal and use “uname –r” to display your kernel
version.
Install:
1. Log into your machine as a user with sudo or root privileges.
2. Make sure your existing yum packages are up-to-date.
a. $ sudo yum update
3. Run the Docker installation script.
a. $ curl -sSL https://get.docker.com/ | sh
b. This script adds the `docker.repo` repository and installs Docker.
4. Start the Docker daemon.
a. $ sudo service Docker start
Linux Install (Ubuntu)
Requirements:
Docker requires a 64-bit installation regardless of your CentOS version. Also, your kernel must be 3.10 at
minimum.
To check your current kernel version, open a terminal and use “uname –r” to display your kernel version
Trusty 14.04
There are no prerequisites for this version.
For Precise 12.04 (LTS)
For Ubuntu Precise, Docker requires the 3.13 kernel version. If your kernel version is older than 3.13,
you must upgrade it. Refer to this table to see which packages are required for your environment:
linux-image-generic-lts-trusty
Generic Linux kernel image. This kernel has AUFS built
in. This is required to run Docker.
linux-headers-generic-lts-trusty
Allows packages such as ZFS and Virtual Box guest
additions which depend on them. If you didn’t install the
headers for your existing kernel, then you can skip these
headers for the “trusty” kernel. If you’re unsure, you
should include this package for safety.
xserver-xorg-lts-trusty Optional in non-graphical environments without
Unity/Xorg. Required when running Docker on machine
with a graphical environment.
To learn more about the reasons for these packages,
read the installation instructions for backported kernels,
specifically the LTS Enablement Stack.
libgl1-mesa-glx-lts-trusty
To upgrade your kernel and install the additional packages, do the following:
1. Open a terminal on your Ubuntu host.
2. Update your package manager.
a. $ sudo apt-get update
3. Install both the required and optional packages.
a. $ sudo apt-get install linux-image-generic-lts-trusty
Depending on your environment, you may install more as described in the preceding table.
4. Reboot your host.
a. $ sudo reboot
For Saucy 13.10 (64 bit)
Docker uses AUFS as the default storage backend. If you don’t have this prerequisite installed, Docker’s
installation process adds it.
Install:
1. Log into your Ubuntu installation as a user with sudo privileges.
2. Verify that you have wget installed.
a. $ which wget
If wget isn’t installed, install it after updating your manager:
$ sudo apt-get update
$ sudo apt-get install wget
3. Get the latest Docker package.
a. $ wget -qO- https://get.docker.com/ | sh
Windows Install
1. Download the latest release of the Docker for Windows Installer.
2. Run the installer, which will install Docker Client for Windows, Virtual Box, Git for Windows
(MSYS-git), the boot2docker Linux ISO, and the Boot2Docker management tool.
3. Run the Boot2Docker Start shortcut from your Desktop or “Program Files → Boot2Docker for
Windows”. The Start script will ask you to enter an ssh key passphrase - the simplest (but least
secure) is to just hit [Enter].
4. The Boot2Docker Start will start a UNIX shell already configured to manage Docker running
inside the virtual machine. Run Docker version to see if it is working correctly:
5.
Running Docker
Note: if you are using a remote Docker daemon, such as Boot2Docker, then do not type the sudo before
the Docker commands shown in the documentation’s examples.
Boot2Docker Start will automatically start a shell with environment variables correctly set so you can
start using Docker right away:
Let’s try the hello-world example image. Run
$ Docker run hello-world
This should download the very small hello-world image and print a Hello from Docker.
You can find these instructions at https://docs.docker.com/installation/ .
Puppet Master Container
The first container will run Puppet. Puppet will push a Docker image that includes CentOS, Apache, PHP,
etc. Puppet will also setup an index.php website that displays “Welcome Back to Earth!”
1. Log into the Docker Server
2. Download puppet image for Docker
a. Docker pull macadmins/puppetmaster
3. Status: Downloaded newer image for macadmins/puppetmaster:latest
4. To preserve the Puppet certificates so that they’re not lost if the Puppetmaster
container is removed.
a. Docker run -d --name puppet-data --entrypoint /bin/echo
macadmins/puppetmaster Data-only container for puppetmaster
5. Start the container
a. Docker run -d --name puppetmaster -h puppet -p 8140:8140 --volumes-from
puppet-data macadmins/puppetmaster
6. We need to populate the Puppet configuration.
a. Docker exec puppetmaster cp -Rf /etc/puppet /opt/
7. If Puppet has started we should see at least on Certification
a. Docker exec puppetmaster puppet cert list –all
Web server with puppet
First add an IP address for this webserver on the Docker server. These container images below are
available on the Docker Hub. https://registry.hub.docker.com/u/jbcompvm/vdm-centos/
 ip addr add 10.251.0.5/24 dev <Ethernet name>
Apply Docker image with Puppet
1. Go to the Docker system
2. Find the container ID for Puppet mast
 Docker ps
i. Locate Container ID for puppetmaster
 Docker exec –I –t <Container ID> bash
3. Install puppet Docker module
 Puppet module install garethr-docker
4. Create web.pp <nano web.pp>
include ‘Docker’
Docker::image { ‘jbcompvmvdm-centos’:
version => ‘latest’,
image_tag => web1,
tcp_bind => ‘tcp://10.253.0.5:80’,
manage_kernel => false,
}
5. Apply web.pp (type in puppet master window)
 puppet apply web.pp
Chef Container
This container will run Chef Server. Chef will push a Docker image that includes Ubuntu, Tomcat, etc.
Chef will also setup an index.html website that displays “Welcome Back to Earth!”
We need to first add an IP address for this webserver on the Docker server
• ip addr add 10.251.0.6/24 dev <Ethernet name>
Now we need to create a running image with that IP address.
• Docker run -t -d --name chefserver -p 10.251.0.6:80:80 ubuntu
1. Log into the Docker Server
2. Download puppet image for Docker
a. Docker pull willoucom / chef-server-Docker
3. Status: Downloaded newer image for willoucom / chef-server-docker:latest
4. Start the container
a. Docker run --privileged -dti --name chef_server -p 443:443 willoucom / chef-
server-Docker
Web server with Chef
First add an IP address for this webserver on the Docker server. The container images below are
available on the Docker Hub. https://registry.hub.docker.com/u/jbcompvm/vdm-ubuntu/
 ip addr add 10.251.0.6/24 dev <Ethernet name>
Apply the Docker image with Chef
1. Go to the Docker system
2. Find the container ID for Chef Server
 Docker ps
3. Locate Container ID for chefserver
 Docker exec –I –t <Container ID> bash
4. Install Chef Docker module
 Chef gem install knife-container
5. Docker init
 Container ‘web2’ --IP 10.253.0.6/24
Backup Image Registry
If you are reading this section nothing has gone according to plan. The IT Team has planned for the
worst. In you backpack is an Intel NUC5i5RYH, 128GB USB stick and a netgear GS105NA 5-Port Gigabit
Switch.
Boot the NUC with the 128GB USB stick installed. A local Docker Registry has been installed on this NUC.
The NUC will be running CentOS 7.
ISO images of each Operating system will be stored on a second 128GB USB disk.
To attach this USB drive and configure apt-get to search the ISO (Ubuntu):
 mkdir /mnt/dvd
 /mnt/storage/iSO/debian-i386-DVD-1.iso /mnt/dvd/ udf,iso9660 loop 0 0
 deb file:/mnt/dvd/ wheezy main contrib
 mount /mnt/dvd/
 apt-get update
To attach the USB and configure yum to search the ISO (CentOS):
 mkdir /mnt/cdrom
 mount /dev/cdrom /mnt/cdrom/
 nano /etc/yum.repos.d/CentOS-Media.repo
## Add the following lines ##
file:///mnt/cdrom/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

More Related Content

What's hot

Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to Production
Patrick Chanezon
 

What's hot (20)

Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to Production
 
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzureDevoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
 
Docker
DockerDocker
Docker
 
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
 
Creating an effective developer experience on Kubernetes
Creating an effective developer experience on KubernetesCreating an effective developer experience on Kubernetes
Creating an effective developer experience on Kubernetes
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and Azure
 
Docker Security Paradigm
Docker Security ParadigmDocker Security Paradigm
Docker Security Paradigm
 
How to operate containerized OpenStack
How to operate containerized OpenStackHow to operate containerized OpenStack
How to operate containerized OpenStack
 
Kernel linux lab manual feb (1)
Kernel linux lab manual feb (1)Kernel linux lab manual feb (1)
Kernel linux lab manual feb (1)
 
Byron Schaller - Challenge 3 - Virtual Design Master
Byron Schaller - Challenge 3 - Virtual Design MasterByron Schaller - Challenge 3 - Virtual Design Master
Byron Schaller - Challenge 3 - Virtual Design Master
 
Kubernetes Hands-On Guide
Kubernetes Hands-On GuideKubernetes Hands-On Guide
Kubernetes Hands-On Guide
 
Overview of Docker
Overview of DockerOverview of Docker
Overview of Docker
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for Beginner
 
Tsunami of Technologies. Are we prepared?
Tsunami of Technologies. Are we prepared?Tsunami of Technologies. Are we prepared?
Tsunami of Technologies. Are we prepared?
 
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, DockerUnder the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container Virtualization
 
Going Production with Docker and Swarm
Going Production with Docker and SwarmGoing Production with Docker and Swarm
Going Production with Docker and Swarm
 
Docker security
Docker securityDocker security
Docker security
 
Rooting Out Root: User namespaces in Docker
Rooting Out Root: User namespaces in DockerRooting Out Root: User namespaces in Docker
Rooting Out Root: User namespaces in Docker
 

Viewers also liked

นวัตกรรม เทคโนโลยีและสารสนเทศทางการศึกษา
นวัตกรรม เทคโนโลยีและสารสนเทศทางการศึกษานวัตกรรม เทคโนโลยีและสารสนเทศทางการศึกษา
นวัตกรรม เทคโนโลยีและสารสนเทศทางการศึกษา
lalitapunchum
 
Powerpoint for pdhpe1
Powerpoint for pdhpe1Powerpoint for pdhpe1
Powerpoint for pdhpe1
Linaa86
 
Go ON North East - 26 weeks to make a difference
Go ON North East - 26 weeks to make a differenceGo ON North East - 26 weeks to make a difference
Go ON North East - 26 weeks to make a difference
Go-ON-UK
 
coca cola and minions
  coca cola and minions  coca cola and minions
coca cola and minions
jordane12
 
Photo story
Photo story Photo story
Photo story
ms6143a
 
Поисковая оптимизация (Seo): от А до Я (Promodo)
Поисковая оптимизация (Seo): от А до Я (Promodo)Поисковая оптимизация (Seo): от А до Я (Promodo)
Поисковая оптимизация (Seo): от А до Я (Promodo)
my1site
 
Presentation from St.Johnston-Ireland
Presentation from St.Johnston-IrelandPresentation from St.Johnston-Ireland
Presentation from St.Johnston-Ireland
MoAlfonsel
 

Viewers also liked (19)

Chapter 4 ventilation
Chapter 4 ventilationChapter 4 ventilation
Chapter 4 ventilation
 
นวัตกรรม เทคโนโลยีและสารสนเทศทางการศึกษา
นวัตกรรม เทคโนโลยีและสารสนเทศทางการศึกษานวัตกรรม เทคโนโลยีและสารสนเทศทางการศึกษา
นวัตกรรม เทคโนโลยีและสารสนเทศทางการศึกษา
 
Atlanta homes 101
Atlanta homes 101Atlanta homes 101
Atlanta homes 101
 
Agriculture & food sectror india Insights
Agriculture & food sectror india InsightsAgriculture & food sectror india Insights
Agriculture & food sectror india Insights
 
Powerpoint for pdhpe1
Powerpoint for pdhpe1Powerpoint for pdhpe1
Powerpoint for pdhpe1
 
Welcome to our gardens
Welcome to our gardensWelcome to our gardens
Welcome to our gardens
 
Go ON North East - 26 weeks to make a difference
Go ON North East - 26 weeks to make a differenceGo ON North East - 26 weeks to make a difference
Go ON North East - 26 weeks to make a difference
 
coca cola and minions
  coca cola and minions  coca cola and minions
coca cola and minions
 
Photo story
Photo story Photo story
Photo story
 
Closing modppt
Closing modpptClosing modppt
Closing modppt
 
Md bro eng
Md bro engMd bro eng
Md bro eng
 
Europe
EuropeEurope
Europe
 
Поисковая оптимизация (Seo): от А до Я (Promodo)
Поисковая оптимизация (Seo): от А до Я (Promodo)Поисковая оптимизация (Seo): от А до Я (Promodo)
Поисковая оптимизация (Seo): от А до Я (Promodo)
 
App conext+presentation
App conext+presentationApp conext+presentation
App conext+presentation
 
Vps sof tec digital marketing (Digital Marketing and SEO services in New Delhi)
Vps sof tec digital marketing (Digital Marketing and SEO services in New Delhi)Vps sof tec digital marketing (Digital Marketing and SEO services in New Delhi)
Vps sof tec digital marketing (Digital Marketing and SEO services in New Delhi)
 
USPTO
USPTOUSPTO
USPTO
 
Presentation
PresentationPresentation
Presentation
 
Presentation from St.Johnston-Ireland
Presentation from St.Johnston-IrelandPresentation from St.Johnston-Ireland
Presentation from St.Johnston-Ireland
 
Fire detector and control pump using flame sensor
Fire detector and control pump using flame sensorFire detector and control pump using flame sensor
Fire detector and control pump using flame sensor
 

Similar to #VirtualDesignMaster 3 Challenge 4 – James Brown

Medooze MCU Video Multiconference Server Installation and configuration guide...
Medooze MCU Video Multiconference Server Installation and configuration guide...Medooze MCU Video Multiconference Server Installation and configuration guide...
Medooze MCU Video Multiconference Server Installation and configuration guide...
sreeharsha43
 
Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant
Ricardo Amaro
 
Domino9on centos6
Domino9on centos6Domino9on centos6
Domino9on centos6
a8us
 
Drupalcamp es 2013 drupal with lxc docker and vagrant
Drupalcamp es 2013  drupal with lxc docker and vagrant Drupalcamp es 2013  drupal with lxc docker and vagrant
Drupalcamp es 2013 drupal with lxc docker and vagrant
Ricardo Amaro
 

Similar to #VirtualDesignMaster 3 Challenge 4 – James Brown (20)

Medooze MCU Video Multiconference Server Installation and configuration guide...
Medooze MCU Video Multiconference Server Installation and configuration guide...Medooze MCU Video Multiconference Server Installation and configuration guide...
Medooze MCU Video Multiconference Server Installation and configuration guide...
 
Docker navjot kaur
Docker navjot kaurDocker navjot kaur
Docker navjot kaur
 
Quick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage Service
Quick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage ServiceQuick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage Service
Quick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage Service
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
Installing & Configuring IBM Domino 9 on CentOS
Installing & Configuring IBM Domino 9 on CentOSInstalling & Configuring IBM Domino 9 on CentOS
Installing & Configuring IBM Domino 9 on CentOS
 
Introducing Docker
Introducing DockerIntroducing Docker
Introducing Docker
 
Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant
 
Snort-IPS-Tutorial
Snort-IPS-TutorialSnort-IPS-Tutorial
Snort-IPS-Tutorial
 
Domino9on centos6
Domino9on centos6Domino9on centos6
Domino9on centos6
 
Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned
 
Drupalcamp es 2013 drupal with lxc docker and vagrant
Drupalcamp es 2013  drupal with lxc docker and vagrant Drupalcamp es 2013  drupal with lxc docker and vagrant
Drupalcamp es 2013 drupal with lxc docker and vagrant
 
Docker
DockerDocker
Docker
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
 
Docker
DockerDocker
Docker
 
Introduction to Docker - Learning containerization XP conference 2016
Introduction to Docker - Learning containerization  XP conference 2016Introduction to Docker - Learning containerization  XP conference 2016
Introduction to Docker - Learning containerization XP conference 2016
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
 
Docker - A Ruby Introduction
Docker - A Ruby IntroductionDocker - A Ruby Introduction
Docker - A Ruby Introduction
 
Docker in Action
Docker in ActionDocker in Action
Docker in Action
 

More from vdmchallenge

More from vdmchallenge (20)

#VirtualDesignMaster 3 Challenge 3 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 3 - Lubomir Zvolensky#VirtualDesignMaster 3 Challenge 3 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 3 - Lubomir Zvolensky
 
#VirtualDesignMaster 3 Challenge 3 – James Brown
#VirtualDesignMaster 3 Challenge 3 – James Brown#VirtualDesignMaster 3 Challenge 3 – James Brown
#VirtualDesignMaster 3 Challenge 3 – James Brown
 
#VirtualDesignMaster 3 Challenge 3 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 3 - Harshvardhan Gupta#VirtualDesignMaster 3 Challenge 3 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 3 - Harshvardhan Gupta
 
#VirtualDesignMaster 3 Challenge 3 - Dennis George
#VirtualDesignMaster 3 Challenge 3 - Dennis George#VirtualDesignMaster 3 Challenge 3 - Dennis George
#VirtualDesignMaster 3 Challenge 3 - Dennis George
 
#VirtualDesignMaster 3 Challenge 3 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 3 - Abdullah Abdullah#VirtualDesignMaster 3 Challenge 3 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 3 - Abdullah Abdullah
 
#VirtualDesignMaster 3 Challenge 2 - Steven Viljoen
#VirtualDesignMaster 3 Challenge 2 - Steven Viljoen#VirtualDesignMaster 3 Challenge 2 - Steven Viljoen
#VirtualDesignMaster 3 Challenge 2 - Steven Viljoen
 
#VirtualDesignMaster 3 Challenge 2 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 2 - Lubomir Zvolensky#VirtualDesignMaster 3 Challenge 2 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 2 - Lubomir Zvolensky
 
#VirtualDesignMaster 3 Challenge 2 – James Brown
#VirtualDesignMaster 3 Challenge 2 – James Brown#VirtualDesignMaster 3 Challenge 2 – James Brown
#VirtualDesignMaster 3 Challenge 2 – James Brown
 
#VirtualDesignMaster 3 Challenge 2 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 2 - Harshvardhan Gupta#VirtualDesignMaster 3 Challenge 2 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 2 - Harshvardhan Gupta
 
#VirtualDesignMaster 3 Challenge 2 - Dennis George
#VirtualDesignMaster 3 Challenge 2 - Dennis George#VirtualDesignMaster 3 Challenge 2 - Dennis George
#VirtualDesignMaster 3 Challenge 2 - Dennis George
 
#VirtualDesignMaster 3 Challenge 2 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 2 - Abdullah Abdullah#VirtualDesignMaster 3 Challenge 2 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 2 - Abdullah Abdullah
 
#VirtualDesignMaster 3 Challenge 1 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 1 - Abdullah Abdullah#VirtualDesignMaster 3 Challenge 1 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 1 - Abdullah Abdullah
 
#VirtualDesignMaster 3 Challenge 1 - Dennis George
#VirtualDesignMaster 3 Challenge 1 - Dennis George#VirtualDesignMaster 3 Challenge 1 - Dennis George
#VirtualDesignMaster 3 Challenge 1 - Dennis George
 
#VirtualDesignMaster 3 Challenge 1 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 1 - Harshvardhan Gupta#VirtualDesignMaster 3 Challenge 1 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 1 - Harshvardhan Gupta
 
#VirtualDesignMaster 3 Challenge 1 – James Brown
#VirtualDesignMaster 3 Challenge 1 – James Brown#VirtualDesignMaster 3 Challenge 1 – James Brown
#VirtualDesignMaster 3 Challenge 1 – James Brown
 
#VirtualDesignMaster 3 Challenge 1 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 1 - Lubomir  Zvolensky#VirtualDesignMaster 3 Challenge 1 - Lubomir  Zvolensky
#VirtualDesignMaster 3 Challenge 1 - Lubomir Zvolensky
 
#VirtualDesignMaster 3 Challenge 1 - Mohamed Ibrahim
#VirtualDesignMaster 3 Challenge 1 - Mohamed Ibrahim#VirtualDesignMaster 3 Challenge 1 - Mohamed Ibrahim
#VirtualDesignMaster 3 Challenge 1 - Mohamed Ibrahim
 
#VirtualDesignMaster 3 Challenge 1 - Steven Viljoen
#VirtualDesignMaster 3 Challenge 1 - Steven Viljoen#VirtualDesignMaster 3 Challenge 1 - Steven Viljoen
#VirtualDesignMaster 3 Challenge 1 - Steven Viljoen
 
Timothy Patterson - Challenge 4 - Virtual Design Master
Timothy Patterson - Challenge 4 - Virtual Design MasterTimothy Patterson - Challenge 4 - Virtual Design Master
Timothy Patterson - Challenge 4 - Virtual Design Master
 
Daemon Behr - Challenge 4 - Virtual Design Master
Daemon Behr - Challenge 4 - Virtual Design MasterDaemon Behr - Challenge 4 - Virtual Design Master
Daemon Behr - Challenge 4 - Virtual Design Master
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

#VirtualDesignMaster 3 Challenge 4 – James Brown

  • 1. CHALLENGE 4 – ATTACK!! (RETAKE EARTH) BY JAMES BROWN (@JBCOMPVM)
  • 2. Contents Executive Summary.......................................................................................................................................3 Requirements............................................................................................................................................3 Constraints................................................................................................................................................3 Assumptions..............................................................................................................................................3 Risks ..........................................................................................................................................................4 Conceptual Design ........................................................................................................................................5 Automation...............................................................................................................................................5 Architecture Design ......................................................................................................................................6 Physical Design..........................................................................................................................................6 Logical Design............................................................................................................................................7 Application Design ....................................................................................................................................7 Docker...................................................................................................................................................7 Puppet Master Container .......................................................................................................................12 Web server with puppet .....................................................................................................................12 Chef Container ........................................................................................................................................14 Web server with Chef .........................................................................................................................14 Backup Registry...................................................................................................................................15
  • 3. Executive Summary We have secured the human race on Mars and the Moon. It is now time to take back our home planet. Teams of robots and humans are being sent back to Earth to secure locations across the globe. Infrastructure will need to be setup. No IT personnel will be sent on this mission. The IT team has been tasked with creating a test scenario. When the team lands on Earth there will be mixed equipment and OS software available. We need to come up with multiple scenarios. The Web server must run in a container. Two different operating systems, orchestration tools, and webservers need to be evaluated. No IT personnel will be sent on this mission. All instructions need to be documented and provided to the invasion team. If you accept this challenge, the Human race may be able to retake their home planet. Requirements 1. Webserver must display “Welcome Back to Earth!” 2. Two different orchestrations tools 3. Two different OS 4. Two different Webservers 5. Web server must run inside a container 6. Code will be deploy by non-technical personnel Constraints 1. Power and cooling could be hard acquire 2. The design must incorporate use of unknown or Frankenstein hardware Assumptions 1. Internet will be available through a satellite connection 2. There will be access to a computer console (monitor, keyboard, mouse) 3. Communication link between Earth Team and IT Team needs to be established
  • 4. Risks 1. Docker Hub could be offline 2. Electricity 3. Hardware left behind 4. Earth Team will not have to knowledge 5. Zombies could capture the teams 6. Aliens could aid the zombies 7. Zombies have devoured all computer systems
  • 5. Conceptual Design Automation The IT Team been given the task to create two webserver that can be deployed on any operating system. Docker is widely available on Windows, Linux, and UNIX systems. Docker can run/install on top of any operating system base. Including a virtual guess OS.
  • 6. Architecture Design Physical Design All hardware specifications are unknown until the HAZ (Human Against Zombies) team have landed and secured the location to bring the web server online. When the HAZ team land on Earth, it will have been one year sense the human race had fled. With coal, nuclear, and hydro power station offline, because of lack of supervision, electricity will be hard to come by. HAZ will need to find small generators to power small racks of hardware. These data centers that were left on Earth were heavily designed with compute, storage, and networking. If these server were not maintained, all system will be offline. Systems of this size require the correct boot order. A communication link between the HAZ team and the IT Team will need to be established. If possible video and remote control software need to be in place to provide the utmost support for this team.
  • 7. Logical Design Docker will be used as the base/starting point for this design. The onsite personnel will need to install Docker on a server that has been acquired. This can be on Linux (CentOS and Ubuntu) and/or Windows. If a virtual infrastructure is still online you can create a guest VM to install Docker. Server vCPU RAM (GB) OS Disk (GB) Data Disk (GB) Quantity Docker 2 8 80 200 1 Application Design Docker Docker is the key piece for this deployment. All server that will be deployed will run within a container. Docker will be installed on any physical hardware system that is still running. (CentOS, Ubuntu, or Windows) CentOS 7 will be used for the purpose of this design. Bootable USB images of CentOS 6 and 7, Ubuntu 14.04 and 12.04, and Windows 2012 R2 will be label and brought to earth.
  • 8. If for some reason, the Docker Hub is offline skip down to the Backup Image Registry section. Linux Install (CentOS) Requirments: Docker requires a 64-bit installation regardless of your CentOS version. The kernel must be 3.10 or above. To check your current kernel version, open a terminal and use “uname –r” to display your kernel version. Install: 1. Log into your machine as a user with sudo or root privileges. 2. Make sure your existing yum packages are up-to-date. a. $ sudo yum update 3. Run the Docker installation script. a. $ curl -sSL https://get.docker.com/ | sh b. This script adds the `docker.repo` repository and installs Docker. 4. Start the Docker daemon. a. $ sudo service Docker start Linux Install (Ubuntu) Requirements: Docker requires a 64-bit installation regardless of your CentOS version. Also, your kernel must be 3.10 at minimum. To check your current kernel version, open a terminal and use “uname –r” to display your kernel version Trusty 14.04 There are no prerequisites for this version. For Precise 12.04 (LTS) For Ubuntu Precise, Docker requires the 3.13 kernel version. If your kernel version is older than 3.13, you must upgrade it. Refer to this table to see which packages are required for your environment:
  • 9. linux-image-generic-lts-trusty Generic Linux kernel image. This kernel has AUFS built in. This is required to run Docker. linux-headers-generic-lts-trusty Allows packages such as ZFS and Virtual Box guest additions which depend on them. If you didn’t install the headers for your existing kernel, then you can skip these headers for the “trusty” kernel. If you’re unsure, you should include this package for safety. xserver-xorg-lts-trusty Optional in non-graphical environments without Unity/Xorg. Required when running Docker on machine with a graphical environment. To learn more about the reasons for these packages, read the installation instructions for backported kernels, specifically the LTS Enablement Stack. libgl1-mesa-glx-lts-trusty To upgrade your kernel and install the additional packages, do the following: 1. Open a terminal on your Ubuntu host. 2. Update your package manager. a. $ sudo apt-get update 3. Install both the required and optional packages. a. $ sudo apt-get install linux-image-generic-lts-trusty Depending on your environment, you may install more as described in the preceding table. 4. Reboot your host. a. $ sudo reboot For Saucy 13.10 (64 bit) Docker uses AUFS as the default storage backend. If you don’t have this prerequisite installed, Docker’s installation process adds it. Install: 1. Log into your Ubuntu installation as a user with sudo privileges. 2. Verify that you have wget installed. a. $ which wget If wget isn’t installed, install it after updating your manager: $ sudo apt-get update $ sudo apt-get install wget 3. Get the latest Docker package. a. $ wget -qO- https://get.docker.com/ | sh Windows Install 1. Download the latest release of the Docker for Windows Installer.
  • 10. 2. Run the installer, which will install Docker Client for Windows, Virtual Box, Git for Windows (MSYS-git), the boot2docker Linux ISO, and the Boot2Docker management tool. 3. Run the Boot2Docker Start shortcut from your Desktop or “Program Files → Boot2Docker for Windows”. The Start script will ask you to enter an ssh key passphrase - the simplest (but least secure) is to just hit [Enter]. 4. The Boot2Docker Start will start a UNIX shell already configured to manage Docker running inside the virtual machine. Run Docker version to see if it is working correctly:
  • 11. 5. Running Docker Note: if you are using a remote Docker daemon, such as Boot2Docker, then do not type the sudo before the Docker commands shown in the documentation’s examples. Boot2Docker Start will automatically start a shell with environment variables correctly set so you can start using Docker right away: Let’s try the hello-world example image. Run $ Docker run hello-world This should download the very small hello-world image and print a Hello from Docker. You can find these instructions at https://docs.docker.com/installation/ .
  • 12. Puppet Master Container The first container will run Puppet. Puppet will push a Docker image that includes CentOS, Apache, PHP, etc. Puppet will also setup an index.php website that displays “Welcome Back to Earth!” 1. Log into the Docker Server 2. Download puppet image for Docker a. Docker pull macadmins/puppetmaster 3. Status: Downloaded newer image for macadmins/puppetmaster:latest 4. To preserve the Puppet certificates so that they’re not lost if the Puppetmaster container is removed. a. Docker run -d --name puppet-data --entrypoint /bin/echo macadmins/puppetmaster Data-only container for puppetmaster 5. Start the container a. Docker run -d --name puppetmaster -h puppet -p 8140:8140 --volumes-from puppet-data macadmins/puppetmaster 6. We need to populate the Puppet configuration. a. Docker exec puppetmaster cp -Rf /etc/puppet /opt/ 7. If Puppet has started we should see at least on Certification a. Docker exec puppetmaster puppet cert list –all Web server with puppet First add an IP address for this webserver on the Docker server. These container images below are available on the Docker Hub. https://registry.hub.docker.com/u/jbcompvm/vdm-centos/  ip addr add 10.251.0.5/24 dev <Ethernet name> Apply Docker image with Puppet 1. Go to the Docker system 2. Find the container ID for Puppet mast  Docker ps i. Locate Container ID for puppetmaster  Docker exec –I –t <Container ID> bash 3. Install puppet Docker module  Puppet module install garethr-docker 4. Create web.pp <nano web.pp> include ‘Docker’ Docker::image { ‘jbcompvmvdm-centos’: version => ‘latest’, image_tag => web1, tcp_bind => ‘tcp://10.253.0.5:80’,
  • 13. manage_kernel => false, } 5. Apply web.pp (type in puppet master window)  puppet apply web.pp
  • 14. Chef Container This container will run Chef Server. Chef will push a Docker image that includes Ubuntu, Tomcat, etc. Chef will also setup an index.html website that displays “Welcome Back to Earth!” We need to first add an IP address for this webserver on the Docker server • ip addr add 10.251.0.6/24 dev <Ethernet name> Now we need to create a running image with that IP address. • Docker run -t -d --name chefserver -p 10.251.0.6:80:80 ubuntu 1. Log into the Docker Server 2. Download puppet image for Docker a. Docker pull willoucom / chef-server-Docker 3. Status: Downloaded newer image for willoucom / chef-server-docker:latest 4. Start the container a. Docker run --privileged -dti --name chef_server -p 443:443 willoucom / chef- server-Docker Web server with Chef First add an IP address for this webserver on the Docker server. The container images below are available on the Docker Hub. https://registry.hub.docker.com/u/jbcompvm/vdm-ubuntu/  ip addr add 10.251.0.6/24 dev <Ethernet name> Apply the Docker image with Chef 1. Go to the Docker system 2. Find the container ID for Chef Server  Docker ps 3. Locate Container ID for chefserver  Docker exec –I –t <Container ID> bash 4. Install Chef Docker module  Chef gem install knife-container 5. Docker init  Container ‘web2’ --IP 10.253.0.6/24
  • 15. Backup Image Registry If you are reading this section nothing has gone according to plan. The IT Team has planned for the worst. In you backpack is an Intel NUC5i5RYH, 128GB USB stick and a netgear GS105NA 5-Port Gigabit Switch. Boot the NUC with the 128GB USB stick installed. A local Docker Registry has been installed on this NUC. The NUC will be running CentOS 7. ISO images of each Operating system will be stored on a second 128GB USB disk. To attach this USB drive and configure apt-get to search the ISO (Ubuntu):  mkdir /mnt/dvd  /mnt/storage/iSO/debian-i386-DVD-1.iso /mnt/dvd/ udf,iso9660 loop 0 0  deb file:/mnt/dvd/ wheezy main contrib  mount /mnt/dvd/  apt-get update To attach the USB and configure yum to search the ISO (CentOS):  mkdir /mnt/cdrom  mount /dev/cdrom /mnt/cdrom/  nano /etc/yum.repos.d/CentOS-Media.repo ## Add the following lines ## file:///mnt/cdrom/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6