mirror of
				https://github.com/iiab/iiab.git
				synced 2025-03-09 15:40:17 +00:00 
			
		
		
		
	
						commit
						ad0285298e
					
				
					 45 changed files with 279 additions and 290 deletions
				
			
		| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
# (PRE-)release version number, for {{ iiab_env_file }} = /etc/iiab/iiab.env
 | 
			
		||||
# iiab_base_ver: 7.0
 | 
			
		||||
# iiab_base_ver: 7.1
 | 
			
		||||
# iiab_revision: 0
 | 
			
		||||
# ABOVE MOVED TO /opt/iiab/iiab/vars/default_vars.yml
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -14,7 +14,6 @@ discovered_wan_iface: none
 | 
			
		|||
 | 
			
		||||
# Old defs
 | 
			
		||||
gui_port: 80
 | 
			
		||||
exFAT_enabled: False
 | 
			
		||||
is_F18: False
 | 
			
		||||
 | 
			
		||||
# Set default 1-prep discovered hardware
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,30 +43,6 @@
 | 
			
		|||
- name: Pre-check that IIAB's "XYZ_install" + "XYZ_enabled" vars (1) are defined, (2) are boolean-not-string variables, and (3) contain plausible values.  Also checks that "XYZ_install" is True when "XYZ_installed" is defined.
 | 
			
		||||
  include_tasks: validate_vars.yml
 | 
			
		||||
 | 
			
		||||
# SEE: https://github.com/iiab/iiab/blob/master/roles/nginx/README.md
 | 
			
		||||
- name: "apache_install is currently '{{ apache_install }}' and apache_enabled is currently '{{ apache_enabled }}'.  Now let's set 'apache_install: True' and 'apache_enabled: True' if NGINX is set not to be enabled OR if any of {Elgg, Lokole, Moodle, Node-RED} are set to install."
 | 
			
		||||
  set_fact:
 | 
			
		||||
    apache_install: True
 | 
			
		||||
    apache_enabled: True
 | 
			
		||||
  when: not nginx_enabled or elgg_install or lokole_install or moodle_install or nodered_install
 | 
			
		||||
#
 | 
			
		||||
#- name: "Verify 'apache_install: True' and 'apache_enabled: True' if any of {DokuWiki, Elgg, Lokole, Moodle, Nextcloud, Node-RED} are set to install"
 | 
			
		||||
#  assert:
 | 
			
		||||
#    that: apache_install and apache_enabled or not (dokuwiki_install or elgg_install or lokole_install or moodle_install or nextcloud_install or nodered_install)
 | 
			
		||||
#    fail_msg: "PLEASE CONFIRM 'apache_install: True' AND 'apache_enable: True' IF YOU'RE TRYING TO INSTALL ANY OF {dokuwiki, elgg, lokole, moodle, nextcloud, nodered} e.g. IN: /etc/iiab/local_vars.yml"
 | 
			
		||||
#    quiet: yes
 | 
			
		||||
#
 | 
			
		||||
#- name: "Verify 'apache_install: True' and 'apache_enabled: True' if 'nginx_enabled: False' -- e.g. for Apache testing of older playbooks lacking full NGINX support"
 | 
			
		||||
#  assert:
 | 
			
		||||
#    that: apache_install and apache_enabled or nginx_enabled
 | 
			
		||||
#    fail_msg: "PLEASE CONFIRM 'apache_install: True' AND 'apache_enable: True' IF 'nginx_enabled: False' e.g. IN: /etc/iiab/local_vars.yml"
 | 
			
		||||
#    quiet: yes
 | 
			
		||||
 | 
			
		||||
- name: Set exFAT_enabled if xo_model != "none"
 | 
			
		||||
  set_fact:
 | 
			
		||||
    exFAT_enabled: True
 | 
			
		||||
  when: xo_model != "none"
 | 
			
		||||
 | 
			
		||||
# Discover: do we have a gateway?
 | 
			
		||||
# If Ansible detects gateway, becomes WAN candidate.
 | 
			
		||||
- name: "Do we have a gateway? If so set discovered_wan_iface: {{ ansible_default_ipv4.alias }}"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,10 +8,16 @@
 | 
			
		|||
    name: mysql
 | 
			
		||||
  when: mysql_install | bool
 | 
			
		||||
 | 
			
		||||
- name: HTTPD (Apache)
 | 
			
		||||
  include_role:
 | 
			
		||||
    name: httpd
 | 
			
		||||
  when: apache_install | bool
 | 
			
		||||
# 2020-05-21: Apache role 'httpd' is installed as nec by any of these 6 roles:
 | 
			
		||||
#
 | 
			
		||||
#    cups, elgg, lokole, moodle, nodered, phpmyadmin
 | 
			
		||||
#
 | 
			
		||||
# These 14 roles conditionally touch /etc/apache2/sites-available/*.conf files:
 | 
			
		||||
#
 | 
			
		||||
#    awstats, calibre-web, gitea, internetarchive, kalite, kiwix, kolibri,
 | 
			
		||||
#    mediawiki, munin, nextcloud, sugarizer, usb_lib, wordpress, www_options
 | 
			
		||||
#
 | 
			
		||||
# SEE ALSO: https://github.com/iiab/iiab/blob/master/roles/nginx/README.md
 | 
			
		||||
 | 
			
		||||
- name: NGINX
 | 
			
		||||
  include_role:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,10 +41,9 @@
 | 
			
		|||
    name: samba
 | 
			
		||||
  when: samba_install | bool
 | 
			
		||||
 | 
			
		||||
# 2020-02-12: what was roles/homepage lives in roles/www_base &
 | 
			
		||||
# roles/www_options for now.  Eventually softcoding of iiab_home_url
 | 
			
		||||
# should happen everywhere (incl Admin Console) to allow more field
 | 
			
		||||
# options, e.g. changing /library/www/html/home even when offline...
 | 
			
		||||
# 2020-02-17: what was roles/homepage lives in roles/www_options.  Eventually
 | 
			
		||||
# softcoding of iiab_home_url should happen everywhere (incl Admin Console) for
 | 
			
		||||
# more field options, e.g. changing /library/www/html/home even when offline...
 | 
			
		||||
 | 
			
		||||
- name: WWW_OPTIONS (WWW_BASE should have been installed earlier)
 | 
			
		||||
  include_role:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,34 +30,10 @@
 | 
			
		|||
    name: calibre-web
 | 
			
		||||
  when: calibreweb_install | bool
 | 
			
		||||
 | 
			
		||||
# Could split these two below to Stage 10?  2020-02-12: Experimentally moving
 | 
			
		||||
# stuff to roles/3-base-server, 4-server-options, roles/httpd, roles/nginx.
 | 
			
		||||
 | 
			
		||||
# - name: "Set 'nginx_enabled: True'"
 | 
			
		||||
#   set_fact:
 | 
			
		||||
#     nginx_enabled: True
 | 
			
		||||
#
 | 
			
		||||
# - name: Fully Enable / Configure NGINX (already installed in Stage 3-BASE-SERVER) if 'nginx_enabled' is True
 | 
			
		||||
#   include_role:
 | 
			
		||||
#     name: nginx
 | 
			
		||||
#   when: nginx_enabled | bool    # WAS: nginx_install
 | 
			
		||||
# # If just CONFIGURING (etc) shouldn't we use one of the following instead ??
 | 
			
		||||
# # include_tasks: roles/nginx/tasks/setup.yml
 | 
			
		||||
# # include_tasks: roles/nginx/tasks/enable.yml
 | 
			
		||||
 | 
			
		||||
# - name: "Set 'apache_enabled: True'"
 | 
			
		||||
#   set_fact:
 | 
			
		||||
#     apache_enabled: True
 | 
			
		||||
#
 | 
			
		||||
# - name: Fully Enable / Configure Apache systemd service ({{ apache_service }}) if 'apache_enabled' is True
 | 
			
		||||
#   include_role:
 | 
			
		||||
#     name: httpd
 | 
			
		||||
#     #name: httpd-enable
 | 
			
		||||
#   when: apache_enabled | bool    # WAS: apache_install
 | 
			
		||||
# # WARNING THAT APACHE IS AUTO-ENABLED BY THESE ~6 APPS ALONE!
 | 
			
		||||
# # https://github.com/holta/iiab/blob/scaff2/roles/0-init/tasks/main.yml#L40-L44
 | 
			
		||||
# # Summarized @ https://github.com/iiab/iiab/blob/master/roles/nginx/README.md
 | 
			
		||||
# # 2020-01-23: APACHE FUTURE SUMMARY QUESTIONS @ roles/httpd/tasks/main.yml
 | 
			
		||||
- name: '2020-05-21: TEMPORARILY INSTALL APACHE UNTIL ADMIN CONSOLE DECLARES (OR REMOVES?) ITS DEPENDENCY within [console : Enable ssl] to avoid error "Neither of apache2ctl nor apachctl found. At least one apache control binary is necessary." -- possibly var adm_cons_force_ssl is still useful here?'
 | 
			
		||||
  package:
 | 
			
		||||
    name: apache2
 | 
			
		||||
  when: admin_console_install | bool
 | 
			
		||||
 | 
			
		||||
- name: Recording STAGE 9 HAS COMPLETED ====================
 | 
			
		||||
  lineinfile:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
# TO DO:
 | 
			
		||||
#
 | 
			
		||||
# - Prepare for a possible future w/o Apache by verifying/refining below...
 | 
			
		||||
#   - 5 'when: apache_install | bool'
 | 
			
		||||
#   - 5 'when: apache_installed is defined'
 | 
			
		||||
