|
@@ -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
|
|
|
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
|
|
|
|
|
|
* 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
|
|
|
-* 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)
|
|
|
* 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:
|