Browse Source

Added smal getting started guide to ease others into the development here

Till Klocke 9 years ago
parent
commit
6d238e7590
1 changed files with 34 additions and 9 deletions
  1. 34 9
      README.md

+ 34 - 9
README.md

@@ -7,18 +7,43 @@ Since some software components like fastd and B.A.T.M.A.N. are not always easily
 via a packet manager on all platforms, the basic idea in this repo is to create roles for this 
 via a packet manager on all platforms, the basic idea in this repo is to create roles for this 
 software and eventually fall back to building from source.
 software and eventually fall back to building from source.
 
 
+## Getting started
+This project is based on ansible, vagrant, VirtualBox and test kitchen. Although it is possible to get all this
+working on windows, it is easier to do on Linux or Mac OS
+
+### Prerequesites
+
+* [Install ansible](http://docs.ansible.com/ansible/intro_installation.html) for your operating system 
+* [Install VirtualBox](https://www.virtualbox.org/wiki/Downloads) for your operating system (Version 5 seems to work)
+* Also install the extension pack for USB support etc. in VirtualBox. Some machines depend on this.
+* [Install vagrant](http://docs.vagrantup.com/v2/installation/) for your operating system
+* [Install test kitchen](http://kitchen.ci/docs/getting-started/installing) for your operating system
+* Install ansible for test kitchen: `sudo gem install kitchen-ansiblepush kitchen-ansible`
+* Install vagrant driver for test kitchen: `sudo gem install kitchen-vagrant`
+
+### First steps
+
+After you installed all necessary tools and gems you change in the checked out directory of this project
+and simply type `kitchen test`. This will create multiple virtual machines execute the ansible roles and
+test everything via serverspec. After all tests are successfull the machines are destroyed again.
+
+### Simple development workflow
+
+Since creating the machines can take some time (several minutes) is doesn't make sense to destroy them after each run.
+You can call `kitchen setup` to create all defined machines and keep them running. Then you can start editing roles or 
+creating roles and if you want to check your changes you can execute `kitchen converge && kitchen verify` to execute the
+roles on all machines and run the serverspec tests on all machines. All commands can be combined with the machine name
+(available via `kitchen list`) if you want to manipulate only one machine. 
+If you need to analyse problems on one machine you can login with `kitchen login [machine name]`
+
+## The Vagrantfile
+
+The Vagrantfile and the host and group vars in this repo should be used to quickly create a "test community" in the future.
+
 ## TODO
 ## TODO
 
 
 * batman role needs to enable build from source
 * batman role needs to enable build from source
 * we need a way to get batman compatibility mode as a fact and be able to configure it
 * we need a way to get batman compatibility mode as a fact and be able to configure it
-* Add role for Freifunk batman config
-* Add role for Freifunk network config
 * Add support for more platforms (don't force a linux distro to others)
 * Add support for more platforms (don't force a linux distro to others)
 * Everything else I forgot
 * Everything else I forgot
-* Add CI via travis:
-
-## Setup test kitchen locally
-
-* Install [test kitchen](http://kitchen.ci/): sudo gem install test-kitchen
-* Install additionall kitchen gems: sudo gem install kitchen-ansiblepush kitchen-ansible kitchen-vagrant
-* start tests via: kitchen test
+* Add CI via travis: