1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-03-09 15:40:17 +00:00

Merge pull request #178 from iiab/master

sync from iiab/iiab
This commit is contained in:
A Holt 2018-11-02 19:51:25 -04:00 committed by GitHub
commit 4c4ca0e498
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 54 additions and 55 deletions

View file

@ -10,7 +10,7 @@ CWD=`pwd`
OS=`grep ^ID= /etc/*release|cut -d= -f2`
OS=${OS//\"/}
MIN_RPI_KERN=4.9.59-v7+
MIN_ANSIBLE_VER=2.6.6
MIN_ANSIBLE_VER=2.6.7
if [ ! -f /etc/iiab/local_vars.yml ]; then

View file

@ -1,5 +1,5 @@
- name: Create the directory structure for IIAB
- name: Create IIAB directory structure
include_tasks: fl.yml
- name: Write iiab_ini.yml for the first time
- name: Create {{ iiab_ini_file }}
include_tasks: iiab_ini.yml

View file

@ -1,4 +1,4 @@
- name: Create various library directories
- name: Create 21 directories with ownership root:root and permissions 0755 (3 in /etc, 3 in {{ iiab_base }} and 15 in /library) # iiab_base is /opt/iiab
file:
path: "{{ item }}"
owner: root
@ -7,6 +7,8 @@
state: directory
with_items:
- /etc/iiab
- /etc/sysconfig/olpc-scripts/
- /etc/sysconfig/olpc-scripts/setup.d/installed/
- "{{ yum_packages_dir }}"
- "{{ pip_packages_dir }}"
- "{{ downloads_dir }}"
@ -25,10 +27,8 @@
- "{{ doc_root }}/common/images"
- "{{ doc_root }}/common/assets"
- "{{ doc_root }}/common/services"
- /etc/sysconfig/olpc-scripts/
- /etc/sysconfig/olpc-scripts/setup.d/installed/
- name: Create symlink from webfonts to fonts
- name: Symlink from {{ doc_root }}/common/webfonts to {{ doc_root }}/common/fonts
file:
src: "{{ doc_root }}/common/fonts"
path: "{{ doc_root }}/common/webfonts"

View file

@ -1,21 +1,21 @@
- name: Is ubuntu-18 server
- name: Does /etc/cloud/cloud.cfg exist i.e. is this ubuntu-18 server?
stat:
path: /etc/cloud/cloud.cfg
register: U18_server
- name: Edit cloud.cfg yaml
- name: Put 'preserve_hostname: true' in /etc/cloud/cloud.cfg (ubuntu-18 server)
lineinfile:
dest: /etc/cloud/cloud.cfg
path: /etc/cloud/cloud.cfg
regexp: '^preserve_hostname*'
line: 'preserve_hostname: true'
state: present
when: U18_server is defined and U18_server.stat.exists
- name: Turn the crank for systemd (debuntu)
- name: 'Turn the crank for systemd: hostnamectl set-hostname "{{ iiab_hostname }}.{{ iiab_domain }}" (debuntu)'
shell: hostnamectl set-hostname "{{ iiab_hostname }}.{{ iiab_domain }}"
when: is_debuntu
- name: Configure /etc/sysconfig/network (redhat)
- name: Install /etc/sysconfig/network from template (redhat)
template:
src: roles/network/templates/network/sysconfig.network.j2
dest: /etc/sysconfig/network
@ -24,9 +24,9 @@
mode: 0644
when: is_redhat
- name: Configure short hostname in /etc/hosts
- name: Put hostnames "127.0.0.1 localhost.localdomain localhost box {{ iiab_hostname }}" in /etc/hosts
lineinfile:
dest: /etc/hosts
path: /etc/hosts
regexp: '^127\.0\.0\.1'
line: '127.0.0.1 localhost.localdomain localhost box {{ iiab_hostname }}'
owner: root

View file

@ -1,12 +1,12 @@
# workaround for fact that auto create does not work on iiab_ini_file (/etc/iiab/iiab.ini)
- name: Create {{ iiab_ini_file }}
file:
dest: "{{ iiab_ini_file }}"
path: "{{ iiab_ini_file }}"
state: touch
- name: Add location section to config file
- name: Add 'location' variable values to {{ iiab_ini_file }}
ini_file:
dest: "{{ iiab_ini_file }}"
path: "{{ iiab_ini_file }}"
section: location
option: "{{ item.option }}"
value: "{{ item.value }}"
@ -18,7 +18,7 @@
- name: Add 'version' variable values to {{ iiab_ini_file }}
ini_file:
dest: "{{ iiab_ini_file }}"
path: "{{ iiab_ini_file }}"
section: version
option: "{{ item.option }}"
value: "{{ item.value }}"

View file

@ -5,14 +5,14 @@
path: "{{ iiab_env_file }}"
register: NewInstall
- name: Setting first run flag
- name: Set first_run flag
set_fact:
first_run: True
when: not NewInstall.stat.exists
# We need to inialize the ini file and only write the location and version
# sections once and only once to preserve the install date and git hash.
- name: Write iiab_ini.yml for the first time
- name: Create IIAB directory structure and {{ iiab_ini_file }}, if first_run
include_tasks: first_run.yml
when: first_run
@ -36,30 +36,30 @@
# nobridge: True
when: ansible_local.local_facts.os == "raspbian"
- name: Set exFAT enabled for XO laptops
- 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: Finding gateway
- name: "Do we have a gateway? If so set discovered_wan_iface: {{ ansible_default_ipv4.alias }}, iiab_wan_iface: {{ discovered_wan_iface }}"
set_fact:
discovered_wan_iface: "{{ ansible_default_ipv4.alias }}"
iiab_wan_iface: "{{ discovered_wan_iface }}"
when: ansible_default_ipv4.gateway is defined
- name: Verify gateway present
- name: "Verify gateway active: ping -c4 {{ ansible_default_ipv4.gateway }}"
shell: ping -c4 "{{ ansible_default_ipv4.gateway }}" | grep icmp_seq=4 | wc -l
when: discovered_wan_iface != "none"
register: gw_active_test
- name: Recording gateway response
- name: If so, set gw_active
set_fact:
gw_active: True
when: discovered_wan_iface != "none" and gw_active_test.stdout == "1"
- name: Test for Internet access
- name: Test for Internet access ({{ iiab_download_url }}/heart-beat.txt)
get_url:
url: "{{ iiab_download_url }}/heart-beat.txt"
dest: /tmp/heart-beat.txt
@ -70,12 +70,12 @@
# poll: 2
register: internet_access_test
- name: Set internet_available true if wget succeeded
- name: Set internet_available if download succeeded and not disregard_network
set_fact:
internet_available: True
when: not internet_access_test.failed and not disregard_network
- name: Remove Internet test file
- name: Remove downloaded Internet test file /tmp/heart-beat.txt
file:
path: /tmp/heart-beat.txt
state: absent
@ -84,17 +84,17 @@
- name: If the TZ is not set in env, set it to UTC
include_tasks: tz.yml
- name: Set port 80 for Admin Console
- name: Set port 80 for Admin Console if not adm_cons_force_ssl
set_fact:
gui_port: 80
when: not adm_cons_force_ssl
- name: Set port 443 for Admin Console
- name: Set port 443 for Admin Console if adm_cons_force_ssl
set_fact:
gui_port: 443
when: adm_cons_force_ssl
- name: Require MySQL to be on (mandatory in Stage 3!)
- name: Turn on both vars for MySQL (mandatory in Stage 3!)
set_fact:
mysql_install: True
mysql_enabled: True
@ -103,18 +103,18 @@
# when: elgg_enabled or rachel_enabled or owncloud_enabled or phpmyadmin_enabled or wordpress_enabled or iiab_menu_install
# Late 2017: Had commented out MongoDB on a trial basis, for a more basic/lightweight Sugarizer, per https://github.com/iiab/iiab/pull/427
- name: Turn on vars for MongoDB if Sugarizer enabled
- name: Turn on both vars for MongoDB if sugarizer_enabled
set_fact:
mongodb_install: True
mongodb_enabled: True
when: sugarizer_enabled
# There might be other db's
- name: Turn on vars for PostgreSQL if Moodle or Pathagar enabled
- name: Turn on both vars for PostgreSQL if moodle_enabled or pathagar_enabled
set_fact:
postgresql_install: True
postgresql_enabled: True
when: moodle_enabled or (pathagar is defined and pathagar_enabled)
when: moodle_enabled or (pathagar_enabled is defined and pathagar_enabled)
#- name: Turn on vars for Docker if SchoolTool is to be installed
# set_fact:
@ -122,12 +122,12 @@
# docker_enabled: True
# when: schooltool_enabled or schooltool_install
- name: Set python_path (redhat)
- name: "Set python_path: /lib/python2.7/site-packages/ (redhat)"
set_fact:
python_path: /lib/python2.7/site-packages/
when: is_redhat
- name: Set python_path (debuntu)
- name: "Set python_path: /usr/local/lib/python2.7/dist-packages/ (debuntu)"
set_fact:
python_path: /usr/local/lib/python2.7/dist-packages/
when: is_debuntu
@ -135,28 +135,28 @@
# For various reasons the mysql service cannot be enabled on Fedora 20, but
# 'mariadb', which is its real name can. On Fedora 18 we need to use 'mysqld'.
- name: Set mysql_service to mariadb by default
- name: "Set mysql_service: mariadb by default"
set_fact:
mysql_service: mariadb
- name: Set mysql_service to mysqld etc (Fedora 18)
- name: "Set mysql_service: mysqld etc (Fedora 18)"
set_fact:
mysql_service: mysqld
no_NM_reload: True
is_F18: True
when: (ansible_distribution_release == "based on Fedora 18" or ansible_distribution_version == "18") and ansible_distribution == "Fedora"
- name: Set mysql_service to mysql (debuntu)
- name: "Set mysql_service: mysql (debuntu)"
set_fact:
mysql_service: mysql
when: is_debuntu
- name: Set FQDN
- name: "Set iiab_fqdn: {{ iiab_hostname }}.{{ iiab_domain }}"
set_fact:
iiab_fqdn: "{{ iiab_hostname }}.{{ iiab_domain }}"
FQDN_changed: False
- name: FQDN changed
- name: Set FQDN_changed when iiab_fqdn != ansible_fqdn ({{ ansible_fqdn }})
set_fact:
FQDN_changed: True
when: iiab_fqdn != ansible_fqdn

View file

@ -1,47 +1,46 @@
- name: Download DokuWiki software
- name: Download {{ iiab_download_url }}/{{ dokuwiki_version }}.tgz # iiab_download_url is http://download.iiab.io/packages
get_url:
url: "{{ iiab_download_url }}/{{ dokuwiki_version }}.tgz"
dest: "{{ downloads_dir }}/"
timeout: "{{ download_timeout }}"
when: internet_available
- name: Copy it to permanent location /library
- name: Unarchive (unpack) it to /library/{{ dokuwiki_version }}
unarchive:
src: "{{ downloads_dir }}/{{ dokuwiki_version }}.tgz"
dest: /library
creates: "/library/{{ dokuwiki_version }}/VERSION"
- name: Symlink /library/{{ dokuwiki_version }} from /library/dokuwiki
- name: Symlink /library/dokuwiki to /library/{{ dokuwiki_version }}
#shell: if [ ! -d /library/dokuwiki ]; then ln -sf /library/{{ dokuwiki_version }} /library/dokuwiki; fi
#shell: ln -sf /library/{{ dokuwiki_version }} /library/dokuwiki
#BOTH LINES ABOVE FAIL TO UPDATE LINK; Ansible approach below works
file:
path: /library/dokuwiki
src: /library/{{ dokuwiki_version }}
path: /library/dokuwiki
state: link
force: yes
- name: Install config file for DokuWiki in Apache
- name: Install /etc/{{ apache_config_dir }}/dokuwiki.conf from template, for DokuWiki's http://box/wiki
template:
src: dokuwiki.conf.j2
dest: "/etc/{{ apache_config_dir }}/dokuwiki.conf"
when: dokuwiki_enabled
- name: Enable the DokuWiki (debuntu)
- name: Symlink /etc/apache2/sites-enabled/dokuwiki.conf to /etc/apache2/sites-available/dokuwiki.conf if dokuwiki_enabled (debuntu)
file:
src: /etc/apache2/sites-available/dokuwiki.conf
dest: /etc/apache2/sites-enabled/dokuwiki.conf
path: /etc/apache2/sites-enabled/dokuwiki.conf
state: link
when: dokuwiki_enabled and is_debuntu
- name: Disable the DokuWiki (debuntu)
- name: Remove symlink /etc/apache2/sites-enabled/dokuwiki.conf if not dokuwiki_enabled (debuntu)
file:
path: /etc/apache2/sites-enabled/dokuwiki.conf
state: absent
when: not dokuwiki_enabled and is_debuntu
- name: Change permissions on engine directory so Apache can write
- name: Set /library/{{ dokuwiki_version }} owner to {{ apache_user }} and permissions to 0755 (recursively)
file:
path: "/library/{{ dokuwiki_version }}"
owner: "{{ apache_user }}"
@ -49,7 +48,7 @@
state: directory
recurse: yes
- name: Restart Apache, so it picks up the new aliases
service:
- name: Restart Apache ({{ apache_service }}) to enable/disable DokuWiki's http://box/wiki
systemd:
name: "{{ apache_service }}"
state: restarted

View file

@ -1,9 +1,9 @@
# Which kiwix-tools to download from http://download.iiab.io/packages/
# As obtained from http://download.kiwix.org/release/kiwix-tools/ or http://download.kiwix.org/nightly/
kiwix_version_armhf: "kiwix-tools_linux-armhf-0.6.1-1"
kiwix_version_linux64: "kiwix-tools_linux-x86_64-0.6.1-1"
kiwix_version_i686: "kiwix-tools_linux-i586-0.6.1-1"
kiwix_version_armhf: "kiwix-tools_linux-armhf-0.7.0"
kiwix_version_linux64: "kiwix-tools_linux-x86_64-0.7.0"
kiwix_version_i686: "kiwix-tools_linux-i586-0.7.0"
# kiwix_src_file_i686: "kiwix-linux-i686.tar.bz2"
# v0.9 for i686 published May 2014 ("use it to test legacy ZIM content")
# v0.10 for i686 published Oct 2016 ("experimental") REPLACED IN EARLY 2018, thx to Matthieu Gautier: