From e1957ec3df2dc1b416e6692ca9f727993207f987 Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Tue, 10 Feb 2015 23:06:28 +0200 Subject: [PATCH 01/14] Cosmetic Trailing whitespace OCD treatment. --- playbooks/bootstrap.yml | 2 +- playbooks/bootstrap_git.yml | 14 ++++++------- playbooks/main.yml | 2 +- playbooks/roles/apt_localrepo/tasks/main.yml | 10 +++++----- playbooks/roles/build_iso/tasks/main.yml | 6 +++--- playbooks/roles/desktop/tasks/artwork.yml | 8 ++++---- playbooks/roles/desktop/tasks/main.yml | 2 +- playbooks/roles/dhcpd/tasks/main.yml | 6 +++--- playbooks/roles/edx_portal/meta/main.yml | 4 ++-- playbooks/roles/iptables/handlers/main.yml | 2 +- playbooks/roles/iptables/tasks/main.yml | 2 +- playbooks/roles/kalite/tasks/main.yml | 2 +- playbooks/roles/portal/defaults/main.yml | 2 +- playbooks/roles/portal/meta/main.yml | 4 ++-- playbooks/roles/portal/tasks/auto_auth.yml | 2 +- playbooks/roles/portal/tasks/captive.yml | 4 ++-- playbooks/roles/portal/tasks/main.yml | 12 +++++------ playbooks/roles/portal_subsite/tasks/main.yml | 2 +- playbooks/roles/provision_base/tasks/main.yml | 4 ++-- playbooks/roles/vidtest/meta/main.yml | 2 +- playbooks/roles/vidtest/tasks/main.yml | 4 ++-- playbooks/roles/wap/tasks/main.yml | 4 ++-- playbooks/roles/wikipedia/tasks/main.yml | 20 +++++++++---------- 23 files changed, 60 insertions(+), 60 deletions(-) diff --git a/playbooks/bootstrap.yml b/playbooks/bootstrap.yml index 148b6b83..e9e634ae 100644 --- a/playbooks/bootstrap.yml +++ b/playbooks/bootstrap.yml @@ -7,7 +7,7 @@ - hosts: all tasks: - name: "install dependencies" - apt: + apt: name={{ item }} state=installed with_items: diff --git a/playbooks/bootstrap_git.yml b/playbooks/bootstrap_git.yml index a51ad69e..d0fad776 100644 --- a/playbooks/bootstrap_git.yml +++ b/playbooks/bootstrap_git.yml @@ -1,7 +1,7 @@ --- # Get info on the repo dir - stat: - path={{ dir }} + path={{ dir }} follow=yes register: d @@ -9,10 +9,10 @@ # local changes. #- name: "Updating repository repo in {{dir}}" ## Ansible's git module seems to "update" to the specified branch -## in a way that loses local commits if they haven't yet been -## pushed to the branch specified by {{ ver }}. +## in a way that loses local commits if they haven't yet been +## pushed to the branch specified by {{ ver }}. # TODO: Find a safe way to automatically pull down updates -# git: +# git: # ssh_opts="-o StrictHostKeyChecking=no" # repo={{ repo }} # dest={{ dir }} @@ -21,14 +21,14 @@ # recursive=yes # ignore_errors: yes # when: d.stat.exists == True - + # If directory does not exist, clone it - name: "Cloning repository repo in {{dir}}" - git: + git: ssh_opts="-o StrictHostKeyChecking=no" repo={{ repo }} dest={{ dir }} version={{ ver }} recursive=yes when: d.stat.exists == False - + diff --git a/playbooks/main.yml b/playbooks/main.yml index b40b915c..4c286013 100644 --- a/playbooks/main.yml +++ b/playbooks/main.yml @@ -17,7 +17,7 @@ dest=/etc/modules line="bcmdhd op_mode=2" regexp="^bcmdhd" - + - name: Load wlan driver command: modprobe bcmdhd ignore_errors: yes diff --git a/playbooks/roles/apt_localrepo/tasks/main.yml b/playbooks/roles/apt_localrepo/tasks/main.yml index 77f06761..e6db0c42 100644 --- a/playbooks/roles/apt_localrepo/tasks/main.yml +++ b/playbooks/roles/apt_localrepo/tasks/main.yml @@ -2,10 +2,10 @@ apt: name={{ item }} state=latest with_items: - dpkg-dev - - rubygems - - ruby-dev - - gcc - - devscripts + - rubygems + - ruby-dev + - gcc + - devscripts - name: "Install local repo dependencies (gems)" # TODO: Why doesn't this work? # gem: name=fpm state=latest user_install=true @@ -13,7 +13,7 @@ - name: Build local packages shell: "echo 'OUTPUT_DIR=../../packages' > build_settings_local.d/output_dir.conf ; ./build.sh */ chdir={{ pkg_build_dir }}" - name: Move built packages to repo - shell: 'cp -v {{ pkg_build_dir }}/Packages/*.deb {{ provision__base_dir }}/packages/' + shell: 'cp -v {{ pkg_build_dir }}/Packages/*.deb {{ provision__base_dir }}/packages/' - name: Populate local repo shell: '[ "$(ls -tr | tail -n1)" = "Packages.gz" ] || (dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz) chdir={{ provision__base_dir }}/packages' - name: Add local repo to apt sources diff --git a/playbooks/roles/build_iso/tasks/main.yml b/playbooks/roles/build_iso/tasks/main.yml index 0e5a3b32..064337a0 100644 --- a/playbooks/roles/build_iso/tasks/main.yml +++ b/playbooks/roles/build_iso/tasks/main.yml @@ -1,11 +1,11 @@ --- - name: Install Casper - apt: - name=casper + apt: + name=casper state=latest update_cache=yes cache_valid_time=600 - + - name: "Build ISO (this will take a while!)" command: "{{ build_iso__remastersys_root }}/bin/remastersys backup" sudo: yes diff --git a/playbooks/roles/desktop/tasks/artwork.yml b/playbooks/roles/desktop/tasks/artwork.yml index 25b2eaa4..3c53b237 100644 --- a/playbooks/roles/desktop/tasks/artwork.yml +++ b/playbooks/roles/desktop/tasks/artwork.yml @@ -1,10 +1,10 @@ --- - name: Install custom artwork - synchronize: - src=fs/ + synchronize: + src=fs/ dest=/ rsync_path="sudo rsync" - + - name: Configuring users to use custom artwork by default - script: scripts/artwork-post-install.sh + script: scripts/artwork-post-install.sh creates=/tmp/COMPLETED_artwork-post-install diff --git a/playbooks/roles/desktop/tasks/main.yml b/playbooks/roles/desktop/tasks/main.yml index f8db97ff..cff97b39 100644 --- a/playbooks/roles/desktop/tasks/main.yml +++ b/playbooks/roles/desktop/tasks/main.yml @@ -9,6 +9,6 @@ when: desktop__use_gnome2 - name: Start GUI service: name=lightdm state=started - + - include: artwork.yml when: desktop__custom_artwork diff --git a/playbooks/roles/dhcpd/tasks/main.yml b/playbooks/roles/dhcpd/tasks/main.yml index 52212d8e..71382393 100644 --- a/playbooks/roles/dhcpd/tasks/main.yml +++ b/playbooks/roles/dhcpd/tasks/main.yml @@ -1,12 +1,12 @@ --- - name: Install dhcpd apt: - name=isc-dhcp-server + name=isc-dhcp-server state=latest - name: Create dhcpd config - template: + template: src=dhcpd.conf.j2 dest=/etc/dhcp/dhcpd.conf notify: restart dhcpd - + diff --git a/playbooks/roles/edx_portal/meta/main.yml b/playbooks/roles/edx_portal/meta/main.yml index 2c9c1575..e675808f 100644 --- a/playbooks/roles/edx_portal/meta/main.yml +++ b/playbooks/roles/edx_portal/meta/main.yml @@ -2,9 +2,9 @@ dependencies: - role: portal_subsite portal__subsites: - - name: "edx_lms" + - name: "edx_lms" urlpath: "{{ edx__lms_urlpath }}" port: "{{ edx__lms_port }}" - - name: "edx_cms" + - name: "edx_cms" urlpath: "{{ edx__cms_urlpath }}" port: "{{ edx__cms_port }}" diff --git a/playbooks/roles/iptables/handlers/main.yml b/playbooks/roles/iptables/handlers/main.yml index e748a6d0..8e971b46 100644 --- a/playbooks/roles/iptables/handlers/main.yml +++ b/playbooks/roles/iptables/handlers/main.yml @@ -1,6 +1,6 @@ --- - name: reload iptables - service: + service: name=iptables state=restarted enabled=yes diff --git a/playbooks/roles/iptables/tasks/main.yml b/playbooks/roles/iptables/tasks/main.yml index 706a0cdb..3780842b 100644 --- a/playbooks/roles/iptables/tasks/main.yml +++ b/playbooks/roles/iptables/tasks/main.yml @@ -17,7 +17,7 @@ dest="{{ iptables__base_dir }}/rules.d" mode="0755" -- name: Set up iptables +- name: Set up iptables template: src={{ item }} dest="{{ iptables__base_dir }}/" diff --git a/playbooks/roles/kalite/tasks/main.yml b/playbooks/roles/kalite/tasks/main.yml index 0c946253..b7759130 100644 --- a/playbooks/roles/kalite/tasks/main.yml +++ b/playbooks/roles/kalite/tasks/main.yml @@ -21,7 +21,7 @@ #- name: Mounting {{ kalite__provision__base_dir }} # command: mount --bind data {{ kalite__provision__base_dir }} -# when: is_mounted|failed +# when: is_mounted|failed - name: Getting kalite code git: repo={{ kalite__git_source }} dest={{ kalite__provision__base_dir }} diff --git a/playbooks/roles/portal/defaults/main.yml b/playbooks/roles/portal/defaults/main.yml index a69cdf21..2ef8f660 100644 --- a/playbooks/roles/portal/defaults/main.yml +++ b/playbooks/roles/portal/defaults/main.yml @@ -10,7 +10,7 @@ portal__redirects: "{{ portal__base }}/subsites.d" portal__users: "{{ portal__base }}/authorized_clients" portal__capture_chain: "captive" # TODO figure out a way to get IP from ifupdown_external_interface -portal__redirect: "{{ ansible_wlan0 }}" +portal__redirect: "{{ ansible_wlan0 }}" portal__auth: "none" portal__auth_agreement_text: |

By clicking this button, you agree to not be a jerk on the Internet.
diff --git a/playbooks/roles/portal/meta/main.yml b/playbooks/roles/portal/meta/main.yml index d366b84e..114651b9 100644 --- a/playbooks/roles/portal/meta/main.yml +++ b/playbooks/roles/portal/meta/main.yml @@ -1,5 +1,5 @@ --- dependencies: - bind - - php - - iptables + - php + - iptables diff --git a/playbooks/roles/portal/tasks/auto_auth.yml b/playbooks/roles/portal/tasks/auto_auth.yml index 3619f450..7f43a662 100644 --- a/playbooks/roles/portal/tasks/auto_auth.yml +++ b/playbooks/roles/portal/tasks/auto_auth.yml @@ -16,7 +16,7 @@ src="site/auto_auth.php.j2" dest="{{ portal__docroot }}/auth.php" -- name: Creating portal users list +- name: Creating portal users list file: path="{{ portal__users }}" state="touch" diff --git a/playbooks/roles/portal/tasks/captive.yml b/playbooks/roles/portal/tasks/captive.yml index d265ee6f..f1f293db 100644 --- a/playbooks/roles/portal/tasks/captive.yml +++ b/playbooks/roles/portal/tasks/captive.yml @@ -11,9 +11,9 @@ notify: - reload iptables -- name: Creating portal users list +- name: Creating portal users list file: path={{ portal__users }} state=touch mode=644 - owner={{ apache_user }} + owner={{ apache_user }} diff --git a/playbooks/roles/portal/tasks/main.yml b/playbooks/roles/portal/tasks/main.yml index e5272623..54da50ff 100644 --- a/playbooks/roles/portal/tasks/main.yml +++ b/playbooks/roles/portal/tasks/main.yml @@ -16,7 +16,7 @@ state=stopped ignore_errors: yes -- name: Enable Nginx +- name: Enable Nginx service: name=nginx state=started @@ -35,18 +35,18 @@ # TODO: This is an ugly hack. There's probably a better way. - name: Changing default edx lms port lineinfile: - dest=/edx/app/nginx/sites-available/lms - regexp='^(\s*)listen' - backrefs=yes + dest=/edx/app/nginx/sites-available/lms + regexp='^(\s*)listen' + backrefs=yes line='\1listen {{ EDXAPP_LMS_NGINX_PORT }} default;' state=present when: edx__pre_installed is defined and edx__pre_installed - name: Create site content dirs - file: + file: path={{ item }} state=directory - owner=root group={{ common_web_user }} mode=775 + owner=root group={{ common_web_user }} mode=775 with_items: - "{{ portal__redirects }}" diff --git a/playbooks/roles/portal_subsite/tasks/main.yml b/playbooks/roles/portal_subsite/tasks/main.yml index 8ea3ebbb..f7eb30fd 100644 --- a/playbooks/roles/portal_subsite/tasks/main.yml +++ b/playbooks/roles/portal_subsite/tasks/main.yml @@ -1,6 +1,6 @@ --- - shell: echo "{{ portal__subsites }}" | tee /tmp/subsites - + - name: Deploy subsite redirect instructions template: src=nginx_portal_redirect.j2 diff --git a/playbooks/roles/provision_base/tasks/main.yml b/playbooks/roles/provision_base/tasks/main.yml index 3da0140c..a40cdc38 100644 --- a/playbooks/roles/provision_base/tasks/main.yml +++ b/playbooks/roles/provision_base/tasks/main.yml @@ -1,6 +1,6 @@ --- - name: "Installing basic packages" - apt: - name="{{ item }}" + apt: + name="{{ item }}" state="present" with_items: provision__default_packages diff --git a/playbooks/roles/vidtest/meta/main.yml b/playbooks/roles/vidtest/meta/main.yml index 939e6b93..589395fd 100644 --- a/playbooks/roles/vidtest/meta/main.yml +++ b/playbooks/roles/vidtest/meta/main.yml @@ -2,7 +2,7 @@ dependencies: - role: portal_subsite portal__subsites: - - name: "videotest" + - name: "videotest" docroot: "{{ vidtest__docroot }}" urlpath: "{{ vidtest__urlpath }}" #port: "{{ vidtest__port }}" diff --git a/playbooks/roles/vidtest/tasks/main.yml b/playbooks/roles/vidtest/tasks/main.yml index 20c7e1a1..af1757fe 100644 --- a/playbooks/roles/vidtest/tasks/main.yml +++ b/playbooks/roles/vidtest/tasks/main.yml @@ -3,5 +3,5 @@ # template: > # src=site/index.html.j2 # dest={{ vidtest__docroot }}/index.html - - + + diff --git a/playbooks/roles/wap/tasks/main.yml b/playbooks/roles/wap/tasks/main.yml index 73bae253..73f546ee 100644 --- a/playbooks/roles/wap/tasks/main.yml +++ b/playbooks/roles/wap/tasks/main.yml @@ -13,7 +13,7 @@ backup=yes - name: set hostapd to use config file - lineinfile: + lineinfile: dest=/etc/default/hostapd regexp="^DAEMON_CONF=.*" line="DAEMON_CONF=/etc/hostapd.conf" @@ -27,6 +27,6 @@ notify: reload iptables - name: Hostapd should be running - service: + service: name=hostapd state=started diff --git a/playbooks/roles/wikipedia/tasks/main.yml b/playbooks/roles/wikipedia/tasks/main.yml index b35591a8..13f1157b 100644 --- a/playbooks/roles/wikipedia/tasks/main.yml +++ b/playbooks/roles/wikipedia/tasks/main.yml @@ -1,7 +1,7 @@ --- - name: Ensuring that Apache is installed - apt: - name=apache2 + apt: + name=apache2 state=latest update_cache=yes cache_valid_time=600 @@ -13,8 +13,8 @@ - speling - name: Add wikipedia aliases to /etc/hosts - lineinfile: - dest=/etc/hosts + lineinfile: + dest=/etc/hosts line="127.0.0.1 wikipedia www.wikipedia.org en.wikipedia.org wikipedia.org" regexp="^[^#].*wikipedia.org.*" #- name: Install tunapanda-wikipedia @@ -25,8 +25,8 @@ dest="{{ apache_dir }}/sites-available/tunapanda-wikipedia" - name: Linking Apache config - file: - src: "{{ apache_dir }}/sites-available/tunapanda-wikipedia" + file: + src: "{{ apache_dir }}/sites-available/tunapanda-wikipedia" path: "{{ apache_dir }}/sites-enabled/tunapanda-wikipedia" state: link notify: @@ -44,11 +44,11 @@ dest="{{ wikipedia__provision__base_dir }}/notfound.html" - name: Linking Apache document root - file: - src: "{{ wikipedia__provision__base_dir }}" + file: + src: "{{ wikipedia__provision__base_dir }}" path: "{{ apache_docroot }}/wikipedia" state: link - + - name: Creating data dir {{ wikipedia__provision__base_dir }} file: path={{ wikipedia__provision__base_dir }} state=directory @@ -56,7 +56,7 @@ shell: mount | grep {{ wikipedia__provision__base_dir }} register: is_mounted ignore_errors: True - + #- name: Mounting {{ wikipedia__provision__base_dir }} # command: mount --bind {{ vagrant_share }}/playbooks/roles/wikipedia/data {{ wikipedia__provision__base_dir }} # when: is_mounted|failed From 8f4a08e4a1b212edf629e213153fc5004a83d140 Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Tue, 10 Feb 2015 23:12:02 +0200 Subject: [PATCH 02/14] Add full playbook generator script Added a script that generates a playbook that has all roles, and all default variables. --- scripts/genFullPlaybook.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 scripts/genFullPlaybook.sh diff --git a/scripts/genFullPlaybook.sh b/scripts/genFullPlaybook.sh new file mode 100755 index 00000000..94c229af --- /dev/null +++ b/scripts/genFullPlaybook.sh @@ -0,0 +1,30 @@ +#!/bin/bash +cat > fullPlaybook.yml < {{ provision__base_dir }}/provisioning.txt + post_tasks: + - shell: echo "Last provisioning completed at \$(date)" >> {{ provision__base_dir }}/provisioning.txt + + roles: +EOF + +for r in $(find roles/ -maxdepth 1 -mindepth 1 -type d) + do + f=$(basename $r); + echo " - role: $f" >> fullPlaybook.yml +done + +echo "" >> fullPlaybook.yml +echo " vars:" >> fullPlaybook.yml + +(for r in $(ls roles/) ; + do + if [ -f roles/$r/defaults/main.yml ]; + then echo "" ; + echo " ## $r role" ; + cat roles/$r/defaults/main.yml | grep -v '^---' | grep -v '^[[:space:]]*$' | sed 's,^[[:space:]]*, ,'; + fi + done) >> fullPlaybook.yml From cb7b096ce931970468597b54b0265e5abcddd56a Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Tue, 10 Feb 2015 23:16:35 +0200 Subject: [PATCH 03/14] Move/delete files to suit new scheme --- localconfig.yml.sample | 24 ---------- scripts/inventory.py | 61 -------------------------- {playbooks/roles => scripts}/mkrole.sh | 0 3 files changed, 85 deletions(-) delete mode 100644 localconfig.yml.sample delete mode 100755 scripts/inventory.py rename {playbooks/roles => scripts}/mkrole.sh (100%) diff --git a/localconfig.yml.sample b/localconfig.yml.sample deleted file mode 100644 index 290273e0..00000000 --- a/localconfig.yml.sample +++ /dev/null @@ -1,24 +0,0 @@ ---- -# If you know what you are doing, you can customize which roles are deployed -# by creating a copy of this file called `localconfig.yml` and selecting -# your own groups below. -# -# Each file in `playbooks/group_vars` represents an available group. -# Separate multiple groups with commas. -groups: [ default ] - -# You can also fine-tune settings here. You can get a list of -# available settings and their default values by running: -# -# cat playbooks/roles/*/defaults/main.yml -# -# ...but don't forget that these values may also be overridden for -# your group(s), as described in the playbooks/group_vars/ files. -# -# Overides defined here take precedence over values specified anywhere -# else. -# -vars: - var1: "val1" - var2: "val2" - var3: "val3" diff --git a/scripts/inventory.py b/scripts/inventory.py deleted file mode 100755 index 452d79d7..00000000 --- a/scripts/inventory.py +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/python -# -# Dynamic inventory for single-server deployments. See docs for details: -# http://docs.ansible.com/developing_inventory.html -# - -import platform -import argparse -import json -import os -import sys -import yaml - -# Error codes -EBADFILE = 1 - -# Configurables -basedir = os.path.abspath(os.path.dirname(os.path.realpath(__file__)) + "/..") -localconfig_fn = basedir + "/localconfig.yml" - -# --help system -parser = argparse.ArgumentParser(description='Custom Ansible inventory generator') -parser.add_argument("--list", action="store_true", default=False) -parser.add_argument("--host", nargs="?", default=False) - -# Check for a local configuration -list_output = {} -host_output = {} -if os.path.exists(localconfig_fn): - try: - localconfig = yaml.load(open(localconfig_fn,"r").read()) - except Exception, e: - sys.stderr.write("WARNING: Could not parse %s. Error text was '%s'\n" % (localconfig_fn,e)) - sys.exit(EBADFILE) - else: - if localconfig.has_key("groups"): - for group in localconfig["groups"]: - if group == "default": - continue - list_output[group] = { "hosts": [ "127.0.0.1" ] } - - if localconfig.has_key("vars"): - host_output.update(localconfig["vars"]) - -# Defaults and best guesses... -if len(list_output) == 0: - # If no explicit groups are given, - # naively assume that any ARM machine - # counts as a Cubietruck for provisioning - if "arm" in platform.machine(): - default_group = "cubietruck" - else: - default_group = "default" - list_output = { default_group : { "hosts" : [ "127.0.0.1" ] } } - -# Do the deed -args = parser.parse_args() -if args.list: - print json.dumps(list_output, indent=2) -elif args.host: - print json.dumps(host_output, indent=2) diff --git a/playbooks/roles/mkrole.sh b/scripts/mkrole.sh similarity index 100% rename from playbooks/roles/mkrole.sh rename to scripts/mkrole.sh From a8ce88a782b4ea672784daf6f5920a898092c5e4 Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Tue, 10 Feb 2015 23:18:59 +0200 Subject: [PATCH 04/14] Make ansible.cfg use relative paths --- playbooks/ansible.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/playbooks/ansible.cfg b/playbooks/ansible.cfg index 667351dc..8188e3b8 100644 --- a/playbooks/ansible.cfg +++ b/playbooks/ansible.cfg @@ -1,5 +1,5 @@ [defaults] log_path = ansible.log host_key_checking = False -library = /usr/local/tunapanda/provision/ext/edx/playbooks/library -roles_path = /usr/local/tunapanda/provision/playbooks/roles:/usr/local/tunapanda/provision/ext/edx/playbooks/roles +library = ../ext/edx/playbooks/library +roles_path = roles:../ext/edx/playbooks/roles From d923d06e5241965b3feff14b3eb40ec5da63a153 Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Wed, 11 Feb 2015 08:41:31 +0200 Subject: [PATCH 05/14] Split-off main playbook The timestamps part is added to genFullPlaybook.sh script, and the Cubietruck specific stuff are split-off into a separate role. --- playbooks/main.yml | 44 ------------------- playbooks/roles/cubietruck_net/tasks/main.yml | 10 +++++ 2 files changed, 10 insertions(+), 44 deletions(-) delete mode 100644 playbooks/main.yml create mode 100644 playbooks/roles/cubietruck_net/tasks/main.yml diff --git a/playbooks/main.yml b/playbooks/main.yml deleted file mode 100644 index 4c286013..00000000 --- a/playbooks/main.yml +++ /dev/null @@ -1,44 +0,0 @@ ---- -- name: Initiial timestamp - hosts: all - # TODO: Should this go elsewhere? - handlers: - - name: reload nginx - service: name=nginx state=reloaded - - tasks: - - shell: echo "Last provisioning started at $(date)" > {{ provision__base_dir }}/provisioning.txt - -- name: cubietruck ethernet setup - hosts: cubietruck - tasks: - - name: Configure wlan driver - lineinfile: - dest=/etc/modules - line="bcmdhd op_mode=2" - regexp="^bcmdhd" - - - name: Load wlan driver - command: modprobe bcmdhd - ignore_errors: yes - -- name: Base Setup - hosts: all - roles: - - provision_base - -- name: Supporting roles - hosts: all - - tasks: - - name: Install nginx - apt: - name=nginx - state=installed - - include: roles.yml - -- name: Closing timestamp - hosts: all - tasks: - - shell: echo "Last provisioning completed $(date)" >> {{ provision__base_dir }}/provisioning.txt diff --git a/playbooks/roles/cubietruck_net/tasks/main.yml b/playbooks/roles/cubietruck_net/tasks/main.yml new file mode 100644 index 00000000..9a075293 --- /dev/null +++ b/playbooks/roles/cubietruck_net/tasks/main.yml @@ -0,0 +1,10 @@ +--- +- name: Configure wlan driver + lineinfile: + dest=/etc/modules + line="bcmdhd op_mode=2" + regexp="^bcmdhd" + +- name: Load wlan driver + command: modprobe bcmdhd + ignore_errors: yes From 14e437b6a4ff105ab8ff9f13a9d12664d36f9046 Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Wed, 11 Feb 2015 08:53:21 +0200 Subject: [PATCH 06/14] Remove *__enabled default variables Not needed in new scheme. --- playbooks/roles/apt_basic/defaults/main.yml | 1 - playbooks/roles/apt_localrepo/defaults/main.yml | 3 --- playbooks/roles/build_iso/defaults/main.yml | 1 - playbooks/roles/desktop/defaults/main.yml | 1 - playbooks/roles/edx_portal/defaults/main.yml | 1 - playbooks/roles/external_data_drive/defaults/main.yml | 1 - playbooks/roles/iptables/defaults/main.yml | 1 - playbooks/roles/kalite/defaults/main.yml | 1 - playbooks/roles/php/defaults/main.yml | 1 - playbooks/roles/portal/defaults/main.yml | 1 - playbooks/roles/provision_base/defaults/main.yml | 1 - playbooks/roles/users/defaults/main.yml | 1 - playbooks/roles/vidtest/defaults/main.yml | 1 - playbooks/roles/wap/defaults/main.yml | 1 - playbooks/roles/wikipedia/defaults/main.yml | 1 - 15 files changed, 17 deletions(-) delete mode 100644 playbooks/roles/apt_localrepo/defaults/main.yml diff --git a/playbooks/roles/apt_basic/defaults/main.yml b/playbooks/roles/apt_basic/defaults/main.yml index 739ded10..e4b46bdc 100644 --- a/playbooks/roles/apt_basic/defaults/main.yml +++ b/playbooks/roles/apt_basic/defaults/main.yml @@ -1,3 +1,2 @@ --- -apt_basic__enabled: false apt_basic__upgrade_packages: false diff --git a/playbooks/roles/apt_localrepo/defaults/main.yml b/playbooks/roles/apt_localrepo/defaults/main.yml deleted file mode 100644 index 0e90631c..00000000 --- a/playbooks/roles/apt_localrepo/defaults/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -# TODO: Probably going to deprecate this role... -apt_localrepo__enabled: false diff --git a/playbooks/roles/build_iso/defaults/main.yml b/playbooks/roles/build_iso/defaults/main.yml index e90aef27..1451843d 100644 --- a/playbooks/roles/build_iso/defaults/main.yml +++ b/playbooks/roles/build_iso/defaults/main.yml @@ -1,3 +1,2 @@ --- -build_iso__enabled: false build_iso__remastersys_root: "{{ vagrant_share }}/data/build/remastersys" diff --git a/playbooks/roles/desktop/defaults/main.yml b/playbooks/roles/desktop/defaults/main.yml index c1691054..dec97709 100644 --- a/playbooks/roles/desktop/defaults/main.yml +++ b/playbooks/roles/desktop/defaults/main.yml @@ -1,4 +1,3 @@ --- -desktop__enabled: false desktop__use_gnome2: true desktop__custom_artwork: false diff --git a/playbooks/roles/edx_portal/defaults/main.yml b/playbooks/roles/edx_portal/defaults/main.yml index d468099d..2709d973 100644 --- a/playbooks/roles/edx_portal/defaults/main.yml +++ b/playbooks/roles/edx_portal/defaults/main.yml @@ -1,5 +1,4 @@ --- -edx_portal__enabled: false edx__lms_urlpath: "/edx" edx__lms_port: "{{ EDXAPP_LMS_NGINX_PORT }}" edx__cms_urlpath: "/edxcms" diff --git a/playbooks/roles/external_data_drive/defaults/main.yml b/playbooks/roles/external_data_drive/defaults/main.yml index 20a73477..82bd811a 100644 --- a/playbooks/roles/external_data_drive/defaults/main.yml +++ b/playbooks/roles/external_data_drive/defaults/main.yml @@ -1,4 +1,3 @@ --- -external_data_drive__enabled: false external_data_drive__disklabel: "TUNAPANDA_DATA" external_data_drive__mountpoint: "{{ provision__base_dir }}/data" diff --git a/playbooks/roles/iptables/defaults/main.yml b/playbooks/roles/iptables/defaults/main.yml index 7e1323dd..ca2929dc 100644 --- a/playbooks/roles/iptables/defaults/main.yml +++ b/playbooks/roles/iptables/defaults/main.yml @@ -1,5 +1,4 @@ --- -iptables__enabled: false iptables__cmd: "/sbin/iptables" iptables__base_dir: "{{ provision__base_dir }}/data/iptables" iptables__rules_dir: "{{ iptables__base_dir }}/rules.d" diff --git a/playbooks/roles/kalite/defaults/main.yml b/playbooks/roles/kalite/defaults/main.yml index d9b22124..093ce7ae 100644 --- a/playbooks/roles/kalite/defaults/main.yml +++ b/playbooks/roles/kalite/defaults/main.yml @@ -1,5 +1,4 @@ --- -kalite__enabled: false kalite__provision__base_dir: "{{ provision__base_dir }}/data/ka-lite" kalite__user: teacher kalite__git_source: https://github.com/tunapanda/ka-lite diff --git a/playbooks/roles/php/defaults/main.yml b/playbooks/roles/php/defaults/main.yml index 3dbf2d56..f0887959 100644 --- a/playbooks/roles/php/defaults/main.yml +++ b/playbooks/roles/php/defaults/main.yml @@ -1,5 +1,4 @@ --- # Don't install unless pulled in as a default -php__enabled: false php__fpm_url: "127.0.0.1:9000" diff --git a/playbooks/roles/portal/defaults/main.yml b/playbooks/roles/portal/defaults/main.yml index 2ef8f660..da438956 100644 --- a/playbooks/roles/portal/defaults/main.yml +++ b/playbooks/roles/portal/defaults/main.yml @@ -1,5 +1,4 @@ --- -portal__enabled: false portal__port: 80 portal__title: "x2go - Education in a box" portal__description: "

x2go is a collection of free learning materials hosted in a standalone box without requiring internet.

" diff --git a/playbooks/roles/provision_base/defaults/main.yml b/playbooks/roles/provision_base/defaults/main.yml index 2c67b8cb..2dbffe3a 100644 --- a/playbooks/roles/provision_base/defaults/main.yml +++ b/playbooks/roles/provision_base/defaults/main.yml @@ -1,5 +1,4 @@ --- -provision_base__enabled: true provision__base_dir: "/usr/local/tunapanda" apache_user: "www-data" apache_dir: "/etc/apache2" diff --git a/playbooks/roles/users/defaults/main.yml b/playbooks/roles/users/defaults/main.yml index dd192a44..6b3a3788 100644 --- a/playbooks/roles/users/defaults/main.yml +++ b/playbooks/roles/users/defaults/main.yml @@ -1,4 +1,3 @@ --- -users__enabled: false users__num_students: 20 users__force_student_pw_change: false diff --git a/playbooks/roles/vidtest/defaults/main.yml b/playbooks/roles/vidtest/defaults/main.yml index 15daae65..8108cafa 100644 --- a/playbooks/roles/vidtest/defaults/main.yml +++ b/playbooks/roles/vidtest/defaults/main.yml @@ -1,5 +1,4 @@ --- - vidtest__enabled: false vidtest__docroot: "{{ provision__base_dir }}/provision/playbooks/roles/vidtest/data/site" vidtest__urlpath: "/vidtest" vidtest__port: 8901 diff --git a/playbooks/roles/wap/defaults/main.yml b/playbooks/roles/wap/defaults/main.yml index c29fae00..79949210 100644 --- a/playbooks/roles/wap/defaults/main.yml +++ b/playbooks/roles/wap/defaults/main.yml @@ -1,4 +1,3 @@ --- -wap__enabled: false wap__data_ssid: "x2go" wap__data_domain: "x2go.org" diff --git a/playbooks/roles/wikipedia/defaults/main.yml b/playbooks/roles/wikipedia/defaults/main.yml index 23b40931..9927fbe3 100644 --- a/playbooks/roles/wikipedia/defaults/main.yml +++ b/playbooks/roles/wikipedia/defaults/main.yml @@ -1,4 +1,3 @@ --- apache_user: "www-data" -wikipedia__enabled: false wikipedia__provision__base_dir: "{{ provision__base_dir }}/data/wikipedia" From 80e2350b8589b9e338fc34794507ab87122ab413 Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Wed, 11 Feb 2015 09:22:31 +0200 Subject: [PATCH 07/14] Split-off per-platform variables into playbooks --- playbooks/cubietruck.yml | 67 +++++++++++++++++++++++++++ playbooks/group_vars/all | 26 ----------- playbooks/group_vars/cubietruck | 32 ------------- playbooks/group_vars/tunapanda_server | 26 ----------- playbooks/tunapanda_server.yml | 56 ++++++++++++++++++++++ 5 files changed, 123 insertions(+), 84 deletions(-) create mode 100644 playbooks/cubietruck.yml delete mode 100644 playbooks/group_vars/all delete mode 100644 playbooks/group_vars/cubietruck delete mode 100644 playbooks/group_vars/tunapanda_server create mode 100644 playbooks/tunapanda_server.yml diff --git a/playbooks/cubietruck.yml b/playbooks/cubietruck.yml new file mode 100644 index 00000000..2ccf424c --- /dev/null +++ b/playbooks/cubietruck.yml @@ -0,0 +1,67 @@ +--- +## +## This file contains settings for a standalone ARM device that +## serves as a wireless access point and has edX pre-installed +## +- hosts: all + pre_tasks: + - shell: echo "Last provisioning started at $(date)" > {{ provision__base_dir }}/provisioning.txt + post_tasks: + - shell: echo "Last provisioning completed at $(date)" >> {{ provision__base_dir }}/provisioning.txt + + roles: + - role: debops.ifupdown + - role: provision_base + - role: kalite + - role: wap + - role: edx_portal + - role: iptables + - role: vidtest + - role: portal + - role: cubietruck_net + + vars: + # Common vars + provision__base_dir: "/usr/local/tunapanda" + provision__data_dir: "{{ provision__base_dir }}/data" + provision__ext_dir: "{{ provision__base_dir }}/provision/ext" + provision__default_packages: [ git, vim, screen ] + provision__sites_available_dir: "/etc/nginx/sites-available" + provision__sites_enabled_dir: "/etc/nginx/sites-enabled" + + # TODO: split these off into roles? + apache_dir: "/etc/apache2" + apache_docroot: "/var/www" + apache_user: "www-data" + iptables__cmd: "/sbin/iptables" + + # Overrides for other roles + ifupdown_external_interface: "eth1" + ifupdown_internal_interface: "eth0" + nginx_sites_available_dir: "{{ provision__sites_available_dir }}" + nginx_sites_enabled_dir: "{{ provision__sites_enabled_dir }}" + common_web_user: "www-data" + EDXAPP_LMS_NGINX_PORT: '81' + + # CubieTruck specific + ifupdown: True + ifupdown_ignore_networkmanager: True + ifupdown_external_interface: "eth0" + ifupdown_internal_interface: "wlan0" + ifupdown_interfaces: + - iface: "{{ ifupdown_external_interface }}" + inet: "dhcp" + - iface: "{{ ifupdown_internal_interface }}" + inet: "static" + options: | + address 10.0.0.1 + netmask 255.0.0.0 + + # Tell playbooks to assume edx is pre-installed + # this changes what our options are for + # (re-)configuring it. + edx__pre_installed: true + provision__sites_available_dir: "/edx/app/nginx/sites-available/" + provision__sites_enabled_dir: "/edx/app/nginx/sites-enabled/" + php__fpm_url: "unix:/var/run/php5-fpm.sock" + portal__auth: "agreement" diff --git a/playbooks/group_vars/all b/playbooks/group_vars/all deleted file mode 100644 index 51d8f6dd..00000000 --- a/playbooks/group_vars/all +++ /dev/null @@ -1,26 +0,0 @@ ---- -## -## Ths file contains defaults used by all configurations -## -provision__base_dir: "/usr/local/tunapanda" -provision__data_dir: "{{ provision__base_dir }}/data" -provision__ext_dir: "{{ provision__base_dir }}/provision/ext" -provision__default_packages: [ git, vim, screen ] -provision__sites_available_dir: "/etc/nginx/sites-available" -provision__sites_enabled_dir: "/etc/nginx/sites-enabled" - -# TODO: split these off into roles? -apache_dir: "/etc/apache2" -apache_docroot: "/var/www" -apache_user: "www-data" -iptables__cmd: "/sbin/iptables" - -# Overrides for other roles -ifupdown_external_interface: "eth1" -ifupdown_internal_interface: "eth0" -nginx_sites_available_dir: "{{ provision__sites_available_dir }}" -nginx_sites_enabled_dir: "{{ provision__sites_enabled_dir }}" -common_web_user: "www-data" -EDXAPP_LMS_NGINX_PORT: '81' - - diff --git a/playbooks/group_vars/cubietruck b/playbooks/group_vars/cubietruck deleted file mode 100644 index af390ab3..00000000 --- a/playbooks/group_vars/cubietruck +++ /dev/null @@ -1,32 +0,0 @@ ---- -## -## This file contains settings for a standalone ARM device that -## serves as a wireless access point and has edX pre-installed -## -ifupdown: True -ifupdown_ignore_networkmanager: True -ifupdown_external_interface: "eth0" -ifupdown_internal_interface: "wlan0" -ifupdown_interfaces: - - iface: "{{ ifupdown_external_interface }}" - inet: "dhcp" - - iface: "{{ ifupdown_internal_interface }}" - inet: "static" - options: | - address 10.0.0.1 - netmask 255.0.0.0 - -wap__enabled: true -portal__enabled: true -vidtest__enabled: true -edx_portal__enabled: true -kalite__enabled: true - -# Tell playbooks to assume edx is pre-installed -# this changes what our options are for -# (re-)configuring it. -edx__pre_installed: true -provision__sites_available_dir: "/edx/app/nginx/sites-available/" -provision__sites_enabled_dir: "/edx/app/nginx/sites-enabled/" -php__fpm_url: "unix:/var/run/php5-fpm.sock" -portal__auth: "agreement" diff --git a/playbooks/group_vars/tunapanda_server b/playbooks/group_vars/tunapanda_server deleted file mode 100644 index 7081f83e..00000000 --- a/playbooks/group_vars/tunapanda_server +++ /dev/null @@ -1,26 +0,0 @@ ---- -## -## This file contains settings for a standalone classroom server -## It assumes that the server has a classroom LAN on the primary -## ethernet card, and (optionally) an Internet connection on the -## secondary card. -## - -# Network setup -ifupdown_internal_interface: eth0 -portal__auth: "auto" -portal__redirect: "{{ ansible_eth0 }}" -ifupdown: True -ifupdown_ignore_networkmanager: True -ifupdown_interfaces: - - iface: "{{ ifupdown_internal_interface }}" - inet: 'static' - options: | - address "10.0.0.1" - netmask "255.0.0.0" - -# Enabled roles -portal__enabled: true -#vidtest__enabled: true -#kalite__enabled: true - diff --git a/playbooks/tunapanda_server.yml b/playbooks/tunapanda_server.yml new file mode 100644 index 00000000..26879622 --- /dev/null +++ b/playbooks/tunapanda_server.yml @@ -0,0 +1,56 @@ +--- +## +## This file contains settings for a standalone classroom server +## It assumes that the server has a classroom LAN on the primary +## ethernet card, and (optionally) an Internet connection on the +## secondary card. +## +- hosts: all + pre_tasks: + - shell: echo "Last provisioning started at $(date)" > {{ provision__base_dir }}/provisioning.txt + post_tasks: + - shell: echo "Last provisioning completed at $(date)" >> {{ provision__base_dir }}/provisioning.txt + + roles: + - role: debops.ifupdown + - role: provision_base + #- role: kalite + #- role: vidtest + - role: portal + + vars: + # Common vars + provision__base_dir: "/usr/local/tunapanda" + provision__data_dir: "{{ provision__base_dir }}/data" + provision__ext_dir: "{{ provision__base_dir }}/provision/ext" + provision__default_packages: [ git, vim, screen ] + provision__sites_available_dir: "/etc/nginx/sites-available" + provision__sites_enabled_dir: "/etc/nginx/sites-enabled" + + # TODO: split these off into roles? + apache_dir: "/etc/apache2" + apache_docroot: "/var/www" + apache_user: "www-data" + iptables__cmd: "/sbin/iptables" + + # Overrides for other roles + ifupdown_external_interface: "eth1" + ifupdown_internal_interface: "eth0" + nginx_sites_available_dir: "{{ provision__sites_available_dir }}" + nginx_sites_enabled_dir: "{{ provision__sites_enabled_dir }}" + common_web_user: "www-data" + EDXAPP_LMS_NGINX_PORT: '81' + + # Tunepanda server specific + # Network setup + ifupdown_internal_interface: eth0 + portal__auth: "auto" + portal__redirect: "{{ ansible_eth0 }}" + ifupdown: True + ifupdown_ignore_networkmanager: True + ifupdown_interfaces: + - iface: "{{ ifupdown_internal_interface }}" + inet: 'static' + options: | + address "10.0.0.1" + netmask "255.0.0.0" From fa56570554a56133227aedc0a049aae44a749194 Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Wed, 11 Feb 2015 10:45:28 +0200 Subject: [PATCH 08/14] Make paths FHS compliant --- Vagrantfile | 4 ++-- playbooks/cubietruck.yml | 2 +- playbooks/roles/apt_localrepo/tasks/main.yml | 2 +- playbooks/roles/portal/data/site/auth.php | 2 +- playbooks/roles/provision_base/defaults/main.yml | 2 +- playbooks/roles/vidtest/templates/conf/vidtest.j2 | 4 ++-- playbooks/roles/wikipedia/data/notfound.html | 2 +- playbooks/tunapanda_server.yml | 2 +- scripts/bootstrap.sh | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index 300f1e68..e685a7ab 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -10,7 +10,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # please see the online documentation at vagrantup.com. config.vm.box = "hashicorp/precise64" - config.vm.synced_folder ".", "/usr/local/tunapanda/provision" + config.vm.synced_folder ".", "/opt/tunapanda/provision" # These environment vars can be used to alter the behavior of # the bootstrapping script. @@ -25,7 +25,7 @@ export PROVISION_BOOTSTRAP_DIR="#{ENV['PROVISION_BOOTSTRAP_DIR']}" export PROVISION_BOOTSTRAP_PLAYBOOK="#{ENV['PROVISION_BOOTSTRAP_PLAYBOOK']}" export PROVISION_BOOTSTRAP_INVENTORY="#{ENV['PROVISION_BOOTSTRAP_INVENTORY']}" export PROVISION_BOOTSTRAP_FALLBACK_URL="#{ENV['PROVISION_BOOTSTRAP_FALLBACK_URL']}" -/usr/local/tunapanda/provision/scripts/bootstrap.sh +/opt/tunapanda/provision/scripts/bootstrap.sh SCRIPT config.vm.provision "shell", inline: $script, keep_color: true diff --git a/playbooks/cubietruck.yml b/playbooks/cubietruck.yml index 2ccf424c..a4f3c7c0 100644 --- a/playbooks/cubietruck.yml +++ b/playbooks/cubietruck.yml @@ -22,7 +22,7 @@ vars: # Common vars - provision__base_dir: "/usr/local/tunapanda" + provision__base_dir: "/opt/tunapanda" provision__data_dir: "{{ provision__base_dir }}/data" provision__ext_dir: "{{ provision__base_dir }}/provision/ext" provision__default_packages: [ git, vim, screen ] diff --git a/playbooks/roles/apt_localrepo/tasks/main.yml b/playbooks/roles/apt_localrepo/tasks/main.yml index e6db0c42..68b13942 100644 --- a/playbooks/roles/apt_localrepo/tasks/main.yml +++ b/playbooks/roles/apt_localrepo/tasks/main.yml @@ -17,6 +17,6 @@ - name: Populate local repo shell: '[ "$(ls -tr | tail -n1)" = "Packages.gz" ] || (dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz) chdir={{ provision__base_dir }}/packages' - name: Add local repo to apt sources - apt_repository: repo="deb file:/usr/local/tunapanda/packages ./" state=present + apt_repository: repo="deb file:/opt/tunapanda/packages ./" state=present - name: Update the apt cache unless it was just updated apt: update_cache=yes cache_valid_time=10 diff --git a/playbooks/roles/portal/data/site/auth.php b/playbooks/roles/portal/data/site/auth.php index 1de518d0..23219a7c 100644 --- a/playbooks/roles/portal/data/site/auth.php +++ b/playbooks/roles/portal/data/site/auth.php @@ -28,7 +28,7 @@ function validate_auth_form() { $arp = "/usr/sbin/arp"; // The following file is used to keep track of users -$users_fn = "/usr/local/tunapanda/data/captive_portal/users"; +$users_fn = "/opt/tunapanda/data/captive_portal/users"; // Attempt to get the client mac address $mac = shell_exec("$arp -a ".$_SERVER['REMOTE_ADDR']); diff --git a/playbooks/roles/provision_base/defaults/main.yml b/playbooks/roles/provision_base/defaults/main.yml index 2dbffe3a..4ae25e02 100644 --- a/playbooks/roles/provision_base/defaults/main.yml +++ b/playbooks/roles/provision_base/defaults/main.yml @@ -1,5 +1,5 @@ --- -provision__base_dir: "/usr/local/tunapanda" +provision__base_dir: "/opt/tunapanda" apache_user: "www-data" apache_dir: "/etc/apache2" apache_docroot: "/var/www" diff --git a/playbooks/roles/vidtest/templates/conf/vidtest.j2 b/playbooks/roles/vidtest/templates/conf/vidtest.j2 index 62333a40..51f9e64b 100644 --- a/playbooks/roles/vidtest/templates/conf/vidtest.j2 +++ b/playbooks/roles/vidtest/templates/conf/vidtest.j2 @@ -21,7 +21,7 @@ server { listen 80; listen [::]:80 default_server ipv6only=on; - root /usr/local/tunapanda/data/vidtest; + root {{ provision__base_dir }}/data/vidtest; index index.html index.htm; # Make site accessible from http://localhost/ @@ -44,7 +44,7 @@ server { } location ~ /video/.*(\..*) { - alias /usr/local/tunapanda/data/vidtest/test$1; + alias {{ provision__base_dir }}/data/vidtest/test$1; } location ~ \.php$ { diff --git a/playbooks/roles/wikipedia/data/notfound.html b/playbooks/roles/wikipedia/data/notfound.html index 999ac06f..02b3ac4f 100644 --- a/playbooks/roles/wikipedia/data/notfound.html +++ b/playbooks/roles/wikipedia/data/notfound.html @@ -13,4 +13,4 @@
Wikipedia content not found
-Either you are searching for something that is not in the WikipediaForSchools collection, or you have not installed the WikipediaForSchools content. In that case, you will need to download the content archive and extract it into /usr/local/tunapanda/data/wikipediaforschools/ +Either you are searching for something that is not in the WikipediaForSchools collection, or you have not installed the WikipediaForSchools content. In that case, you will need to download the content archive and extract it into /opt/tunapanda/data/wikipediaforschools/ diff --git a/playbooks/tunapanda_server.yml b/playbooks/tunapanda_server.yml index 26879622..a9a82b5c 100644 --- a/playbooks/tunapanda_server.yml +++ b/playbooks/tunapanda_server.yml @@ -20,7 +20,7 @@ vars: # Common vars - provision__base_dir: "/usr/local/tunapanda" + provision__base_dir: "/opt/tunapanda" provision__data_dir: "{{ provision__base_dir }}/data" provision__ext_dir: "{{ provision__base_dir }}/provision/ext" provision__default_packages: [ git, vim, screen ] diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 00456f3d..d6261686 100755 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -22,7 +22,7 @@ function step() { ## Configs # All of these can be overridden by setting them as environment vars PROVISION_AUTO_UPDATE=${PROVISION_AUTO_UPDATE:-true} -PROVISION_BASE_DIR=${PROVISION_BASE_DIR:-"/usr/local/tunapanda"} +PROVISION_BASE_DIR=${PROVISION_BASE_DIR:-"/opt/tunapanda"} ## TODO: Change usernamenumber URLs back to tunapanda PROVISION_CORE_REPO=${PROVISION_CORE_REPO:-"http://github.com/usernamenumber/provision"} PROVISION_CORE_DIR=${PROVISION_CORE_DIR:-"${PROVISION_BASE_DIR}/provision"} From fc23d2308a3dbb4e0e21cfd9c8914d8fd81be7ae Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Wed, 11 Feb 2015 14:53:47 +0200 Subject: [PATCH 09/14] Revert trailing white-space removal in genFullPlaybook.sh This was originally done to handle defaults files with bad spacing, but it ended up breaking multi-line variables. --- scripts/genFullPlaybook.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/genFullPlaybook.sh b/scripts/genFullPlaybook.sh index 94c229af..04e02342 100755 --- a/scripts/genFullPlaybook.sh +++ b/scripts/genFullPlaybook.sh @@ -25,6 +25,6 @@ echo " vars:" >> fullPlaybook.yml if [ -f roles/$r/defaults/main.yml ]; then echo "" ; echo " ## $r role" ; - cat roles/$r/defaults/main.yml | grep -v '^---' | grep -v '^[[:space:]]*$' | sed 's,^[[:space:]]*, ,'; + cat roles/$r/defaults/main.yml | grep -v '^---' | grep -v '^[[:space:]]*$' | sed 's,^, ,'; fi done) >> fullPlaybook.yml From 41b0773358ac4681b6e4f0d7b4efd6b6a5c38b67 Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Wed, 11 Feb 2015 14:55:57 +0200 Subject: [PATCH 10/14] Fix vidtest's defaults file spacing This fixes fullPlaybook.yml generation. --- playbooks/roles/vidtest/defaults/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/playbooks/roles/vidtest/defaults/main.yml b/playbooks/roles/vidtest/defaults/main.yml index 8108cafa..1e29b90b 100644 --- a/playbooks/roles/vidtest/defaults/main.yml +++ b/playbooks/roles/vidtest/defaults/main.yml @@ -1,4 +1,4 @@ --- - vidtest__docroot: "{{ provision__base_dir }}/provision/playbooks/roles/vidtest/data/site" - vidtest__urlpath: "/vidtest" - vidtest__port: 8901 +vidtest__docroot: "{{ provision__base_dir }}/provision/playbooks/roles/vidtest/data/site" +vidtest__urlpath: "/vidtest" +vidtest__port: 8901 From 4d7da21f452854e5a6973551b8512e170068ae75 Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Wed, 11 Feb 2015 15:12:53 +0200 Subject: [PATCH 11/14] Add provision base dir creation pre_task to genFullPlaybook.sh --- scripts/genFullPlaybook.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/genFullPlaybook.sh b/scripts/genFullPlaybook.sh index 04e02342..0b3309c6 100755 --- a/scripts/genFullPlaybook.sh +++ b/scripts/genFullPlaybook.sh @@ -4,6 +4,8 @@ cat > fullPlaybook.yml < {{ provision__base_dir }}/provisioning.txt post_tasks: - shell: echo "Last provisioning completed at \$(date)" >> {{ provision__base_dir }}/provisioning.txt From 75bee6c0fe32a1cb1245c1c13881eacfbcc0dbe8 Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Wed, 11 Feb 2015 15:29:10 +0200 Subject: [PATCH 12/14] Move some common vars into provision_base --- playbooks/roles/provision_base/defaults/main.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/playbooks/roles/provision_base/defaults/main.yml b/playbooks/roles/provision_base/defaults/main.yml index 4ae25e02..b834e539 100644 --- a/playbooks/roles/provision_base/defaults/main.yml +++ b/playbooks/roles/provision_base/defaults/main.yml @@ -1,5 +1,12 @@ --- +# TODO: split-off some of these into other roles provision__base_dir: "/opt/tunapanda" +provision__data_dir: "{{ provision__base_dir }}/data" +provision__ext_dir: "{{ provision__base_dir }}/provision/ext" +provision__default_packages: [ git, vim, screen ] +provision__sites_available_dir: "/etc/nginx/sites-available" +provision__sites_enabled_dir: "/etc/nginx/sites-enabled" + apache_user: "www-data" apache_dir: "/etc/apache2" apache_docroot: "/var/www" From 71efa93178e70a5715ddccb956c6768fa108fe8e Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Wed, 11 Feb 2015 15:42:12 +0200 Subject: [PATCH 13/14] Add NGINX handlers to portal role --- playbooks/roles/portal/handlers/main.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 playbooks/roles/portal/handlers/main.yml diff --git a/playbooks/roles/portal/handlers/main.yml b/playbooks/roles/portal/handlers/main.yml new file mode 100644 index 00000000..81b7f6b7 --- /dev/null +++ b/playbooks/roles/portal/handlers/main.yml @@ -0,0 +1,6 @@ +--- +- name: restart nginx + service: name=nginx state=restarted + +- name: reload nginx + service: name=nginx state=reloaded From bd97c1c0244146e8f02a1ab48618283d1c6c4cf2 Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Wed, 11 Feb 2015 15:48:11 +0200 Subject: [PATCH 14/14] Add common_web_user to provision_base defaults I think these variables should be renamed, and perhaps moved somewhere else. --- playbooks/roles/provision_base/defaults/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/playbooks/roles/provision_base/defaults/main.yml b/playbooks/roles/provision_base/defaults/main.yml index b834e539..a6e04ed8 100644 --- a/playbooks/roles/provision_base/defaults/main.yml +++ b/playbooks/roles/provision_base/defaults/main.yml @@ -10,3 +10,4 @@ provision__sites_enabled_dir: "/etc/nginx/sites-enabled" apache_user: "www-data" apache_dir: "/etc/apache2" apache_docroot: "/var/www" +common_web_user: "www-data"