Browse Source

first attempt, needs to be refined, and the daemon seems not to start

Jocelyn Delande 10 years ago
parent
commit
69e66afe63

+ 1 - 0
contrib/ansible/.#ansible.cfg

@@ -0,0 +1 @@
+jocelyn@rover.crapouillou.net.22059:1423339210

+ 3 - 0
contrib/ansible/ansible.cfg

@@ -0,0 +1,3 @@
+[defaults]
+roles_path = ./roles
+

+ 5 - 0
contrib/ansible/roles/wifiwithme/handlers/main.yml

@@ -0,0 +1,5 @@
+- name: Restart lighttpd
+  service: name=lighttpd state=restarted
+
+- name: Restart wifiwithme
+  service: name=wifiwithme state=restarted

+ 55 - 0
contrib/ansible/roles/wifiwithme/tasks/main.yml

@@ -0,0 +1,55 @@
+# Role for the wifi-with-me form
+
+- name: Install flask
+  apt: pkg=python-flask state=installed update_cache=yes cache_valid_time=3600
+
+- name: Make install dir
+  file:
+    dest: "{{ wwm_install_dir }}"
+    state: directory
+
+- name: Git clone
+  git:
+    repo: https://github.com/JocelynDelalande/wifi-with-me.git
+    dest: "{{ wwm_install_dir }}"
+  notify: Restart wifiwithme
+
+- name: Unix user
+  user: name="{{ wwm_user }}"
+
+- name: Create db
+  command: "{{ wwm_install_dir }}/backend.py createdb"
+  args:
+    chdir: "{{ wwm_install_dir }}"
+    creates: "{{ wwm_install_dir }}/db.sqlite3"
+
+- name: db ownership
+  file:
+    dest: "{{ wwm_install_dir }}/db.sqlite3"
+    owner: "{{ wwm_user }}"
+    mode: 0600
+
+- name: Install init file
+  template:
+    src: init.j2
+    dest: /etc/init.d/wifiwithme
+    group: root
+    owner: root
+    mode: 0755
+  notify: Restart wifiwithme
+
+- name: Enable wifiwithme
+  service: name=wifiwithme enabled=yes state=started
+
+- name: Put lighttpd proxy rule
+  template:
+    src: lighttpd-80-wifiwithme.conf.j2
+    dest: /etc/lighttpd/conf-available/80-wifiwithme.conf
+  notify: Restart lighttpd
+
+- name: Enable lighttpd proxy rule
+  file:
+    src: /etc/lighttpd/conf-available/80-wifiwithme.conf
+    dest: /etc/lighttpd/conf-enabled/80-wifiwithme.conf
+    state: link
+  notify: Restart lighttpd

+ 68 - 0
contrib/ansible/roles/wifiwithme/templates/init.j2

@@ -0,0 +1,68 @@
+#! /bin/sh
+#
+### BEGIN INIT INFO
+# Provides:          scanbuttond
+# Required-Start:    $syslog $local_fs $remote_fs
+# Required-Stop:     $syslog $local_fs $remote_fs
+# Should-Start:      dbus avahi
+# Should-Stop:       dbus avahi
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Wifi-with-me form
+# Description:       Get good will from people :)
+#
+### END INIT INFO
+
+# Alternative init script using foreground option (do not work otherwise
+# with epson perfection 1660)
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+INSTALL_DIR={{ wwm_install_dir }}
+DAEMON=${INSTALL_DIR}/backend.py
+NAME=wifi-with-me
+DESC="Wifi with me, formulaire wifi"
+
+test -x $DAEMON || exit 0
+
+RUN_AS_USER={{ wwm_user }}
+
+set -e
+
+case "$1" in
+  start)
+        echo -n "Starting $DESC: "
+        start-stop-daemon -d $INSTALL_DIR -b --start --quiet  \
+                --chuid $RUN_AS_USER --exec $DAEMON -- $DAEMON_OPTS
+        echo "$NAME."
+        ;;
+  stop)
+        echo -n "Stopping $DESC: "
+        start-stop-daemon --stop --oknodo --quiet \
+                --exec $DAEMON
+        echo "$NAME."
+        ;;
+  force-reload)
+        # check whether $DAEMON is running. If so, restart
+        start-stop-daemon --stop --test --quiet \
+                --exec $DAEMON -- $DAEMON_OPTS \
+        && $0 restart \
+        || exit 0
+        ;;
+  restart)
+    echo -n "Restarting $DESC: "
+        start-stop-daemon --stop --oknodo --quiet \
+                --exec $DAEMON
+        sleep 1
+        start-stop-daemon -b --start --quiet \
+                --chuid $RUN_AS_USER --exec $DAEMON -- $DAEMON_OPTS
+        echo "$NAME."
+        ;;
+  *)
+        N=/etc/init.d/$NAME
+        echo "Usage: $N {start|stop|restart|force-reload}" >&2
+        exit 1
+        ;;
+esac
+
+exit 0
+

+ 5 - 0
contrib/ansible/roles/wifiwithme/templates/lighttpd-80-wifiwithme.conf.j2

@@ -0,0 +1,5 @@
+$HTTP["host"] =~ "{{ wwm_hostname }}" {
+    proxy.server = ("{{ wwm_folder }}" =>
+           (( "host" => "127.0.0.1", "port" => 8080))
+    )
+}

+ 8 - 0
contrib/ansible/site.yml

@@ -0,0 +1,8 @@
+- hosts: all
+  vars:
+    wwm_install_dir: /var/lib/wifiwithme
+    wwm_user: wifiwithme
+    wwm_hostname: wifiwithme.localhost
+    wwm_folder: "/"
+  roles:
+    - wifiwithme