mirror of
https://github.com/opsschool/curriculum.git
synced 2026-01-15 12:15:03 +00:00
245 lines
5.1 KiB
ReStructuredText
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
|
|
--------------------------
|