#   - 1 'when: nginx_install | bool'
 | 
			
		||||
#   - 8 core stanzas w/o such 'when:' clauses
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -19,11 +19,11 @@
 | 
			
		|||
      - libapache2-mod-authnz-external
 | 
			
		||||
      - apache2-utils
 | 
			
		||||
    state: present
 | 
			
		||||
  when: apache_install | bool
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
- name: Run 'a2enmod cgi' to enable cgi execution via Apache
 | 
			
		||||
  command: a2enmod cgi
 | 
			
		||||
  when: apache_install | bool
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
- name: Create directory... mkdir {{ apache_log_dir }}, recursively chown {{ apache_user }}:{{ apache_user }}, with chmod u+rw,g+r,g-w,o-rwx
 | 
			
		||||
  file:
 | 
			
		||||
| 
						 | 
				
			
			@ -34,7 +34,7 @@
 | 
			
		|||
    group: "{{ apache_user }}"
 | 
			
		||||
    mode: u+rw,g+r,g-w,o-rwx    # '0750' turned on too many x bits
 | 
			
		||||
    #force: yes
 | 
			
		||||
  when: apache_install | bool
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
- name: Create 2 directories... mkdir {{ awstats_data_dir }} (intermediate summary storage) and /usr/lib/cgi-bin/awstats, recursively chown {{ apache_user }}:{{ apache_user }}, with chmod u+rw,g+r,g-w,o-rwx
 | 
			
		||||
  file:
 | 
			
		||||
| 
						 | 
				
			
			@ -53,13 +53,13 @@
 | 
			
		|||
  template:
 | 
			
		||||
    src: apache-awstats.conf
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}/awstats.conf"    # apache2/sites-available on debuntu
 | 
			
		||||
  when: apache_install | bool
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
- name: Install /etc/logrotate.d/apache2 from template, to ensure logrotate doesn't make logs unreadable
 | 
			
		||||
  template:
 | 
			
		||||
    src: logrotate.d.apache2
 | 
			
		||||
    dest: /etc/logrotate.d/apache2
 | 
			
		||||
  when: apache_install | bool
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
- name: Does /etc/awstats/awstats.conf exist?
 | 
			
		||||
  stat:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,8 +22,8 @@
 | 
			
		|||
    mode: '0755'
 | 
			
		||||
  with_items:
 | 
			
		||||
    - "{{ calibreweb_home }}"         # /library/calibre-web
 | 
			
		||||
    - "{{ calibreweb_venv_path }}"    # /usr/local/calibre-web
 | 
			
		||||
    - "{{ calibreweb_config }}"       # /library/calibre-web/config
 | 
			
		||||
    - "{{ calibreweb_venv_path }}"    # /usr/local/calibre-web-py3
 | 
			
		||||
 | 
			
		||||
## TODO: Calibre-web future release might get into pypi https://github.com/janeczku/calibre-web/issues/456
 | 
			
		||||
- name: Clone i.e. download Calibre-Web ({{ calibreweb_version }}) from https://github.com/janeczku/calibre-web.git to {{ calibreweb_venv_path }}
 | 
			
		||||
| 
						 | 
				
			
			@ -61,7 +61,7 @@
 | 
			
		|||
  template:
 | 
			
		||||
    src: calibre-web.conf.j2
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}/calibre-web.conf"    # apache2/sites-available on debuntu
 | 
			
		||||
  when: apache_install | bool
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
- name: Does /library/calibre-web/metadata.db exist?
 | 
			
		||||
  stat:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
_Please Also See: http://FAQ.IIAB.IO > ["Captive Portal Administration: What tips & tricks exist?"](http://wiki.laptop.org/go/IIAB/FAQ#Captive_Portal_Administration:_What_tips_.26_tricks_exist.3F)_
 | 
			
		||||
 | 
			
		||||
## Theory of Operation
 | 
			
		||||
 | 
			
		||||
* The captive portal function is a feature of most modern operating systems. With the increased use of https/ssl (secure sockets layer), the automatic diversion to a specific web page runs the risk of being detected as a "man in the middle" attack.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,8 +3,20 @@
 | 
			
		|||
 | 
			
		||||
# TO DO:
 | 
			
		||||
# - validate input vars + prereqs
 | 
			
		||||
# - move 5 top stanzas into install.yml
 | 
			
		||||
# - move 5-7 next stanzas into enable-or-disable.yml
 | 
			
		||||
# - move ~7 top stanzas into install.yml
 | 
			
		||||
# - move ~7 next stanzas into enable-or-disable.yml
 | 
			
		||||
#   - create /etc/nginx/conf.d/cups-nginx.conf as SHIM to Apache on port 8090 ?
 | 
			
		||||
#   - deprecate ~2 F18 stanzas?
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- name: "Set 'apache_install: True' and 'apache_enabled: True'"
 | 
			
		||||
  set_fact:
 | 
			
		||||
    apache_install: True
 | 
			
		||||
    apache_enabled: True
 | 
			
		||||
 | 
			
		||||
- name: APACHE - run 'httpd' role
 | 
			
		||||
  include_role:
 | 
			
		||||
    name: httpd
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- name: Install 'cups' package
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,20 @@
 | 
			
		|||
# Assume (enforce!) we only get here if elgg_install: True
 | 
			
		||||
# Assume (enforce?) MySQL is running
 | 
			
		||||
- name: "Set 'apache_install: True' and 'apache_enabled: True'"
 | 
			
		||||
  set_fact:
 | 
			
		||||
    apache_install: True
 | 
			
		||||
    apache_enabled: True
 | 
			
		||||
 | 
			
		||||
- name: APACHE - run 'httpd' role
 | 
			
		||||
  include_role:
 | 
			
		||||
    name: httpd
 | 
			
		||||
 | 
			
		||||
# 2020-05-21: Required now that mysql/tasks/install.yml installs
 | 
			
		||||
# "php{{ php_version }}-common" rather than the full "php{{ php_version }}"
 | 
			
		||||
- name: "Install package: libapache2-mod-php{{ php_version }}"
 | 
			
		||||
  package:
 | 
			
		||||
    name: "libapache2-mod-php{{ php_version }}"
 | 
			
		||||
 | 
			
		||||
# Assume (enforce?) MySQL is running
 | 
			
		||||
#
 | 
			
		||||
# - name: "Set 'mysql_install: True' and 'mysql_enabled: True'"
 | 
			
		||||
#   set_fact:
 | 
			
		||||
#     mysql_install: True
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -97,13 +97,16 @@
 | 
			
		|||
 | 
			
		||||
# 4. Create systemd service & prepare Apache for http://box/gitea
 | 
			
		||||
 | 
			
		||||
- name: "Install from templates: /etc/systemd/system/gitea.service, /etc/apache2/sites-available/gitea.conf"
 | 
			
		||||
- name: "Install from template: /etc/systemd/system/gitea.service"
 | 
			
		||||
  template:
 | 
			
		||||
    src: "{{ item.src }}"
 | 
			
		||||
    dest: "{{ item.dest }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { src: 'gitea.service.j2', dest: '/etc/systemd/system/gitea.service' }
 | 
			
		||||
    - { src: 'gitea.conf.j2', dest: "/etc/{{ apache_conf_dir }}/gitea.conf" }
 | 
			
		||||
    src: gitea.service.j2
 | 
			
		||||
    dest: /etc/systemd/system/gitea.service
 | 
			
		||||
 | 
			
		||||
- name: "Install from template: /etc/{{ apache_conf_dir }}/gitea.conf"
 | 
			
		||||
  template:
 | 
			
		||||
    src: gitea.conf.j2
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}/gitea.conf"    # apache2/sites-available
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 5. RECORD Gitea AS INSTALLED
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,28 +69,6 @@
 | 
			
		|||
    - mpm_prefork.load
 | 
			
		||||
  when: is_debuntu | bool
 | 
			
		||||
 | 
			
		||||
# - name: Remove mpm_event.conf & mpm_event.load symlinks, using a2dissite
 | 
			
		||||
#   command: "a2dissite {{ item }}"
 | 
			
		||||
#   with_items:
 | 
			
		||||
#     - mpm_event.conf
 | 
			
		||||
#     - mpm_event.load
 | 
			
		||||
#   ignore_errors: yes
 | 
			
		||||
#
 | 
			
		||||
# - name: Symlink mpm_prefork.conf & mpm_prefork.load, using a2ensite
 | 
			
		||||
#   command: "a2ensite {{ item }}"
 | 
			
		||||
#   with_items:
 | 
			
		||||
#     - mpm_prefork.conf
 | 
			
		||||
#     - mpm_prefork.load
 | 
			
		||||
 | 
			
		||||
#- name: 'Turn on mod_proxy using a2enmod with: proxy, proxy_html, headers, rewrite (debuntu)'
 | 
			
		||||
#  command: a2enmod {{ item }}
 | 
			
		||||
#  with_items:
 | 
			
		||||
#    - proxy
 | 
			
		||||
#    - proxy_html
 | 
			
		||||
#    - headers
 | 
			
		||||
#    - rewrite
 | 
			
		||||
#  when: is_debuntu | bool
 | 
			
		||||
 | 
			
		||||
- name: 'Enable 5 Apache modules, as with "a2enmod" command: headers, proxy, proxy_html, proxy_http, rewrite (for http://box/kiwix, http://box/kolibri, http://box/nodered, etc--if debuntu)'
 | 
			
		||||
  apache2_module:
 | 
			
		||||
    name: "{{ item }}"
 | 
			
		||||
| 
						 | 
				
			
			@ -115,9 +93,9 @@
 | 
			
		|||
  file:
 | 
			
		||||
    state: directory
 | 
			
		||||
    path: "/var/run/{{ apache_user }}"
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
    mode: '0755'
 | 
			
		||||
    #owner: root
 | 
			
		||||
    #group: root
 | 
			
		||||
    #mode: '0755'
 | 
			
		||||
 | 
			
		||||
- name: 'Create group: admin'
 | 
			
		||||
  group:
 | 
			
		||||
| 
						 | 
				
			
			@ -131,13 +109,13 @@
 | 
			
		|||
    state: present
 | 
			
		||||
    createhome: no
 | 
			
		||||
 | 
			
		||||
- name: Create Apache dir /var/log/{{ apache_service }}
 | 
			
		||||
- name: Create Apache dir /var/log/{{ apache_service }} ({{ apache_user }}:{{ apache_user }})
 | 
			
		||||
  file:
 | 
			
		||||
    state: directory
 | 
			
		||||
    path: "/var/log/{{ apache_service }}"
 | 
			
		||||
    owner: "{{ apache_user }}"
 | 
			
		||||
    group: "{{ apache_user }}"
 | 
			
		||||
    mode: '0755'
 | 
			
		||||
    #mode: '0755'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- name: Install Apache's 010-iiab.conf & proxy_ajp.conf into /etc/apache2/sites-available, from templates
 | 
			
		||||
| 
						 | 
				
			
			@ -156,15 +134,14 @@
 | 
			
		|||
#   command: a2dissite 010-iiab.conf
 | 
			
		||||
#   when: not apache_enabled
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- debug:
 | 
			
		||||
    msg: roles/httpd/tasks/homepage.yml will run LATER (invoked by roles/www_options/tasks/main.yml) SO THAT APACHE CAN REDIRECT http://box TO http://box{{ iiab_home_url }} (based on var iiab_home_url)
 | 
			
		||||
# - include_tasks: roles/httpd/tasks/homepage.yml
 | 
			
		||||
 | 
			
		||||
# - name: Enable & Stop '{{ apache_service }}' systemd service
 | 
			
		||||
#   systemd:
 | 
			
		||||
#     name: "{{ apache_service }}"
 | 
			
		||||
#     enabled: yes
 | 
			
		||||
#     state: stopped
 | 
			
		||||
- name: Run 'systemctl daemon-reload'
 | 
			
		||||
  systemd:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# RECORD Apache AS INSTALLED
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,12 +31,11 @@
 | 
			
		|||
  when: apache_installed is undefined
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- name: Enable & (Re)Start {{ apache_service }} systemd service, if apache_enabled
 | 
			
		||||
- name: Enable & Start-if-nec {{ apache_service }} systemd service, if apache_enabled
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: "{{ apache_service }}"
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    enabled: yes
 | 
			
		||||
    state: restarted
 | 
			
		||||
    state: started    # No need to restart, as many IIAB apps do that later
 | 
			
		||||
  when: apache_enabled | bool
 | 
			
		||||
 | 
			
		||||
- name: Disable & Stop {{ apache_service }} systemd service, if not apache_enabled
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,13 +56,16 @@
 | 
			
		|||
 | 
			
		||||
# 3. CONFIG FILES
 | 
			
		||||
 | 
			
		||||
- name: "Install from templates: /etc/systemd/system/internetarchive.service, /etc/{{ apache_conf_dir }}/internetarchive.conf"
 | 
			
		||||
- name: "Install from template: /etc/systemd/system/internetarchive.service"
 | 
			
		||||
  template:
 | 
			
		||||
    src: "{{ item.src }}"
 | 
			
		||||
    dest: "{{ item.dest }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { src: 'internetarchive.service.j2', dest: '/etc/systemd/system/internetarchive.service' }
 | 
			
		||||
    - { src: 'internetarchive.conf', dest: '/etc/{{ apache_conf_dir }}/internetarchive.conf' }    # apache2/sites-available
 | 
			
		||||
    src: internetarchive.service.j2
 | 
			
		||||
    dest: /etc/systemd/system/internetarchive.service
 | 
			
		||||
 | 
			
		||||
- name: "Install from template: /etc/{{ apache_conf_dir }}/internetarchive.conf"
 | 
			
		||||
  template:
 | 
			
		||||
    src: internetarchive.conf
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}/internetarchive.conf"    # apache2/sites-available
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 4. RECORD Internet Archive AS INSTALLED
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,7 +51,6 @@
 | 
			
		|||
  when: internetarchive_installed is undefined and internet_available
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# ENABLE/DISABLE/RESTART SYSTEMD SERVICE & WEB SERVERS AS NEC ?
 | 
			
		||||
 | 
			
		||||
- name: Enable & Restart 'internetarchive' systemd service, if internetarchive_enabled
 | 
			
		||||
| 
						 | 
				
			
			@ -69,10 +68,9 @@
 | 
			
		|||
    state: stopped
 | 
			
		||||
  when: not internetarchive_enabled
 | 
			
		||||
 | 
			
		||||
#- name: Enable/Disable/Restart Apache if primary
 | 
			
		||||
- name: SHIM FOR NOW SO ALWAYS DO THE...Enable/Disable/Restart Apache
 | 
			
		||||
- name: Enable/Disable/Restart Apache if primary
 | 
			
		||||
  include_tasks: apache.yml
 | 
			
		||||
  #when: not nginx_enabled
 | 
			
		||||
  when: apache_installed is defined and not nginx_enabled
 | 
			
		||||
 | 
			
		||||
- name: Enable/Disable/Restart NGINX if primary
 | 
			
		||||
  include_tasks: nginx.yml
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,18 +43,20 @@
 | 
			
		|||
    extra_args: "--no-cache-dir"
 | 
			
		||||
  when: internet_available | bool
 | 
			
		||||
 | 
			
		||||
- name: "Install from template: venv wrapper /usr/bin/kalite, systemd unit file kalite-serve.service, Apache's kalite.conf"
 | 
			
		||||
- name: "Install from templates: venv wrapper /usr/bin/kalite, systemd unit file kalite-serve.service"
 | 
			
		||||
  template:
 | 
			
		||||
    backup: no
 | 
			
		||||
    src: "{{ item.src }}"
 | 
			
		||||
    dest: "{{ item.dest }}"
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
    mode: "{{ item.mode }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { src: 'kalite.sh.j2', dest: '/usr/bin/kalite', mode: '0755'}
 | 
			
		||||
    - { src: 'kalite-serve.service.j2', dest: '/etc/systemd/system/kalite-serve.service', mode: '0644'}
 | 
			
		||||
    - { src: 'kalite.conf', dest: '/etc/{{ apache_conf_dir }}', mode: '0644'}
 | 
			
		||||
    - { src: 'kalite.sh.j2', dest: '/usr/bin/kalite', mode: '0755' }
 | 
			
		||||
    - { src: 'kalite-serve.service.j2', dest: '/etc/systemd/system/kalite-serve.service', mode: '0644' }
 | 
			
		||||
 | 
			
		||||
- name: "Install from template: /etc/{{ apache_conf_dir }}/kalite.conf"
 | 
			
		||||
  template:
 | 
			
		||||
    src: kalite.conf
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}"    # apache2/sites-available on debuntu
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
- name: Fix KA Lite bug in regex parsing ifconfig output, for @m-anish's network names that contain dashes, if Raspbian/Debian < 11 or Ubuntu < 20
 | 
			
		||||
  replace:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,9 +26,9 @@ kiwix_library_xml: "{{ iiab_zim_path }}/library.xml"
 | 
			
		|||
# http://download.kiwix.org/release/kiwix-tools/ ...or sometimes...
 | 
			
		||||
# http://download.kiwix.org/nightly/
 | 
			
		||||
 | 
			
		||||
kiwix_version_armhf: kiwix-tools_linux-armhf-3.1.0-2
 | 
			
		||||
kiwix_version_linux64: kiwix-tools_linux-x86_64-3.1.0-2
 | 
			
		||||
kiwix_version_i686: kiwix-tools_linux-i586-3.1.0-2
 | 
			
		||||
kiwix_version_armhf: kiwix-tools_linux-armhf-3.1.1
 | 
			
		||||
kiwix_version_linux64: kiwix-tools_linux-x86_64-3.1.1
 | 
			
		||||
kiwix_version_i686: kiwix-tools_linux-i586-3.1.1
 | 
			
		||||
 | 
			
		||||
# kiwix_src_file_i686: "kiwix-linux-i686.tar.bz2"
 | 
			
		||||
# v0.9 for i686 published May 2014 ("use it to test legacy ZIM content")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -100,7 +100,7 @@
 | 
			
		|||
 | 
			
		||||
# 4. INSTALL iiab-make-kiwix-lib*, kiwix-serve.service, kiwix.conf for Apache
 | 
			
		||||
 | 
			
		||||
- name: 'Install from templates: kiwix-serve.service, iiab-make-kiwix-lib, iiab-make-kiwix-lib.py, kiwix.conf'
 | 
			
		||||
- name: 'Install from templates: kiwix-serve.service, iiab-make-kiwix-lib, iiab-make-kiwix-lib.py'
 | 
			
		||||
  template:
 | 
			
		||||
    src: "{{ item.src }}"
 | 
			
		||||
    dest: "{{ item.dest }}"
 | 
			
		||||
