Ver Fonte

Switched to externally developed alfred role

Till Klocke há 9 anos atrás
pai
commit
9f6e84cca4
32 ficheiros alterados com 292 adições e 2 exclusões
  1. 2 0
      galaxy-roles/dereulenspiegel.fastd/.gitignore
  2. 33 0
      galaxy-roles/dereulenspiegel.fastd/.kitchen.yml
  3. 23 0
      galaxy-roles/dereulenspiegel.fastd/.travis.yml
  4. 7 0
      galaxy-roles/dereulenspiegel.fastd/Gemfile
  5. 0 0
      galaxy-roles/dereulenspiegel.fastd/README.md
  6. 0 0
      galaxy-roles/dereulenspiegel.fastd/defaults/main.yml
  7. 0 0
      galaxy-roles/dereulenspiegel.fastd/handlers/main.yml
  8. 1 0
      galaxy-roles/dereulenspiegel.fastd/meta/.galaxy_install_info
  9. 4 1
      roles/fastd/meta/main.yml
  10. 0 0
      galaxy-roles/dereulenspiegel.fastd/tasks/debian.yml
  11. 0 0
      galaxy-roles/dereulenspiegel.fastd/tasks/libsodium/debian.yml
  12. 0 0
      galaxy-roles/dereulenspiegel.fastd/tasks/libsodium/main.yml
  13. 0 0
      galaxy-roles/dereulenspiegel.fastd/tasks/libsodium/source.yml
  14. 0 0
      galaxy-roles/dereulenspiegel.fastd/tasks/libsodium/ubuntu.yml
  15. 0 0
      galaxy-roles/dereulenspiegel.fastd/tasks/libuecc/debian.yml
  16. 0 0
      galaxy-roles/dereulenspiegel.fastd/tasks/libuecc/main.yml
  17. 0 0
      galaxy-roles/dereulenspiegel.fastd/tasks/libuecc/source.yml
  18. 0 0
      galaxy-roles/dereulenspiegel.fastd/tasks/main.yml
  19. 0 0
      galaxy-roles/dereulenspiegel.fastd/tasks/repo.yml
  20. 0 0
      galaxy-roles/dereulenspiegel.fastd/tasks/source.yml
  21. 0 0
      galaxy-roles/dereulenspiegel.fastd/templates/fastd.conf.j2
  22. 0 0
      galaxy-roles/dereulenspiegel.fastd/templates/secret.conf.j2
  23. 2 0
      galaxy-roles/dereulenspiegel.fastd/test/ansible.cfg
  24. 9 0
      galaxy-roles/dereulenspiegel.fastd/test/application/fastd.yml
  25. 35 0
      galaxy-roles/dereulenspiegel.fastd/test/application/fastd_pkg_vars.yml
  26. 56 0
      galaxy-roles/dereulenspiegel.fastd/test/integration/fastd/serverspec/fastd_spec.rb
  27. 1 0
      galaxy-roles/dereulenspiegel.fastd/test/local.ini
  28. 17 0
      galaxy-roles/dereulenspiegel.fastd/test/run_vagrant_kitchen.sh
  29. 98 0
      galaxy-roles/dereulenspiegel.fastd/test/travis_run.py
  30. 0 0
      galaxy-roles/dereulenspiegel.fastd/vars/main.yml
  31. 3 0
      requirements.yml
  32. 1 1
      roles/ff-supernode/meta/main.yml

+ 2 - 0
galaxy-roles/dereulenspiegel.fastd/.gitignore

@@ -0,0 +1,2 @@
+.kitchen/
+secrets

+ 33 - 0
galaxy-roles/dereulenspiegel.fastd/.kitchen.yml

@@ -0,0 +1,33 @@
+---
+driver:
+  name: vagrant
+
+provisioner:
+    name               : ansible_push
+    verbose            : "vvvv"
+    ansible_config     : "test/ansible.cfg"
+    idempotency_test   : False
+    sudo               : True
+    #chef_bootstrap_url : False
+    #extra_vars        : "@kitchen_vars.yml"
+
+platforms:
+    - name: Debian-jessie
+      driver:
+        box: debian/jessie64
+    - name: Debian-wheezy
+      driver:
+        box: debian/wheezy64 #chef/debian-7.8
+    - name: Ubuntu-trusty
+      driver:
+        box: ubuntu/trusty64
+
+suites:
+  - name: fastd
+    provisioner:
+      playbook: "test/application/fastd.yml"
+      extra_vars: {'kitchen_connection': 'smart'}
+#  - name            : group
+#    provisioner     :
+#        playbook    : "test/application/group.yml"
+#        extra_vars  : { 'kitchen_connection': 'smart' }

