Browse Source

Integrated ansible example playbook fixes #6

Jocelyn Delande 10 years ago
parent
commit
41c5ba65b6

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

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

+ 62 - 0
contrib/ansible/templates/init.j2

@@ -0,0 +1,62 @@
+#! /bin/sh
+#
+### BEGIN INIT INFO
+# Provides:          wifi-with-me
+# Required-Start:    $syslog $local_fs $remote_fs
+# Required-Stop:     $syslog $local_fs $remote_fs
+# 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
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+INSTALL_DIR={{ wwm_install_dir }}
+DAEMON=${INSTALL_DIR}/backend.py
+PIDFILE=/var/run/wifiwithme.pid
+NAME=wifi-with-me
+DESC="Wifi with me, formulaire wifi"
+
+test -x $DAEMON || exit 0
+
+RUN_AS_USER={{ wwm_user }}
+
+case "$1" in
+  start)
+        echo -n "Starting $DESC: "
+        start-stop-daemon -d $INSTALL_DIR -b --start --quiet  \
+                --chuid $RUN_AS_USER --exec $DAEMON \
+                --pidfile $PIDFILE --make-pidfile \
+                -- $DAEMON_OPTS
+        echo "$NAME."
+        ;;
+  stop)
+        echo -n "Stopping $DESC: "
+        start-stop-daemon -d $INSTALL_DIR --stop --oknodo \
+                --pidfile $PIDFILE && rm $PIDFILE
+        echo "$NAME."
+        ;;
+  force-reload)
+        # check whether $DAEMON is running. If so, restart
+        start-stop-daemon --stop --test --quiet \
+                --pidfile $PIDFILE \
+                -- $DAEMON_OPTS \
+        && $0 restart \
+        || exit 0
+        ;;
+  restart)
+    echo "Restarting $DESC: " \
+        && $0 stop  \
+        && $0 start \
+        || exit 0
+        ;;
+  *)
+        N=/etc/init.d/$NAME
+        echo "Usage: $N {start|stop|restart|force-reload}" >&2
+        exit 1
+        ;;
+esac
+
+exit 0
+

+ 5 - 0
contrib/ansible/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))
+    )
+}

+ 67 - 0
contrib/ansible/wifiwithme.yml

@@ -0,0 +1,67 @@
+- hosts: all
+  vars:
+    wwm_install_dir: /var/lib/wifiwithme
+    wwm_user: wifiwithme
+    wwm_hostname: wifiwithme.localhost
+    wwm_folder: "/"
+
+  tasks:
+    - 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: Files ownership
+      file:
+        dest: "{{ wwm_install_dir }}"
+        owner: "{{ wwm_user }}"
+        recurse: yes
+
+    - name: Install init file
+      template:
+        src: templates/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: templates/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
+
+  handlers:
+    - name: Restart lighttpd
+      service: name=lighttpd state=restarted
+
+    - name: Restart wifiwithme
+      service: name=wifiwithme state=restarted