diff --git a/kvm/README.md b/kvm/README.md new file mode 100644 index 0000000..ffb8eee --- /dev/null +++ b/kvm/README.md @@ -0,0 +1,9 @@ +# Learning Tools: KVM + +The contents of this folder are targeted toward increasing knowledge and understanding of KVM. + +## Contents + +**kvm-generic**: The files in this folder allow you to create a learning environment for working with KVM and Libvirt on Ubuntu 14.04. The provisioning is handled via Ansible (pre-2.0) installed on the Vagrant host. + +**kvm-macvtap**: This learning environment has a `Vagrantfile` and supporting files for working with KVM and macvtap interfaces on Ubuntu 14.04. The provisioning is handled via Ansible (pre-2.0) installed on the Vagrant host. diff --git a/lxc-lxd/README.md b/lxc-lxd/README.md new file mode 100644 index 0000000..a46f389 --- /dev/null +++ b/lxc-lxd/README.md @@ -0,0 +1,13 @@ +# Learning Tools: LXC/LXD + +Here are found Vagrant environments and other tools/resources for working with and learning more about LXC and LXD. + +## Contents + +**lxc**: This folder holds a `Vagrantfile` and supporting files to create an environment for working with LXC (pronounced "lex-see"). LXC is a set of tools for working with OS containers. The provisioning is handled via Ansible (pre-2.0) installed on the Vagrant host. + +**lxd-ansible**: In this folder you'll find a `Vagrantfile`, instructions, and other files to help work with LXD (pronounced "lex-dee"), a new daemon and CLI for working with LXC-based OS containers. The provisioning is handled via Ansible (pre-2.0) installed on the Vagrant host. + +**lxd-ovs**: Use the `Vagrantfile` and other files in this directory to work with LXD and Open vSwitch (OVS) 2.3.1 on Ubuntu 14.04. Use the instructions from the `lxd` directory to set up containers and container images. The provisioning is handled via shell scripts. + +**lxd-shell**: In this folder you'll find a `Vagrantfile`, instructions, and other files to help work with LXD (pronounced "lex-dee"), a new daemon and CLI for working with LXC-based OS containers. For this environment, the provisioning is handled via shell scripts. diff --git a/netos/README.md b/netos/README.md new file mode 100644 index 0000000..13e7226 --- /dev/null +++ b/netos/README.md @@ -0,0 +1,7 @@ +# Learning Tools: Network Operating Systems + +This folder contains Vagrant environments and other resources for learning more about various network operating systems, such as JunOS, Arista EOS, Cumulus, or others. + +## Contents + +**junos**: _This is a placeholder for future work._ diff --git a/openstack/README.md b/openstack/README.md new file mode 100644 index 0000000..f511755 --- /dev/null +++ b/openstack/README.md @@ -0,0 +1,9 @@ +# Learning Tools: OpenStack + +This folder contains tools, resources, and environments for learning more about OpenStack. + +## Contents + +**cli**: This folder contains the files for a Vagrant environment that spins up an Ubuntu box with all the OpenStack CLI clients pre-installed. The provisioning is handled via shell scripts. + +**swarm-consul**: This folder contains files to create a Consul-backed Docker Swarm cluster on OpenStack. _THIS ENVIRONMENT IS NOT YET FULLY FUNCTIONAL._ diff --git a/ovs-ovn/README.md b/ovs-ovn/README.md new file mode 100644 index 0000000..c0a6bcc --- /dev/null +++ b/ovs-ovn/README.md @@ -0,0 +1,15 @@ +# Learning Tools: Open vSwitch (OVS) and Open Virtual Network (OVN) + +This folder contains tools, resources, and environments for experimenting with and learning more about Open vSwitch (OVS) and Open Virtual Network (OVN). + +## Contents + +**ovn**: This directory contains a Vagrant environment for working with Open Virtual Network (OVN). + +**ovn-docker-ansible**: _This is a placeholder for future work._ + +**ovn-kvm**: This folder contains a Vagrant environment for spinning up OVN and using it with KVM-based virtual machines. + +**ovs-geneve**: This folder contains a Vagrant environment and supporting files for compiling Open vSwitch (OVS) from source and using Geneve tunneling to connect network namespaces on two different VMs. + +**ovs-multi-br**: In this folder is a Vagrant environment, Ansible playbook, and related data files for experimenting with multiple Open vSwitch (OVS) bridges. diff --git a/photon/README.md b/photon/README.md new file mode 100644 index 0000000..81ef5f0 --- /dev/null +++ b/photon/README.md @@ -0,0 +1,11 @@ +# Learning Tools: VMware Photon OS + +This folder contains tools, resources, and environments designed around VMware's Photon OS Linux distribution. + +## Contents + +**photon-ansible**: In this folder is a Vagrant environment for using Ansible with VMware Photon; specifically, for using Ansible to configure Photon's pre-installed Docker daemon to listen over a network socket. Naturally, the provisioning is handled via Ansible (pre-2.0) installed on the Vagrant host. + +**photon-cloudinit**: This folder contains the files to spin up VMs, using Vagrant and customized via `cloud-init`, running the VMware Photon Technical Preview. The provisioning is handled via shell scripts. + +**photon-generic**: This folder contains the files to spin up an instance of the VMware Photon Technical Preview using Vagrant. No custom provisioning is provided in this environment. diff --git a/rkt/README.md b/rkt/README.md new file mode 100644 index 0000000..db1c0bc --- /dev/null +++ b/rkt/README.md @@ -0,0 +1,7 @@ +# Learning Tools: rkt ("Rocket") Container Runtime + +This folder contains tools, resources, and environments for working with `rkt`, the CoreOS container runtime. + +## Contents + +**rkt-ubuntu**: This folder contains the files to work with `rkt` (version 1.4.0), the CoreOS implementation of the App Container (appc) specification, on Ubuntu 14.04. Provisioning is handled by Vagrant's file and shell provisioners. diff --git a/ssh/README.md b/ssh/README.md new file mode 100644 index 0000000..6f0aaa7 --- /dev/null +++ b/ssh/README.md @@ -0,0 +1,9 @@ +# Learning Tools: SSH + +This folder contains tools, resources, and environments that are intended to help build understanding of Secure Shell (SSH), a key component in many Linux/UNIX environments. + +## Contents + +**ssh-bastion**: In this folder is a Vagrant environment, leveraging multiple VMs, that allow you to work with SSH multiplexing via an SSH bastion host. The provisioning is handled by Vagrant's file and shell provisioners. + +**ssh-bastion-ansible**: In this folder is a Vagrant environment, leveraging multiple VMs, that allow you to work with SSH multiplexing via an SSH bastion host. The provisioning is handled by Ansible 2.x. diff --git a/terraform/README.md b/terraform/README.md new file mode 100644 index 0000000..34c9a5a --- /dev/null +++ b/terraform/README.md @@ -0,0 +1,9 @@ +# Learning Tools: Terraform + +This folder contains materials for working with Terraform. + +## Contents + +**tf-general:** This directory provides an example Terraform configuration (in both Terraform format as well as JSON format) designed to work with OpenStack. + +**aws**: This directory contains a number of different examples of using Terraform with AWS. Refer to the `README.md` in this folder for more details. diff --git a/ubuntu/README.md b/ubuntu/README.md new file mode 100644 index 0000000..f163710 --- /dev/null +++ b/ubuntu/README.md @@ -0,0 +1,7 @@ +# Learning Tools: Ubuntu Linux + +This folder contains materials for learning more about Ubuntu Linux. + +## Contents + +**ubuntu-generic**: This folder contains a Vagrant environment for spinning up a generic 64-bit Ubuntu 14.04 VM. Note there's nothing special going on here---just a plain, generic, Ubuntu VM. No custom provisioning is provided in this environment. diff --git a/vagrant/README.md b/vagrant/README.md new file mode 100644 index 0000000..538bd13 --- /dev/null +++ b/vagrant/README.md @@ -0,0 +1,29 @@ +# Learning Tools: Vagrant + +This folder contains materials for learning more about how to use Vagrant. This includes various `Vagrantfile` examples with different data formats and structures. Examples of working with various providers are also found here. + +## Contents + +**aws**: This folder contains a `Vagrantfile` and supporting files for using Vagrant to spin up an instance on AWS. This allows you to use Vagrant to spin up and destroy an instance on AWS. + +**aws-multi**: Like "vagrant-aws", but for spinning up multiple instances on AWS. + +**complex-json**: This folder contains files that illustrate how to use a "complex" JSON file as an external data source for a `Vagrantfile`. + +**complex-yaml**: This folder contains files that illustrate how to use "complex" YAML files in a `Vagrantfile`. + +**docker**: In this folder you'll find `Vagrantfiles` and supporting documents for using the Docker provider in Vagrant to turn up Docker containers. The provisioning is handled by Vagrant's built-in Docker provisioner. + +**docker-json**: Like `docker-yaml`, this folder is an extension of "vagrant-docker" in that it provides the ability to specify, in an external JSON file, a list of Docker containers to be instantiated by Vagrant. The provisioning is handled by Vagrant's built-in Docker provisioner. + +**docker-yaml**: This folder is an extension of "vagrant-docker" in that it provides the ability to specify the list of Docker containers that Vagrant will create in a separate YAML file. The provisioning is handled by Vagrant's built-in Docker provisioner. + +**json**: The files in this folder illustrate the use of an external JSON data file to drive Vagrant. + +**multi-platform**: This Vagrant environment demonstrates one possible way to create a `Vagrantfile` that supports multiple virtualization platforms without any edits needed across platforms. + +**multi-provider**: The `Vagrantfile` and supporting documents in this folder show how to build Vagrant environments to support multiple back-end providers. + +**openstack**: This folder contains a `Vagrantfile` and supporting files for using Vagrant with the OpenStack provider. This allows you to use Vagrant to provision and destroy an instance in an OpenStack cloud. + +**openstack-multi**: This folder is similar to `vagrant/openstack`, but supports Vagrant operations on multiple instances.