+ 23 - 0
galaxy-roles/dereulenspiegel.fastd/.travis.yml

@@ -0,0 +1,23 @@
+---
+language: python
+python: "2.7"
+
+before_install:
+  # Make sure everything's up to date.
+  - sudo apt-get update -qq
+  - sudo apt-get install -qq python-apt python-pycurl git python-pip ruby ruby-dev build-essential autoconf
+  - gem install bundler
+
+install:
+  - sudo pip install ansible
+
+
+script:
+    #- cd test
+    - ansible --version
+    - bundle install
+    - KITCHEN_YAML=.kitchen.travis.yml bundle exec kitchen test travis
+
+
+after_success:
+    - echo "Success"

+ 7 - 0
galaxy-roles/dereulenspiegel.fastd/Gemfile

@@ -0,0 +1,7 @@
+source "https://rubygems.org"
+
+gem "test-kitchen"
+gem "kitchen-ansiblepush"
+gem "kitchen-ansible"
+gem "kitchen-vagrant"
+gem "kitchen-localhost"

roles/fastd/README.md → galaxy-roles/dereulenspiegel.fastd/README.md


roles/fastd/defaults/main.yml → galaxy-roles/dereulenspiegel.fastd/defaults/main.yml


roles/fastd/handlers/main.yml → galaxy-roles/dereulenspiegel.fastd/handlers/main.yml


+ 1 - 0
galaxy-roles/dereulenspiegel.fastd/meta/.galaxy_install_info

@@ -0,0 +1 @@
+{install_date: 'Sun Aug  2 08:14:56 2015', version: master}

+ 4 - 1
roles/fastd/meta/main.yml

@@ -8,7 +8,10 @@ galaxy_info:
   platforms:
   - name: Debian
     versions:
-    - jessie
+    - all
+  - name: Ubuntu
+    vesions:
+    - all
   categories:
   - networking
 dependencies: []

roles/fastd/tasks/debian.yml → galaxy-roles/dereulenspiegel.fastd/tasks/debian.yml


roles/fastd/tasks/libsodium/debian.yml → galaxy-roles/dereulenspiegel.fastd/tasks/libsodium/debian.yml


roles/fastd/tasks/libsodium/main.yml → galaxy-roles/dereulenspiegel.fastd/tasks/libsodium/main.yml


roles/fastd/tasks/libsodium/source.yml → galaxy-roles/dereulenspiegel.fastd/tasks/libsodium/source.yml


roles/fastd/tasks/libsodium/ubuntu.yml → galaxy-roles/dereulenspiegel.fastd/tasks/libsodium/ubuntu.yml


roles/fastd/tasks/libuecc/debian.yml → galaxy-roles/dereulenspiegel.fastd/tasks/libuecc/debian.yml


roles/fastd/tasks/libuecc/main.yml → galaxy-roles/dereulenspiegel.fastd/tasks/libuecc/main.yml


roles/fastd/tasks/libuecc/source.yml → galaxy-roles/dereulenspiegel.fastd/tasks/libuecc/source.yml


roles/fastd/tasks/main.yml → galaxy-roles/dereulenspiegel.fastd/tasks/main.yml


roles/fastd/tasks/repo.yml → galaxy-roles/dereulenspiegel.fastd/tasks/repo.yml


roles/fastd/tasks/source.yml → galaxy-roles/dereulenspiegel.fastd/tasks/source.yml


roles/fastd/templates/fastd.conf.j2 → galaxy-roles/dereulenspiegel.fastd/templates/fastd.conf.j2


roles/fastd/templates/secret.conf.j2 → galaxy-roles/dereulenspiegel.fastd/templates/secret.conf.j2


+ 2 - 0
galaxy-roles/dereulenspiegel.fastd/test/ansible.cfg

@@ -0,0 +1,2 @@
+[defaults]
+roles_path=../:../../:/spec/

+ 9 - 0
galaxy-roles/dereulenspiegel.fastd/test/application/fastd.yml

@@ -0,0 +1,9 @@
+---
+- name         : Install and configure fastd
+  hosts        : all
+  gather_facts : yes
+  connection   : "{{ kitchen_connection | default('local') }}"
+  vars_files   :
+                 - "fastd_pkg_vars.yml"
+  roles        :
+                 - "ansible-fastd"

+ 35 - 0
galaxy-roles/dereulenspiegel.fastd/test/application/fastd_pkg_vars.yml

@@ -0,0 +1,35 @@
+fastd_instances:
+  - name: test1
+    bind: any:10000 interface "eth0" default ipv4
+    interface: tap00
+    loglevel: info
+    mode: tap
+    method: salsa2012+umac
+    peer_limit: 125
+    mtu: 1280
+    status_socket: /tmp/fastd00.sock
+    on_up_script: |
+      ip link set up $INTERFACE
+      batctl if add $INTERFACE
+    on_verify_script: |
+      /etc/fastd/fastd-blacklist.sh $PEER_KEY
+  - name: test2
+    bind: any:10001 interface "eth0" default ipv4
+    interface: tap01
+    loglevel: info
+    mode: tap
+    method: salsa2012+umac
+    peer_limit: 125
+    mtu: 1280
+    status_socket: /tmp/fastd01.sock
+    on_up_script: |
+      ip link set up $INTERFACE
+      batctl if add $INTERFACE
+    on_verify_script: |
+      /etc/fastd/fastd-blacklist.sh $PEER_KEY
+
+fastd_instances_secret:
+  - name: test1
+    secret: 280088c4263359417e9f2daf1771db820ab79eb4f79e3718719b2a976e8a8b5e
+  - name: test2
+    secret: 280088c4263359417e9f2daf1771db820ab79eb4f79e3718719b2a976e8a8b5e

+ 56 - 0
galaxy-roles/dereulenspiegel.fastd/test/integration/fastd/serverspec/fastd_spec.rb

@@ -0,0 +1,56 @@
+require 'serverspec'
+
+# Required by serverspec
+set :backend, :exec
+
+describe file('/etc/fastd') do
+  it { should be_directory }
+end
+
+describe file('/etc/fastd/test1') do
+  it { should be_directory }
+end
+
+describe file('/etc/fastd/test2') do
+  it { should be_directory }
+end
+
+describe package('fastd') do
+  it { should be_installed }
+end
+
+# Ansible seems to have problems to enable a service. Needs investigation
+describe service('fastd') do
+  it { should be_running }
+#  it { should be_enabled }
+end
+
+describe process('fastd') do
+  it { should be_running }
+end
+
+describe port(10000) do
+  it { should be_listening.with('udp6') }
+end
+
+describe port(10001) do
+  it { should be_listening.with('udp6') }
+end
+
+describe package('rng-tools') do
+  it { should be_installed }
+end
+
+describe file('/etc/default/rng-tools') do
+  it { should exist }
+  its(:content) { should match /HRNGDEVICE=\/dev\/urandom/ }
+end
+
+describe process("rngd") do
+  it { should be_running }
+end
+
+describe user('fastd') do
+  it { should exist }
+  it { should have_login_shell '/bin/false' }
+end

+ 1 - 0
galaxy-roles/dereulenspiegel.fastd/test/local.ini

@@ -0,0 +1 @@
+localhost ansible_connection='local'

+ 17 - 0
galaxy-roles/dereulenspiegel.fastd/test/run_vagrant_kitchen.sh

