Files
opsschool-curriculum/labs.rst
2012-10-18 14:33:44 -05:00

245 lines
5.1 KiB
ReStructuredText

Labs exercises
**************
Bare-Metal Provisioning 101
===========================
Install CentOS by hand
----------------------
Install the same node using kickstart
-------------------------------------
Bare-Metal Provisioning 201
===========================
Setup a basic cobbler server
----------------------------
Build a profile
---------------
Kickstart a node
----------------
Change the profile, re-kickstart the node
-----------------------------------------
Cloud Provisioning 101
======================
Setup a free-tier account with AWS
----------------------------------
Spawn a Linux node from the AWS Console
---------------------------------------
Cloud Provisioning 201
======================
Spawn a Linux node using the AWS API
------------------------------------
Attach an Elastic IP and EBS to it
----------------------------------
Database 101
============
Install and start up MySQL
--------------------------
Create basic relational database / tables, using a variety of field types
-------------------------------------------------------------------------
Grant and revoke privileges
---------------------------
Install Riak
------------
Write (or provide, probably depends on where this fits in relation
to scripting tutorial?) basic tool to insert and retrieve some data.
Database 201
============
Spawn up second VM/MySQL install
--------------------------------
Set up Master->Slave replication
--------------------------------
Deliberately break and then fix replication
-------------------------------------------
Set up Master<->Master replication
----------------------------------
Introduction to percona toolkit
-------------------------------
Set up Riak Cluster, modify the tool from 101 to demonstrate replication.
Database 301
============
Galera cluster
--------------
* Introduction to variables and their meaning. Tuning MySQL configuration (use
mysqltuner.pl as a launch point?), pros and cons of various options.
* Introducing EXPLAIN and how to analyse and improve queries and schema.
* Backup options, mysqldump, LVM Snapshotting, Xtrabackup.
Automation 101
==============
Do you need it? How much and why?
---------------------------------
http://www.kitchensoap.com/2012/09/21/a-mature-role-for-automation-part-i/
* Talk basic theory and approach in terms of Idempodency and Convergence.
* Write a bash script to install something as idempodently as possible.
* Discuss Chef and Puppet and while reflecting on the bash script.
Automation - Chef 201
=====================
Setup an Opscode account
------------------------
Setup your workstation as a client to your Opscode account
----------------------------------------------------------
Download the build-essential cookbook, and apply it to your workstation
-----------------------------------------------------------------------
Automation - Chef 301
=====================
Setup a chef-repo
-----------------
Write your own cookbook
-----------------------
Automation - Chef 302
=====================
Setup your own Chef Server
--------------------------
Write your own resources/providers
----------------------------------
Write sanity tests for your code
--------------------------------
Automation - Puppet 201
=======================
Install Puppet
--------------
Install a Forge module using the module tool
--------------------------------------------
Apply it to your local machine
------------------------------
Automation - Puppet 301
=======================
Install Puppet
--------------
Create your own module
----------------------
Apply it to your local machine
------------------------------
Package Management 101
======================
Setup a basic YUM or APT repo and put some packages in it
---------------------------------------------------------
Setup a local mirror of CentOS (or what have you)
-------------------------------------------------
Setup a client to install from it
---------------------------------
Package Management 201
======================
Build a simple RPM or deb
-------------------------
FPM
---
Build automation fleets
=======================
koji
----
D
-
Version Control with Git 101
============================
Open a github account
---------------------
Create a new repo called 'scripts'
----------------------------------
Place a useful shell script in it
---------------------------------
Commit and push
---------------
Make a change, commit and push
------------------------------
Create a branch, make a change, commit, and push
------------------------------------------------
Create a pull request and merge the branch into the master branch
-----------------------------------------------------------------
Read Chapters 1-3 of the Pro Git online book - http://git-scm.com/book
DNS 101
=======
Install Bind
------------
Configure one zone
------------------
Show DNS resolution for an A and a CNAME record in the configured zone
----------------------------------------------------------------------
HTTP 101
========
Install Apache
--------------
Configure a virtual host
------------------------
Display a simple web page
--------------------------