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/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/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 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/cubietruck.yml b/playbooks/cubietruck.yml new file mode 100644 index 00000000..a4f3c7c0 --- /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: "/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" + + # 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/main.yml b/playbooks/main.yml deleted file mode 100644 index b40b915c..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/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/apt_localrepo/tasks/main.yml b/playbooks/roles/apt_localrepo/tasks/main.yml index 77f06761..68b13942 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,10 +13,10 @@ - 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 - 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/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/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/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 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/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/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/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/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/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/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/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/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/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/portal/defaults/main.yml b/playbooks/roles/portal/defaults/main.yml index a69cdf21..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.
" @@ -10,7 +9,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/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
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/defaults/main.yml b/playbooks/roles/provision_base/defaults/main.yml
index 2c67b8cb..a6e04ed8 100644
--- a/playbooks/roles/provision_base/defaults/main.yml
+++ b/playbooks/roles/provision_base/defaults/main.yml
@@ -1,6 +1,13 @@
---
-provision_base__enabled: true
-provision__base_dir: "/usr/local/tunapanda"
+# 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"
+common_web_user: "www-data"
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/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..1e29b90b 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
+vidtest__docroot: "{{ provision__base_dir }}/provision/playbooks/roles/vidtest/data/site"
+vidtest__urlpath: "/vidtest"
+vidtest__port: 8901
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/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/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/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/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 @@