@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+set -e
+echo "**** Box setup ***"
+
+echo "* mkdir /kitchen"
+mkdir -p /kitchen
+
+#echo "* cp -ar /mnt/shared /kitchen"
+#cp -r /mnt/shared/. /kitchen
+echo "* ln -sf /mnt/shared /kitchen"
+ln -sf /mnt/shared/* /kitchen/
+
+echo "* cd /kitchen"
+cd /kitchen/*
+
+echo "* python test/travis_run.py"
+python test/travis_run.py

+ 98 - 0
galaxy-roles/dereulenspiegel.fastd/test/travis_run.py

@@ -0,0 +1,98 @@
+#!/usr/bin/env python
+# https://github.com/ahelal/travis-in-box
+
+import yaml
+import subprocess
+import sys
+import os.path
+
+
+class TravisExec(object):
+    def __init__(self, filename="travis.yml"):
+        self.fail = False
+        stream = open(filename, 'r')
+        yaml_file = yaml.load(stream)
+        # language
+        self.language = yaml_file.get("language", None)
+
+        # Section
+        self.section_before_install = yaml_file.get("before_install", None)
+        self.section_install = yaml_file.get("install", None)
+        self.section_before_script = yaml_file.get("before_script", None)
+        self.section_script = yaml_file.get("script", None)
+
+        #self.section_after_script = yaml_file.get("after_script", None)
+        self.section_after_failure = yaml_file.get("after_failure", None)
+        self.section_after_success = yaml_file.get("after_success", None)
+
+    def _setup(self):
+        if self.language == "python":
+            print "********** Setup Python  **********"
+            print ""
+            # Since we are not using container we have to install various lang our self
+            # So this is probably not the best way to do it
+            self._execute_command(["sudo apt-get install python-setuptools python-pip -y"])
+        else:
+            print "Errors unsupported language {}".format(self.language)
+            exit(1)
+
+    def life_cycle(self):
+        # See http://docs.travis-ci.com/user/build-configuration/
+
+            # 1. setup language
+            self._setup()
+            # 4. Run before_install commands
+            self.run_command("before_install", self.section_before_install, self.section_after_failure)
+            # 5. Run install commands
+            self.run_command("install", self.section_install, self.section_after_failure)
+            # 6. Run before_script commands
+            self.run_command("before_script", self.section_before_script, self.section_after_failure)
+            # 7. Run test script commands
+            self.run_command("script", self.section_script, self.section_after_failure)
+            # 8 . if we reach this point we made it run after_success
+            self.run_command("after_success", self.section_after_success, None)
+
+    @staticmethod
+    def _execute_command(command):
+        new_command = ["echo '> " + item.rstrip('\n') + "' && { " + item.rstrip('\n') + " ; }" for item in command]
+        new_command = " && ".join(new_command)
+
+        p = subprocess.Popen(new_command, shell=True, stderr=subprocess.PIPE)
+        while True:
+            out = p.stderr.read(1)
+            if out == '' and p.poll() is not None:
+                break
+            if out != '':
+                sys.stdout.write(out)
+                sys.stdout.flush()
+        print ""
+        return p.returncode
+
+    def run_command(self, section_name=None, command=None, execute_on_failure=None):
+        if command:
+            print ""
+            print "********** Running '{}' **********".format(section_name)
+            return_code = self._execute_command(command)
+            if return_code != 0:
+                print ""
+                print "********** Failed in '{}' **********".format(section_name)
+                if execute_on_failure:
+                    print ""
+                    print "********** Running after_failure  **********".format(section_name)
+                    self._execute_command(execute_on_failure)
+                    exit(1)
+
+filename = None
+if len(sys.argv) == 1:
+    filename = ".travis.yml"
+elif len(sys.argv) == 2:
+    filename = sys.argv[1]
+else:
+    print "Invalid number of arguments"
+    exit(1)
+
+if os.path.exists(filename):
+    TravisExec(filename).life_cycle()
+else:
+    print "Could not file travis file '{}'".format(filename)
+    exit(1)

roles/fastd/vars/main.yml → galaxy-roles/dereulenspiegel.fastd/vars/main.yml


+ 3 - 0
requirements.yml

@@ -10,4 +10,7 @@
   path: galaxy-roles
 
 - src: jdauphant.unbound
+  path: galaxy-roles
+
+- src: dereulenspiegel.fastd
   path: galaxy-roles

+ 1 - 1
roles/ff-supernode/meta/main.yml

@@ -16,7 +16,7 @@ galaxy_info:
   - networking
 dependencies:
 - usermanage
-- fastd
+- dereulenspiegel.fastd
 - batman
 - supernode-interfaces
 - pdellaert.dhcp_server