| 
						 | 
				
			
			@ -109,7 +109,13 @@
 | 
			
		|||
    - { src: 'kiwix-serve.service.j2', dest: '/etc/systemd/system/kiwix-serve.service', mode: '0644' }
 | 
			
		||||
    - { src: 'iiab-make-kiwix-lib', dest: '/usr/bin/iiab-make-kiwix-lib', mode: '0755' }
 | 
			
		||||
    - { src: 'iiab-make-kiwix-lib3.py', dest: '/usr/bin/iiab-make-kiwix-lib.py', mode: '0755' }
 | 
			
		||||
    - { src: 'kiwix.conf.j2', dest: '/etc/{{ apache_conf_dir }}/kiwix.conf', mode: '0644' }
 | 
			
		||||
 | 
			
		||||
- name: "Install from template: Apache's kiwix.conf"
 | 
			
		||||
  template:
 | 
			
		||||
    src: kiwix.conf.j2
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}/kiwix.conf"
 | 
			
		||||
    #mode: '0644'
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 5. RECORD Kiwix AS INSTALLED
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,31 +15,21 @@
 | 
			
		|||
    path: "{{ kolibri_home }}"     # /library/kolibri
 | 
			
		||||
    owner: "{{ kolibri_user }}"    # kolibri
 | 
			
		||||
    group: "{{ apache_user }}"     # www-data (on Debian/Ubuntu/Raspbian)
 | 
			
		||||
    mode: '0755'
 | 
			
		||||
 | 
			
		||||
- name: Create directory /etc/kolibri
 | 
			
		||||
  file:
 | 
			
		||||
    state: directory
 | 
			
		||||
    name: /etc/kolibri
 | 
			
		||||
    # owner: root
 | 
			
		||||
    # group: root
 | 
			
		||||
    # mode: '0755'
 | 
			
		||||
 | 
			
		||||
- name: Save kolibri_user ({{ kolibri_user }}) to /etc/kolibri/username
 | 
			
		||||
  copy:
 | 
			
		||||
    content: "{{ kolibri_user }}"
 | 
			
		||||
    dest: /etc/kolibri/username
 | 
			
		||||
    # owner: root
 | 
			
		||||
    # group: root
 | 
			
		||||
    # mode: '0644'
 | 
			
		||||
 | 
			
		||||
- name: Save kolibri_home (KOLIBRI_HOME="{{ kolibri_home }}") to /etc/kolibri/daemon.conf
 | 
			
		||||
  copy:
 | 
			
		||||
    content: 'KOLIBRI_HOME="{{ kolibri_home }}"'
 | 
			
		||||
    dest: /etc/kolibri/daemon.conf
 | 
			
		||||
    # owner: root
 | 
			
		||||
    # group: root
 | 
			
		||||
    # mode: '0644'
 | 
			
		||||
 | 
			
		||||
- name: apt install latest Kolibri .deb from {{ kolibri_deb_url }} (populates {{ kolibri_home }}, migrates database)    # i.e. /library/kolibri
 | 
			
		||||
  apt:
 | 
			
		||||
| 
						 | 
				
			
			@ -49,16 +39,16 @@
 | 
			
		|||
    KOLIBRI_USER: "{{ kolibri_user }}"    # both can't hurt & Might Help Later
 | 
			
		||||
  when: internet_available | bool
 | 
			
		||||
 | 
			
		||||
- name: 'Install from templates: /etc/systemd/system/kolibri.service & /etc/{{ apache_conf_dir }}/kolibri.conf'
 | 
			
		||||
- name: 'Install from template: /etc/systemd/system/kolibri.service'
 | 
			
		||||
  template:
 | 
			
		||||
    src: "{{ item.src }}"
 | 
			
		||||
    dest: "{{ item.dest }}"
 | 
			
		||||
    # owner: root
 | 
			
		||||
    # group: root
 | 
			
		||||
    # mode: '0644'
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { src: 'kolibri.service.j2', dest: '/etc/systemd/system/kolibri.service' }
 | 
			
		||||
    - { src: 'kolibri.conf.j2', dest: '/etc/{{ apache_conf_dir }}/kolibri.conf' }    # apache2/sites-available
 | 
			
		||||
    src: kolibri.service.j2
 | 
			
		||||
    dest: /etc/systemd/system/kolibri.service
 | 
			
		||||
 | 
			
		||||
- name: 'Install from template: /etc/{{ apache_conf_dir }}/kolibri.conf'
 | 
			
		||||
  template:
 | 
			
		||||
    src: kolibri.conf.j2
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}/kolibri.conf"    # apache2/sites-available
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
- name: Stop 'kolibri' systemd service, for Kolibri provisioning (after daemon_reload)
 | 
			
		||||
  systemd:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,17 @@
 | 
			
		|||
# Lokole PDF (User's Guide) gets copied for offline use (http://box/info) here:
 | 
			
		||||
# https://github.com/iiab/iiab/blob/master/roles/httpd/templates/refresh-wiki-docs.sh#L51-L52
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- name: "Set 'apache_install: True' and 'apache_enabled: True'"
 | 
			
		||||
  set_fact:
 | 
			
		||||
    apache_install: True
 | 
			
		||||
    apache_enabled: True
 | 
			
		||||
 | 
			
		||||
- name: APACHE - run 'httpd' role
 | 
			
		||||
  include_role:
 | 
			
		||||
    name: httpd
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- name: "Install 8 packages for Lokole: python3, python3-pip, python3-venv, python3-dev, python3-bcrypt, libffi-dev, libssl-dev, libopenjp2-7"
 | 
			
		||||
  apt:
 | 
			
		||||
    name:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -80,10 +80,11 @@
 | 
			
		|||
    regexp: '^\$wgServer ='
 | 
			
		||||
    line: '$wgServer = "//" . $_SERVER["HTTP_HOST"];'
 | 
			
		||||
 | 
			
		||||
- name: Install /etc/{{ apache_conf_dir }}/mediawiki.conf from template, for http://box{{ mediawiki_url }} via Apache
 | 
			
		||||
- name: 'Install from template: /etc/{{ apache_conf_dir }}/mediawiki.conf -- for http://box{{ mediawiki_url }}'
 | 
			
		||||
  template:
 | 
			
		||||
    src: mediawiki.conf.j2
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}/mediawiki.conf"    # apache2/sites-available on debuntu
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}/mediawiki.conf"    # apache2/sites-available
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# RECORD MediaWiki AS INSTALLED
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
# 1. INSTALL MongoDB PACKAGES OR BINARIES
 | 
			
		||||
 | 
			
		||||
- name: "Install packages: mongodb, mongodb-server (not rpi)"
 | 
			
		||||
- name: "Install packages: mongodb, mongodb-server (not raspbian)"
 | 
			
		||||
  package:
 | 
			
		||||
    name:
 | 
			
		||||
      - mongodb-server
 | 
			
		||||
| 
						 | 
				
			
			@ -9,8 +9,8 @@
 | 
			
		|||
  when: internet_available and not is_raspbian
 | 
			
		||||
 | 
			
		||||
# 2019-02-02: Sugarizer with Node.js 10.x requires MongoDB 2.6+ so
 | 
			
		||||
# https://andyfelong.com/2017/08/mongodb-3-0-14-for-raspbian-stretch/
 | 
			
		||||
# is being used on RPi, all I found! (Raspbian's apt pkg is MongoDB 2.4.14)
 | 
			
		||||
# https://andyfelong.com/2017/08/mongodb-3-0-14-for-raspbian-stretch/ is
 | 
			
		||||
# being used on Raspbian, all I found! (Raspbian's apt pkg is MongoDB 2.4.14)
 | 
			
		||||
#
 | 
			
		||||
# mongodb_stretch_3_0_14_core.zip (20M) & mongodb_stretch_3_0_14_tools.zip (15M)
 | 
			
		||||
# were backed up from andyfelong.com to http://download.iiab.io/packages/
 | 
			
		||||
| 
						 | 
				
			
			@ -18,50 +18,50 @@
 | 
			
		|||
# CLARIF: mongodb_stretch_3_0_14_core.zip IS IN FACT 3.0.14 (core) BUT...
 | 
			
		||||
#         mongodb_stretch_3_0_14_tools.zip IS REALLY 3.0.15 (tools)
 | 
			
		||||
 | 
			
		||||
- name: Create dir /tmp/mongodb-3.0.1x (rpi)
 | 
			
		||||
- name: Create dir /tmp/mongodb-3.0.1x (raspbian)
 | 
			
		||||
  file:
 | 
			
		||||
    path: /tmp/mongodb-3.0.1x
 | 
			
		||||
    state: directory
 | 
			
		||||
  when: internet_available and is_raspbian
 | 
			
		||||
 | 
			
		||||
- name: Download & unzip 20MB http://download.iiab.io/packages/mongodb_stretch_3_0_14_core.zip to /tmp/mongodb-3.0.1x (rpi)
 | 
			
		||||
- name: Download & unzip 20MB http://download.iiab.io/packages/mongodb_stretch_3_0_14_core.zip to /tmp/mongodb-3.0.1x (raspbian)
 | 
			
		||||
  unarchive:
 | 
			
		||||
    remote_src: yes
 | 
			
		||||
    src: "{{ iiab_download_url }}/mongodb_stretch_3_0_14_core.zip"
 | 
			
		||||
    dest: /tmp/mongodb-3.0.1x
 | 
			
		||||
  when: internet_available and is_raspbian
 | 
			
		||||
 | 
			
		||||
- name: Install (move) its 3 CORE binaries from /tmp/mongodb-3.0.1x/core to /usr/bin (rpi)
 | 
			
		||||
- name: Install (move) its 3 CORE binaries from /tmp/mongodb-3.0.1x/core to /usr/bin (raspbian)
 | 
			
		||||
  shell: mv /tmp/mongodb-3.0.1x/core/* /usr/bin
 | 
			
		||||
  when: internet_available and is_raspbian
 | 
			
		||||
 | 
			
		||||
- name: Download & unzip 15MB http://download.iiab.io/packages/mongodb_stretch_3_0_14_tools.zip [IN FACT THIS ONE'S 3.0.15] to /tmp/mongodb-3.0.1x (rpi)
 | 
			
		||||
- name: Download & unzip 15MB http://download.iiab.io/packages/mongodb_stretch_3_0_14_tools.zip [IN FACT THIS ONE'S 3.0.15] to /tmp/mongodb-3.0.1x (raspbian)
 | 
			
		||||
  unarchive:
 | 
			
		||||
    remote_src: yes
 | 
			
		||||
    src: "{{ iiab_download_url }}/mongodb_stretch_3_0_14_tools.zip"
 | 
			
		||||
    dest: /tmp/mongodb-3.0.1x
 | 
			
		||||
  when: internet_available and is_raspbian
 | 
			
		||||
 | 
			
		||||
- name: Install (move) its 9 TOOLS binaries from /opt/iiab/downloads/mongodb-3.0.1x/tools to /usr/bin (rpi)
 | 
			
		||||
- name: Install (move) its 9 TOOLS binaries from /opt/iiab/downloads/mongodb-3.0.1x/tools to /usr/bin (raspbian)
 | 
			
		||||
  shell: mv /tmp/mongodb-3.0.1x/tools/* /usr/bin
 | 
			
		||||
  when: internet_available and is_raspbian
 | 
			
		||||
 | 
			
		||||
# OLD WAY / MUCH SLOWER: had put unnec duplicate copies in /opt/iiab/downloads/mongodb-3.0.1x
 | 
			
		||||
#
 | 
			
		||||
#- name: Create dir /opt/iiab/downloads/mongodb-3.0.1x (rpi)
 | 
			
		||||
#- name: Create dir /opt/iiab/downloads/mongodb-3.0.1x (raspbian)
 | 
			
		||||
#  file:
 | 
			
		||||
#    path: "{{ downloads_dir }}/mongodb-3.0.1x"
 | 
			
		||||
#    state: directory
 | 
			
		||||
#  when: internet_available and is_raspbian
 | 
			
		||||
#
 | 
			
		||||
#- name: Download & unzip MongoDB 3.0.14's 3 core binaries to /opt/iiab/downloads/mongodb-3.0.1x (rpi)
 | 
			
		||||
#- name: Download & unzip MongoDB 3.0.14's 3 core binaries to /opt/iiab/downloads/mongodb-3.0.1x (raspbian)
 | 
			
		||||
#  unarchive:
 | 
			
		||||
#    remote_src: yes
 | 
			
		||||
#    src: "{{ iiab_download_url }}/mongodb_stretch_3_0_14_core.zip"
 | 
			
		||||
#    dest: "{{ downloads_dir }}/mongodb-3.0.1x"
 | 
			
		||||
#  when: internet_available and is_raspbian
 | 
			
		||||
#
 | 
			
		||||
#- name: Install (copy) 3 binaries from /opt/iiab/downloads/mongodb-3.0.1x/core to /usr/bin (rpi)
 | 
			
		||||
#- name: Install (copy) 3 binaries from /opt/iiab/downloads/mongodb-3.0.1x/core to /usr/bin (raspbian)
 | 
			
		||||
#  copy:
 | 
			
		||||
#    src: "{{ item }}"
 | 
			
		||||
#    dest: /usr/bin
 | 
			
		||||
| 
						 | 
				
			
			@ -69,14 +69,14 @@
 | 
			
		|||
#    - "{{ downloads_dir }}/mongodb-3.0.1x/core/*"
 | 
			
		||||
#  when: internet_available and is_raspbian
 | 
			
		||||
#
 | 
			
		||||
#- name: Download & unzip MongoDB 3.0.15's 9 tools binaries to /opt/iiab/downloads/mongodb-3.0.1x (rpi)
 | 
			
		||||
#- name: Download & unzip MongoDB 3.0.15's 9 tools binaries to /opt/iiab/downloads/mongodb-3.0.1x (raspbian)
 | 
			
		||||
#  unarchive:
 | 
			
		||||
#    remote_src: yes
 | 
			
		||||
#    src: "{{ iiab_download_url }}/mongodb_stretch_3_0_14_tools.zip"
 | 
			
		||||
#    dest: "{{ downloads_dir }}/mongodb-3.0.1x"
 | 
			
		||||
#  when: internet_available and is_raspbian
 | 
			
		||||
#
 | 
			
		||||
#- name: Install (copy) 9 binaries from /opt/iiab/downloads/mongodb-3.0.1x/tools to /usr/bin (rpi)
 | 
			
		||||
#- name: Install (copy) 9 binaries from /opt/iiab/downloads/mongodb-3.0.1x/tools to /usr/bin (raspbian)
 | 
			
		||||
#  copy:
 | 
			
		||||
#    src: "{{ item }}"
 | 
			
		||||
#    dest: /usr/bin
 | 
			
		||||
| 
						 | 
				
			
			@ -84,13 +84,13 @@
 | 
			
		|||
#    - "{{ downloads_dir }}/mongodb-3.0.1x/tools/*"
 | 
			
		||||
#  when: internet_available and is_raspbian
 | 
			
		||||
 | 
			
		||||
- name: Create Linux group mongodb (rpi)
 | 
			
		||||
- name: Create Linux group mongodb (raspbian)
 | 
			
		||||
  group:
 | 
			
		||||
    name: mongodb
 | 
			
		||||
    state: present
 | 
			
		||||
  when: is_raspbian | bool
 | 
			
		||||
 | 
			
		||||
- name: Create Linux user mongodb (rpi)
 | 
			
		||||
- name: Create Linux user mongodb (raspbian)
 | 
			
		||||
  user:
 | 
			
		||||
    name: mongodb
 | 
			
		||||
    group: mongodb    # primary group
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,13 @@
 | 
			
		|||
- name: "Set 'apache_install: True' and 'apache_enabled: True'"
 | 
			
		||||
  set_fact:
 | 
			
		||||
    apache_install: True
 | 
			
		||||
    apache_enabled: True
 | 
			
		||||
 | 
			
		||||
- name: APACHE - run 'httpd' role
 | 
			
		||||
  include_role:
 | 
			
		||||
    name: httpd
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- name: "Set 'postgresql_install: True' and 'postgresql_enabled: True'"
 | 
			
		||||
  set_fact:
 | 
			
		||||
    postgresql_install: True
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,16 +17,16 @@
 | 
			
		|||
    state: present
 | 
			
		||||
  when: not is_debuntu
 | 
			
		||||
 | 
			
		||||
- name: Install /etc/munin/munin.conf and Apache's munin24.conf, from templates
 | 
			
		||||
- name: 'Install from template: /etc/munin/munin.conf'
 | 
			
		||||
  template:
 | 
			
		||||
    src: "{{ item.src }}"
 | 
			
		||||
    dest: "{{ item.dest }}"
 | 
			
		||||
    # owner: root
 | 
			
		||||
    # group: root
 | 
			
		||||
    # mode: 0644
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { src: 'munin.conf.j2', dest: '/etc/munin/munin.conf' }
 | 
			
		||||
    - { src: 'munin24.conf.j2', dest: '/etc/{{ apache_conf_dir }}/munin24.conf' }
 | 
			
		||||
    src: munin.conf.j2
 | 
			
		||||
    dest: /etc/munin/munin.conf
 | 
			
		||||
 | 
			
		||||
- name: 'Install from template: /etc/{{ apache_conf_dir }}/munin24.conf'
 | 
			
		||||
  template:
 | 
			
		||||
    src: munin24.conf.j2
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}/munin24.conf"    # apache2/sites-available
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
- name: Establish username/password Admin/changeme in /etc/munin/munin-htpasswd
 | 
			
		||||
  htpasswd:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,6 @@
 | 
			
		|||
# Stanzas as of 2020-02-04:
 | 
			
		||||
# Stanzas as of 2020-05-21:
 | 
			
		||||
#
 | 
			
		||||
# - 4 base install
 | 
			
		||||
#   - Remove the last 3 above, as CentOS & Fedora no longer supported ?
 | 
			
		||||
# - 1 base install
 | 
			
		||||
# - 6 double timeout for slow CPUs
 | 
			
		||||
# - 7 DB config
 | 
			
		||||
# - 2 record as installed
 | 
			
		||||
| 
						 | 
				
			
			@ -11,7 +10,8 @@
 | 
			
		|||
    name:
 | 
			
		||||
      - mariadb-server
 | 
			
		||||
      - mariadb-client
 | 
			
		||||
      - php{{ php_version }}
 | 
			
		||||
      # - php{{ php_version }}    # On Ubuntu 20.04 (and prob other OS's) this forces the install of: apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php{{ php_version }} ETC
 | 
			
		||||
      - php{{ php_version }}-common    # 2020-05-21: @jvonau suggests this to avoid Apache above.  Or its superset php{{ php_version }}-cli if absolutely nec?
 | 
			
		||||
      - php{{ php_version }}-mysql
 | 
			
		||||
      - php-pear
 | 
			
		||||
      - php{{ php_version }}-gd
 | 
			
		||||
| 
						 | 
				
			
			@ -23,41 +23,28 @@
 | 
			
		|||
    state: present
 | 
			
		||||
  when: is_debuntu | bool
 | 
			
		||||
 | 
			
		||||
# - name: Install package 'php{{ php_version }}-xml' (debuntu)    # WAS: (ubuntu or debian 9+)
 | 
			
		||||
# - name: "Install packages: mysql, MySQL-python and 9 php packages (OS's other than debuntu)"
 | 
			
		||||
#   package:
 | 
			
		||||
#     name: "php{{ php_version }}-xml"
 | 
			
		||||
#     name:
 | 
			
		||||
#       - MySQL-python
 | 
			
		||||
#       - mysql
 | 
			
		||||
#       - php
 | 
			
		||||
#       - php-mysql
 | 
			
		||||
#       - php-pear
 | 
			
		||||
#       - php-gd
 | 
			
		||||
#       - php-imap
 | 
			
		||||
#       - php-ldap
 | 
			
		||||
#       - php-odbc
 | 
			
		||||
#       - php-xml
 | 
			
		||||
#       - php-xmlrpc
 | 
			
		||||
#     state: present
 | 
			
		||||
#   when: is_debuntu | bool
 | 
			
		||||
#   #when: is_ubuntu or (is_debian and not is_debian_8)
 | 
			
		||||
 | 
			
		||||
#- name: Install php-xml-parser (debian-8)
 | 
			
		||||
#  package:
 | 
			
		||||
#    name: php-xml-parser
 | 
			
		||||
#    state: present
 | 
			
		||||
#  when: is_debian_8 | bool
 | 
			
		||||
 | 
			
		||||
- name: "Install packages: mysql, MySQL-python and 9 php packages (OS's other than debuntu)"
 | 
			
		||||
  package:
 | 
			
		||||
    name:
 | 
			
		||||
      - MySQL-python
 | 
			
		||||
      - mysql
 | 
			
		||||
      - php
 | 
			
		||||
      - php-mysql
 | 
			
		||||
      - php-pear
 | 
			
		||||
      - php-gd
 | 
			
		||||
      - php-imap
 | 
			
		||||
      - php-ldap
 | 
			
		||||
      - php-odbc
 | 
			
		||||
      - php-xml
 | 
			
		||||
      - php-xmlrpc
 | 
			
		||||
    state: present
 | 
			
		||||
  when: not is_debuntu
 | 
			
		||||
 | 
			
		||||
- include_tasks: centos.yml
 | 
			
		||||
  when: ansible_distribution == "CentOS"
 | 
			
		||||
 | 
			
		||||
- include_tasks: fedora.yml
 | 
			
		||||
  when: ansible_distribution == "Fedora"
 | 
			
		||||
#   when: not is_debuntu
 | 
			
		||||
#
 | 
			
		||||
# - include_tasks: centos.yml
 | 
			
		||||
#   when: ansible_distribution == "CentOS"
 | 
			
		||||
#
 | 
			
		||||
# - include_tasks: fedora.yml
 | 
			
		||||
#   when: ansible_distribution == "Fedora"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 2019-07-03 @jvonau @holta: the next 50 lines (6 stanzas) double MariaDB's
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -109,7 +109,7 @@
 | 
			
		|||
  template:
 | 
			
		||||
    src: nextcloud.conf.j2
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}/nextcloud.conf"    # apache2/sites-available on debuntu
 | 
			
		||||
  when: apache_install | bool
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# RECORD Nextcloud AS INSTALLED
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,7 @@
 | 
			
		|||
 | 
			
		||||
2. Without PHP available via FastCGI, any function at all for PHP-based applications validates NGINX.
 | 
			
		||||
 | 
			
		||||
3. Current state of IIAB App/Service migrations as of 2020-04-29:
 | 
			
		||||
3. Current state of IIAB App/Service migrations as of 2020-05-21:
 | 
			
		||||
 | 
			
		||||
   1. These support "Native" NGINX but ***NOT*** Apache
 | 
			
		||||
      * Admin Console
 | 
			
		||||
| 
						 | 
				
			
			@ -20,7 +20,7 @@
 | 
			
		|||
      * OER2Go/RACHEL modules
 | 
			
		||||
      * usb_lib
 | 
			
		||||
 | 
			
		||||
   2. These support "Native" NGINX ***AND*** Apache, a.k.a. "dual support" for legacy testing (if suitable "Shims" from *Section iii.* below are preserved!)  Both "Native" NGINX and "Shim" proxying from NGINX to Apache port 8090 *cannot be enabled simultaneously* for these IIAB Apps/Service.  But if you want to attempt their "Shim" proxying legacy testing mode, change your *primary web server* over to Apache by setting `nginx_enabled: False` in [/etc/iiab/local_vars.yml](http://wiki.laptop.org/go/IIAB/FAQ#What_is_local_vars.yml_and_how_do_I_customize_it.3F) (which will [auto-enable Apache](../0-init/tasks/main.yml#L47-L51) for your testing).
 | 
			
		||||
   2. These support "Native" NGINX ***AND*** Apache, a.k.a. "dual support" for legacy testing (if suitable "Shims" from *Section iii.* below are preserved!)  Both "Native" NGINX and "Shim" proxying from NGINX to Apache port 8090 *cannot be enabled simultaneously* for these IIAB Apps/Service.  But if you want to attempt their "Shim" proxying legacy testing mode, try setting your *primary web server* to Apache using `apache_install: True` and `apache_enabled: True` (and `nginx_enabled: False` to disable NGINX) in [/etc/iiab/local_vars.yml](http://wiki.laptop.org/go/IIAB/FAQ#What_is_local_vars.yml_and_how_do_I_customize_it.3F) before you install IIAB.  You may also need to run `cd /opt/iiab/iiab; ./runrole httpd` since this has been removed from [roles/3-base-server/tasks/main.yml](https://github.com/iiab/iiab/blob/master/roles/3-base-server/tasks/main.yml)
 | 
			
		||||
      * awstats
 | 
			
		||||
      * calibre-web
 | 
			
		||||
      * gitea
 | 
			
		||||
| 
						 | 
				
			
			@ -32,7 +32,8 @@
 | 
			
		|||
      * sugarizer
 | 
			
		||||
      * wordpress
 | 
			
		||||
 | 
			
		||||
   3. These support Apache but ***NOT*** "Native" NGINX.  They use a "Shim" to [proxy_pass](https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/) from NGINX to Apache on port 8090.  See [roles/0-init/tasks/main.yml#L47-L51](../0-init/tasks/main.yml#L47-L51) for a list of these IIAB Apps/Services, that auto-enable Apache.
 | 
			
		||||
   3. These support Apache but ***NOT*** "Native" NGINX.  They use a "Shim" to [proxy_pass](https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/) from NGINX to Apache on port 8090.  See [roles/3-base-server/tasks/main.yml#L11](../3-base-server/tasks/main.yml#L11) for a list of IIAB Apps/Services that auto-enable Apache.
 | 
			
		||||
      * cups [*, shim not yet in place.]
 | 
			
		||||
      * elgg
 | 
			
		||||
      * lokole
 | 
			
		||||
      * moodle
 | 
			
		||||
| 
						 | 
				
			
			@ -45,6 +46,7 @@
 | 
			
		|||
      * minetest [*]
 | 
			
		||||
      * openvpn
 | 
			
		||||
      * pbx [*]
 | 
			
		||||
      * phpmyadmin [*, requires Apache for now, as in Section 3.]
 | 
			
		||||
      * transmission [*]
 | 
			
		||||
 | 
			
		||||
[*] The 4 above starred roles could use improvement, as of 2020-04-29.
 | 
			
		||||
[*] The 6 above starred roles could use improvement, as of 2020-05-21.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,9 @@
 | 
			
		|||
- name: Ensure that Apache (({{ apache_service }})) is not running -- we may need port swap
 | 
			
		||||
- name: Ensure that Apache ({{ apache_service }}) is not running -- we may need port swap
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: "{{ apache_service }}"    # apache2 or httpd, per /opt/iiab/iiab/vars/<OS>.yml
 | 
			
		||||
    state: stopped
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
  # 'when: apache_installed is defined' might also work, as mysql's php no longer installs apache2 (but 'ignore_errors: yes' remains safer!)
 | 
			
		||||
 | 
			
		||||
- name: Install /etc/{{ apache_service }}/ports.conf from template 1 of 2 (ports.conf.j2) if nginx_enabled, to enable Apache port {{ apache_port }} localhost only
 | 
			
		||||
  template:
 | 
			
		||||
| 
						 | 
				
			
			@ -15,13 +17,13 @@
 | 
			
		|||
    dest: "/etc/{{ apache_service }}/ports.conf"
 | 
			
		||||
  when: not nginx_enabled
 | 
			
		||||
 | 
			
		||||
- name: Enable & Restart '{{ apache_service }}' if apache_enabled or not nginx_enabled, since we stopped it
 | 
			
		||||
- name: Enable & Restart '{{ apache_service }}' if Apache is installed and enabled, since we stopped it
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: "{{ apache_service }}"    # apache2 or httpd, per /opt/iiab/iiab/vars/<OS>.yml
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    state: restarted
 | 
			
		||||
    enabled: true
 | 
			
		||||
  when: apache_enabled or not nginx_enabled
 | 
			
		||||
  when: apache_installed is defined and apache_enabled    # or not nginx_enabled
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- name: Enable & (Re)Start 'nginx' systemd service, if nginx_enabled
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,18 +1,9 @@
 | 
			
		|||
# This stanza can likely be removed later in 2020:
 | 
			
		||||
- name: 'Remove legacy files if present: /etc/systemd/system/uwsgi.service, {{ nginx_conf_dir }}/usb-lib.conf, {{ nginx_conf_dir }}/modules.conf'
 | 
			
		||||
  file:
 | 
			
		||||
    path: "{{ item.path }}"
 | 
			
		||||
    state: absent
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { path: "/etc/systemd/system/uwsgi.service" }
 | 
			
		||||
    - { path: "{{ nginx_conf_dir }}/usb-lib.conf" }
 | 
			
		||||
    - { path: "{{ nginx_conf_dir }}/modules.conf" }
 | 
			
		||||
 | 
			
		||||
- name: Stop '{{ apache_service }}' systemd service
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: "{{ apache_service }}"    # apache2 or httpd, per /opt/iiab/iiab/vars/<OS>.yml
 | 
			
		||||
    state: stopped
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
  # 'when: apache_installed is defined' insuff b/c mysql's php installs apache2
 | 
			
		||||
 | 
			
		||||
- name: Install required and helper packages for NGINX
 | 
			
		||||
  package:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,13 @@
 | 
			
		|||
- name: "Set 'apache_install: True' and 'apache_enabled: True'"
 | 
			
		||||
  set_fact:
 | 
			
		||||
    apache_install: True
 | 
			
		||||
    apache_enabled: True
 | 
			
		||||
 | 
			
		||||
- name: APACHE - run 'httpd' role
 | 
			
		||||
  include_role:
 | 
			
		||||
    name: httpd
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 2019-01-16: @jvonau's PR #1403 moved installation of Node.js (8.x for now) &
 | 
			
		||||
# npm to roles/nodejs/tasks/main.yml
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,13 @@
 | 
			
		|||
- name: "Set 'apache_install: True' and 'apache_enabled: True'"
 | 
			
		||||
  set_fact:
 | 
			
		||||
    apache_install: True
 | 
			
		||||
    apache_enabled: True
 | 
			
		||||
 | 
			
		||||
- name: APACHE - run 'httpd' role
 | 
			
		||||
  include_role:
 | 
			
		||||
    name: httpd
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- name: Download {{ iiab_download_url }}/{{ phpmyadmin_name_zip }} to {{ downloads_dir }}
 | 
			
		||||
  get_url:
 | 
			
		||||
    url: "{{ iiab_download_url }}/{{ phpmyadmin_name_zip }}"
 | 
			
		||||
| 
						 | 
				
			
			@ -49,7 +59,7 @@
 | 
			
		|||
  template:
 | 
			
		||||
    src: phpmyadmin.j2
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}/phpmyadmin.conf"
 | 
			
		||||
  when: apache_install | bool
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# RECORD phpMyAdmin AS INSTALLED
 | 
			
		||||
| 
						 | 
				
			
			@ -67,11 +77,11 @@
 | 
			
		|||
 | 
			
		||||
- name: Enable phpMyAdmin via Apache, if phpmyadmin_enabled
 | 
			
		||||
  command: a2ensite phpmyadmin.conf
 | 
			
		||||
  when: apache_install and phpmyadmin_enabled
 | 
			
		||||
  when: apache_installed is defined and phpmyadmin_enabled
 | 
			
		||||
 | 
			
		||||
- name: Disable phpMyAdmin via Apache, if not phpmyadmin_enabled
 | 
			
		||||
  command: a2dissite phpmyadmin.conf
 | 
			
		||||
  when: apache_install and not phpmyadmin_enabled
 | 
			
		||||
  when: apache_installed is defined and not phpmyadmin_enabled
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- name: Add 'phpmyadmin' variable values to {{ iiab_ini_file }}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -148,18 +148,16 @@
 | 
			
		|||
 | 
			
		||||
# 5. CONFIG FILES
 | 
			
		||||
 | 
			
		||||
- name: "Install from templates: /etc/systemd/system/sugarizer.service, /etc/apache2/sites-available/sugarizer.conf"
 | 
			
		||||
- name: "Install from template: /etc/systemd/system/sugarizer.service"
 | 
			
		||||
  template:
 | 
			
		||||
    src: "{{ item.src }}"
 | 
			
		||||
    dest: "{{ item.dest }}"
 | 
			
		||||
    # owner: root
 | 
			
		||||
    # group: root
 | 
			
		||||
    # mode: '0644'
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { src: 'sugarizer.service', dest: '/etc/systemd/system/sugarizer.service' }
 | 
			
		||||
    - { src: 'sugarizer.conf.j2', dest: "/etc/{{ apache_conf_dir }}/sugarizer.conf" }
 | 
			
		||||
    #- { src: 'sugarizer.ini.j2', dest: '{{ iiab_base }}/sugarizer-server/env/sugarizer.ini' }
 | 
			
		||||
    #- { src: 'sugarizer.js', dest: '{{ iiab_base }}/sugarizer-server' }
 | 
			
		||||
    src: sugarizer.service
 | 
			
		||||
    dest: /etc/systemd/system
 | 
			
		||||
 | 
			
		||||
- name: "Install from template: /etc/{{ apache_conf_dir }}/sugarizer.conf"
 | 
			
		||||
  template:
 | 
			
		||||
    src: sugarizer.conf.j2
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}/sugarizer.conf"    # apache2/sites-available
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
# 3 [WAS 4] STANZAS ADDED BELOW JAN/FEB 2019, HOPING THIS MIGHT "JUST WORK"
 | 
			
		||||
# WITH FUTURE UPGRADES BEYOND SUGARIZER 1.1?!
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										12
									
								
								roles/usb_lib/tasks/apache.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								roles/usb_lib/tasks/apache.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
- name: Enable http://box/usb via Apache
 | 
			
		||||
  command: a2ensite content_dir.conf
 | 
			
		||||
  when: usb_lib_enabled | bool
 | 
			
		||||
 | 
			
		||||
- name: Disable http://box/usb via Apache
 | 
			
		||||
  command: a2dissite content_dir.conf
 | 
			
		||||
  when: not usb_lib_enabled
 | 
			
		||||
 | 
			
		||||
- name: (Re)Start '{{ apache_service }}' systemd service
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: "{{ apache_service }}"    # apache2 or httpd, as set in /opt/iiab/iiab/vars/<OS>.yml
 | 
			
		||||
    state: restarted
 | 
			
		||||
| 
						 | 
				
			
			@ -28,7 +28,7 @@
 | 
			
		|||
  template:
 | 
			
		||||
    src: content_dir.conf
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}"    # apache2/sites-available on debuntu
 | 
			
		||||
  when: apache_install
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# RECORD 'USB_LIB' AS INSTALLED
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,7 +30,13 @@
 | 
			
		|||
  when: usb_lib_installed is undefined
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- include_tasks: enable-or-disable.yml
 | 
			
		||||
- name: Enable/Disable/Restart Apache if primary
 | 
			
		||||
  include_tasks: apache.yml
 | 
			
		||||
  when: not nginx_enabled
 | 
			
		||||
 | 
			
		||||
- name: Enable/Disable/Restart NGINX if primary
 | 
			
		||||
  include_tasks: nginx.yml
 | 
			
		||||
  when: nginx_enabled | bool
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- name: Put variable in iiab.env that enables display of content at root of USB
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,10 +28,7 @@
 | 
			
		|||
    state: absent
 | 
			
		||||
  when: not usb_lib_enabled
 | 
			
		||||
 | 
			
		||||
- name: Enable http://box/usb via Apache, if usb_lib_enabled
 | 
			
		||||
  command: a2ensite content_dir.conf
 | 
			
		||||
  when: apache_install and usb_lib_enabled
 | 
			
		||||
 | 
			
		||||
- name: Disable http://box/usb via Apache, if not usb_lib_enabled
 | 
			
		||||
  command: a2dissite content_dir.conf
 | 
			
		||||
  when: apache_install and not usb_lib_enabled
 | 
			
		||||
- name: Restart 'nginx' systemd service
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: nginx
 | 
			
		||||
    state: restarted
 | 
			
		||||
| 
						 | 
				
			
			@ -89,7 +89,7 @@
 | 
			
		|||
  template:
 | 
			
		||||
    src: wordpress.conf.j2
 | 
			
		||||
    dest: "/etc/{{ apache_conf_dir }}/wordpress.conf"
 | 
			
		||||
  when: apache_enabled | bool
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# RECORD WordPress AS INSTALLED
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								roles/www_base/files/html/js/nacl-fast.min.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/www_base/files/html/js/nacl-fast.min.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								roles/www_base/files/html/js/nacl-util.min.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/www_base/files/html/js/nacl-util.min.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
!function(e,n){"use strict";"undefined"!=typeof module&&module.exports?module.exports=n():(e.nacl||(e.nacl={}),e.nacl.util=n())}(this,function(){"use strict";var e={};function o(e){if(!/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(e))throw new TypeError("invalid encoding")}return e.decodeUTF8=function(e){if("string"!=typeof e)throw new TypeError("expected string");var n,r=unescape(encodeURIComponent(e)),t=new Uint8Array(r.length);for(n=0;n<r.length;n++)t[n]=r.charCodeAt(n);return t},e.encodeUTF8=function(e){var n,r=[];for(n=0;n<e.length;n++)r.push(String.fromCharCode(e[n]));return decodeURIComponent(escape(r.join("")))},"undefined"==typeof atob?void 0!==Buffer.from?(e.encodeBase64=function(e){return Buffer.from(e).toString("base64")},e.decodeBase64=function(e){return o(e),new Uint8Array(Array.prototype.slice.call(Buffer.from(e,"base64"),0))}):(e.encodeBase64=function(e){return new Buffer(e).toString("base64")},e.decodeBase64=function(e){return o(e),new Uint8Array(Array.prototype.slice.call(new Buffer(e,"base64"),0))}):(e.encodeBase64=function(e){var n,r=[],t=e.length;for(n=0;n<t;n++)r.push(String.fromCharCode(e[n]));return btoa(r.join(""))},e.decodeBase64=function(e){o(e);var n,r=atob(e),t=new Uint8Array(r.length);for(n=0;n<r.length;n++)t[n]=r.charCodeAt(n);return t}),e});
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +1,5 @@
 | 
			
		|||
# Role "www_base" runs here, probably in 3-BASE-SERVER.
 | 
			
		||||
# Role "www_options" runs later, likely in 4-SERVER-OPTIONS.
 | 
			
		||||
#
 | 
			
		||||
# (Don't take either name too literally!)
 | 
			
		||||
 | 
			
		||||
- name: Using html.yml
 | 
			
		||||
  include_tasks: html.yml
 | 
			
		||||
| 
						 | 
				
			
			@ -15,7 +13,6 @@
 | 
			
		|||
    path: "{{ doc_root }}/home"    # /library/www/html
 | 
			
		||||
    owner: "{{ apache_user }}"
 | 
			
		||||
    group: "{{ apache_user }}"
 | 
			
		||||
    # mode: '0755'
 | 
			
		||||
 | 
			
		||||
- name: Create dir {{ doc_root }}/info for http://box/info offline docs
 | 
			
		||||
  file:
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +20,6 @@
 | 
			
		|||
    path: "{{ doc_root }}/info"    # /library/www/html
 | 
			
		||||
    owner: "{{ apache_user }}"
 | 
			
		||||
    group: "{{ apache_user }}"
 | 
			
		||||
    # mode: '0755'
 | 
			
		||||
 | 
			
		||||
- name: Install /usr/bin/iiab-refresh-wiki-docs (scraper script) to create http://box/info offline documentation.  (Script can be run manually and/or at the end of Stage 4 = roles/4-server-options/tasks/main.yml)
 | 
			
		||||
  template:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,5 @@
 | 
			
		|||
# Role "www_base" runs earlier, likely in 3-BASE-SERVER.
 | 
			
		||||
# Role "www_options" runs here, probably in 4-SERVER-OPTIONS.
 | 
			
		||||
#
 | 
			
		||||
# (Don't take either name too literally!)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# HOMEPAGE
 | 
			
		||||
| 
						 | 
				
			
			@ -17,12 +15,13 @@
 | 
			
		|||
# Used to be run by httpd/tasks/install.yml
 | 
			
		||||
- name: "IN CASE NGINX IS DISABLED: Enable IIAB pages via Apache (e.g. on port 80) if apache_install"
 | 
			
		||||
  include_tasks: roles/httpd/tasks/homepage.yml
 | 
			
		||||
  when: apache_install | bool
 | 
			
		||||
  when: apache_installed is defined
 | 
			
		||||
 | 
			
		||||
# Used to be run by nginx/tasks/install.yml
 | 
			
		||||
- name: Enable IIAB pages via NGINX (e.g. on port 80) if nginx_install
 | 
			
		||||
  include_tasks: roles/nginx/tasks/homepage.yml
 | 
			
		||||
  when: nginx_install | bool
 | 
			
		||||
  when: nginx_installed is defined
 | 
			
		||||
  #when: nginx_install | bool
 | 
			
		||||
 | 
			
		||||
- debug:
 | 
			
		||||
    msg: 'THE 3 ANSIBLE STANZAS BELOW ONLY RUN... when: (nginx_high_php_limits or moodle_install or nextcloud_install or pbx_install or wordpress_install) and nginx_enabled'
 | 
			
		||||
| 
						 | 
				
			
			@ -102,11 +101,11 @@
 | 
			
		|||
  when: internet_available and not nodocs
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- name: (Re)Start '{{ apache_service }}' systemd service, if apache_enabled
 | 
			
		||||
- name: (Re)Start '{{ apache_service }}' systemd service, if installed & enabled
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: "{{ apache_service }}"    # apache2 on debuntu
 | 
			
		||||
    state: restarted
 | 
			
		||||
  when: apache_enabled | bool
 | 
			
		||||
  when: apache_installed is defined and apache_enabled
 | 
			
		||||
 | 
			
		||||
- name: (Re)Start 'nginx' systemd service, if nginx_enabled
 | 
			
		||||
  systemd:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -223,19 +223,15 @@ pi_swap_file_size: 1024
 | 
			
		|||
 | 
			
		||||
# 2-COMMON
 | 
			
		||||
 | 
			
		||||
# Auto-enabled in roles/2-common/tasks/packages.yml as set in
 | 
			
		||||
# 0-init/defaults/main.yml AND 0-init/tasks/main.yml :
 | 
			
		||||
exFAT_enabled: True
 | 
			
		||||
 | 
			
		||||
# /usr/libexec/iiab-startup.sh is much like autoexec.bat & /etc/rc.local
 | 
			
		||||
# It's put in place by 2-common/tasks/iiab-startup.yml at the end of Stage 2.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 3-BASE-SERVER
 | 
			
		||||
 | 
			
		||||
# 2020-01-22: Both vars unused.  SEE ABOVE js_menu_install.
 | 
			
		||||
admin_console_install: True
 | 
			
		||||
admin_console_enabled: True
 | 
			
		||||
# 2020-01-22: See also js_menu_install (above).
 | 
			
		||||
admin_console_install: True    # For now in roles/9-local-addons/tasks/main.yml
 | 
			
		||||
admin_console_enabled: True    # Not in active use as of 2020-05-21
 | 
			
		||||
 | 
			
		||||
# MySQL MANDATORY - THESE 2 VARS HAVE NO EFFECT - SEE roles/0-init/tasks/main.yml & roles/mysql/tasks/main.yml
 | 
			
		||||
mysql_install: True
 | 
			
		||||
| 
						 | 
				
			
			@ -259,16 +255,22 @@ nginx_high_php_limits: False
 | 
			
		|||
# https://github.com/iiab/iiab/blob/master/roles/www_options/tasks/main.yml#L53-L67
 | 
			
		||||
# ...ARE SUITABLE FOR YOUR HARDWARE, for: /etc/php/<VERSION>/fpm/php.ini
 | 
			
		||||
 | 
			
		||||
# Make this False to disable http://box/common/services/power_off.php button:
 | 
			
		||||
apache_allow_sudo: True
 | 
			
		||||
 | 
			
		||||
# See also Apache vars {default_language, language_priority} @ top of this file
 | 
			
		||||
#
 | 
			
		||||
# 2020-05-21: apache_install is completely ignored as Apache is installed on
 | 
			
		||||
# demand as a dependency -- by CUPS, Elgg, Lokole, Moodle, Node-RED and/or
 | 
			
		||||
# phpMyAdmin -- but for now we set fake value 'apache_install: True' so that
 | 
			
		||||
# 'apache_installed is defined' input validation works, e.g. in
 | 
			
		||||
# 0-init/tasks/validate_vars.yml
 | 
			
		||||
apache_install: True
 | 
			
		||||
apache_enabled: False
 | 
			
		||||
#
 | 
			
		||||
# NGINX proxies to Apache for legacy IIAB services, using:
 | 
			
		||||
apache_port: 8090
 | 
			
		||||
apache_interface: 127.0.0.1    # 2020-01-13: Var unused
 | 
			
		||||
#
 | 
			
		||||
# Make this False to disable http://box/common/services/power_off.php button:
 | 
			
		||||
apache_allow_sudo: True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 4-SERVER-OPTIONS
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -138,9 +138,6 @@ pi_swap_file_size: 1024
 | 
			
		|||
 | 
			
		||||
# 2-COMMON
 | 
			
		||||
 | 
			
		||||
# exFAT_enabled: True is auto-enabled in roles/2-common/tasks/packages.yml
 | 
			
		||||
# as set in 0-init/defaults/main.yml AND 0-init/tasks/main.yml
 | 
			
		||||
 | 
			
		||||
# /usr/libexec/iiab-startup.sh is much like autoexec.bat & /etc/rc.local
 | 
			
		||||
# It's put in place by 2-common/tasks/iiab-startup.yml at the end of Stage 2.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -138,9 +138,6 @@ pi_swap_file_size: 1024
 | 
			
		|||
 | 
			
		||||
# 2-COMMON
 | 
			
		||||
 | 
			
		||||
# exFAT_enabled: True is auto-enabled in roles/2-common/tasks/packages.yml
 | 
			
		||||
# as set in 0-init/defaults/main.yml AND 0-init/tasks/main.yml
 | 
			
		||||
 | 
			
		||||
# /usr/libexec/iiab-startup.sh is much like autoexec.bat & /etc/rc.local
 | 
			
		||||
# It's put in place by 2-common/tasks/iiab-startup.yml at the end of Stage 2.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -138,9 +138,6 @@ pi_swap_file_size: 1024
 | 
			
		|||
 | 
			
		||||
# 2-COMMON
 | 
			
		||||
 | 
			
		||||
# exFAT_enabled: True is auto-enabled in roles/2-common/tasks/packages.yml
 | 
			
		||||
# as set in 0-init/defaults/main.yml AND 0-init/tasks/main.yml
 | 
			
		||||
 | 
			
		||||
# /usr/libexec/iiab-startup.sh is much like autoexec.bat & /etc/rc.local
 | 
			
		||||
# It's put in place by 2-common/tasks/iiab-startup.yml at the end of Stage 2.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue