mirror of
https://github.com/iiab/iiab.git
synced 2025-03-09 15:40:17 +00:00
commit
ed30ffdbd1
74 changed files with 596 additions and 677 deletions
30
iiab-network
30
iiab-network
|
@ -11,16 +11,34 @@ if [ ! -f iiab-network.yml ]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f /etc/iiab/config_vars.yml ]; then
|
||||
echo "Creating stub /etc/iiab/config_vars.yml"
|
||||
mkdir -p /etc/iiab
|
||||
echo "{}" > /etc/iiab/config_vars.yml
|
||||
fi
|
||||
|
||||
OS="unknown" # will be overridden below, if /etc/iiab/iiab.env is legit
|
||||
if [ -f /etc/iiab/iiab.env ]; then
|
||||
echo "Reading /etc/iiab/iiab.env"
|
||||
STAGE=0
|
||||
source /etc/iiab/iiab.env
|
||||
if grep -q STAGE= /etc/iiab/iiab.env ; then
|
||||
echo -e "\nExtracted STAGE=$STAGE (counter) from /etc/iiab/iiab.env"
|
||||
if ! [ "$STAGE" -eq "$STAGE" ] 2> /dev/null; then
|
||||
echo -e "\nEXITING: STAGE (counter) value == ""$STAGE"" is non-integer"
|
||||
exit 1
|
||||
elif [ "$STAGE" -lt 0 ] || [ "$STAGE" -gt 9 ]; then
|
||||
echo -e "\nEXITING: STAGE (counter) value == ""$STAGE"" is out-of-range"
|
||||
exit 1
|
||||
elif [ "$STAGE" -lt 3 ]; then
|
||||
echo -e "\nEXITING: STAGE (counter) value == ""$STAGE"
|
||||
echo -e "\nIIAB Stage 3 not complete."
|
||||
echo -e "\nPlease run: ./iiab-install"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo -e "\nEXITING: STAGE (counter) not found"
|
||||
echo -e "\nIIAB not installed."
|
||||
echo -e "\nPlease run: ./iiab-install"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo -e "\nEXITING: /etc/iiab/iiab.env not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Ansible will now run iiab-network.yml -- log file is iiab-network.log"
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
state: restarted
|
||||
when: udev_unit.stat.exists is defined and udev_unit.stat.exists
|
||||
|
||||
- name: Enable the udev-reload service during boot.
|
||||
- name: Enable the udev-reload service during boot
|
||||
systemd:
|
||||
name: udev-reload
|
||||
enabled: yes
|
||||
|
|
|
@ -31,8 +31,8 @@ if [[ $(grep -i raspbian /etc/*release) &&
|
|||
#)
|
||||
#]];
|
||||
then
|
||||
ip link set dev wlan0 promisc on
|
||||
echo "wlan0 promiscuous mode ON, internal AP OFF: github.com/iiab/iiab/issues/638"
|
||||
# ip link set dev wlan0 promisc on
|
||||
echo "wlan0 promiscuous mode ON, internal AP OFF: github.com/iiab/iiab/issues/638 DISABLED"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# All above are set in: github.com/iiab/iiab/blob/master/vars/default_vars.yml
|
||||
# If nec, change them by editing /etc/iiab/local_vars.yml prior to installing!
|
||||
|
||||
calibreweb_version: 0.6.6 # WAS: master, 0.6.4, 0.6.5
|
||||
calibreweb_version: 0.6.7 # WAS: master, 0.6.4, 0.6.5, 0.6.7
|
||||
|
||||
calibreweb_venv_path: /usr/local/calibre-web-py3
|
||||
calibreweb_exec_path: "{{ calibreweb_venv_path }}/cps.py"
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
# 5. WRAP UP: ENABLE CALIBRE SERVICE, http://box/books ETC
|
||||
|
||||
# http://box:8080 & http://box:8080/mobile WORK BUT OTHER URL'S LIKE http://box/calibre ARE A MESS (BOOKS RARELY DISPLAY)
|
||||
#
|
||||
# 2018-08-27 POSSIBLE FIX...CONSIDER THIS ProxyPass / ProxyPassReverse TECHNIQUE:
|
||||
# https://github.com/iiab/iiab/tree/master/roles/calibre-web/templates/calibre-web.conf.j2
|
||||
# (anyway this works great for calibre-web, allowing http://box/books
|
||||
# to work even better than http://box:8083 when box == 192.168.0.x !)
|
||||
- name: Attempt to enable http://box/calibre via Apache (UNTESTED)
|
||||
command: a2ensite calibre.conf
|
||||
when: apache_installed and calibre_enabled
|
||||
|
||||
- name: Attempt to disable http://box/calibre via Apache (UNTESTED)
|
||||
command: a2dissite calibre.conf
|
||||
when: apache_installed and not calibre_enabled
|
||||
|
||||
- name: Enable & Start service 'calibre-serve' (/usr/bin/calibre-server by Kovid Goyal)
|
||||
service:
|
||||
name: calibre-serve
|
||||
enabled: yes
|
||||
state: started
|
||||
when: calibre_enabled | bool
|
||||
#async: 900
|
||||
#poll: 5
|
||||
|
||||
- name: Reload Apache service ({{ apache_service }})
|
||||
systemd:
|
||||
name: "{{ apache_service }}"
|
||||
state: reloaded
|
||||
|
||||
- name: Add 'calibre' variable values to {{ iiab_ini_file }}
|
||||
ini_file:
|
||||
path: "{{ iiab_ini_file }}"
|
||||
section: calibre
|
||||
option: "{{ item.option }}"
|
||||
value: "{{ item.value | string }}"
|
||||
with_items:
|
||||
- option: name
|
||||
value: Calibre
|
||||
- option: description
|
||||
value: '"Calibre is an extremely popular personal library system for e-books."'
|
||||
- option: url
|
||||
value: "{{ calibre_src_url }}"
|
||||
- option: database
|
||||
value: "{{ calibre_dbpath }}"
|
||||
- option: port
|
||||
value: "{{ calibre_port }}"
|
||||
- option: calibre_enabled
|
||||
value: "{{ calibre_enabled }}"
|
|
@ -1,25 +1,28 @@
|
|||
# 1. INSTALL THE LATEST CALIBRE 3.X+ (calibre, calibredb, calibre-server etc) ON ALL OS'S
|
||||
# 1. INSTALL CALIBRE 3.39.1+ or 4.12+ (calibre, calibredb, calibre-server etc) ON ALL OS'S
|
||||
|
||||
- name: Does /usr/bin/calibre exist?
|
||||
stat:
|
||||
path: "/usr/bin/calibre"
|
||||
register: calib_executable
|
||||
|
||||
- name: "Install OS's latest packages: calibre, calibre-bin (IF not rpi AND /usr/bin/calibre MISSING)"
|
||||
- name: "Install OS's latest packages: calibre, calibre-bin"
|
||||
package:
|
||||
name:
|
||||
- calibre
|
||||
- calibre-bin
|
||||
state: latest
|
||||
when: internet_available and not is_raspbian and (not calib_executable.stat.exists)
|
||||
|
||||
- name: Install Calibre .debs IF calibre_via_debs (AND /usr/bin/calibre WAS MISSING)
|
||||
include_tasks: debs.yml
|
||||
when: calibre_via_debs and (not calib_executable.stat.exists)
|
||||
# 2020-04-29: AT YOUR OWN RISK, this *sometimes* works, e.g. to upgrade from
|
||||
# Raspbian 10's Calibre 3.39.1 to "4.99.4+dfsg+really4.12.0-1" or higher, from:
|
||||
# http://raspbian.raspberrypi.org/raspbian/pool/main/c/calibre/
|
||||
# http://archive.raspbian.org/raspbian/pool/main/c/calibre/
|
||||
#
|
||||
#- name: Install Calibre via .debs (if Raspbian)
|
||||
# command: scripts/calibre-install-latest-rpi.sh # WORKED for Calibre 3.33.1 on 2018-10-23. And Calibre 3.28 on 2018-07-26 (PR #971). Likewise for Calibre 3.26.x. FAILED with Calibre 3.24+ ("calibre : Depends: python-pyqt5 (>= 5.10.1+dfsg-2) but 5.10.1+dfsg-1+rpi1 is to be installed") since June 2018.
|
||||
# when: is_raspbian | bool
|
||||
|
||||
- name: Install Calibre via calibre-installer.py IF calibre_via_python (AND /usr/bin/calibre WAS MISSING)
|
||||
include_tasks: py-installer.yml
|
||||
when: calibre_via_python and (not calib_executable.stat.exists)
|
||||
# 2020-04-29: Can work *IF* you do 'apt install python2' and change top line
|
||||
# of /opt/iiab/downloads/calibre-installer.py from '#!/usr/bin/env python2'
|
||||
# to '#!/usr/bin/python2' e.g. to upgrade Calibre 4.12 on Ubuntu 20.04 LTS.
|
||||
#
|
||||
#- name: Install Calibre via py-installer.yml -> calibre-installer.py (if not Raspbian)
|
||||
# include_tasks: py-installer.yml
|
||||
# when: not is_raspbian # True Debian or any Ubuntu?
|
||||
|
||||
# SEE calibre_via_python's value vars/default_vars.yml, vars/ubuntu-18.yml &
|
||||
# vars/raspbian-9.yml: try to AVOID Python installer on Raspbian since its
|
||||
|
@ -34,19 +37,13 @@
|
|||
|
||||
# 2. SYSTEMD SERVICES
|
||||
|
||||
- name: Create calibre-serve.service and calibre.conf (IF /usr/bin/calibre WAS MISSING)
|
||||
- name: Create /etc/systemd/system/calibre-serve.service and /etc/{{ apache_conf_dir }}/calibre.conf
|
||||
template:
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "{{ item.mode }}"
|
||||
backup: no
|
||||
#register: calibre_config
|
||||
with_items:
|
||||
- { src: 'calibre-serve.service.j2', dest: '/etc/systemd/system/calibre-serve.service', mode: '0644'}
|
||||
- { src: 'calibre.conf', dest: '/etc/{{ apache_conf_dir }}', mode: '0644'}
|
||||
when: (not calib_executable.stat.exists)
|
||||
- { src: 'calibre-serve.service.j2', dest: '/etc/systemd/system/calibre-serve.service' }
|
||||
- { src: 'calibre.conf', dest: '/etc/{{ apache_conf_dir }}' } # apache2/sites-available (this doesn't work, see #529: let's try to create /etc/nginx/conf.d/calibre-nginx.conf in future!)
|
||||
|
||||
- name: Stop service 'calibre-serve' (/usr/bin/calibre-server by Kovid Goyal)
|
||||
systemd:
|
||||
|
@ -57,20 +54,15 @@
|
|||
|
||||
# 3. CREATE USER DATABASE
|
||||
|
||||
- name: Create /library/calibre (mandatory since Calibre 3.x)
|
||||
- name: Create {{ calibre_dbpath }} (mandatory since Calibre 3.x)
|
||||
file:
|
||||
path: "{{ calibre_dbpath }}"
|
||||
path: "{{ calibre_dbpath }}" # /library/calibre
|
||||
state: directory
|
||||
#mode: 0755
|
||||
|
||||
- name: Copy template userdb to /library/calibre/users.sqlite (IF /usr/bin/calibre WAS MISSING)
|
||||
- name: Copy template userdb to {{ calibre_userdb }}
|
||||
copy:
|
||||
src: /opt/iiab/iiab/roles/calibre/templates/users.sqlite
|
||||
dest: "{{ calibre_userdb }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when: (not calib_executable.stat.exists)
|
||||
dest: "{{ calibre_userdb }}" # /library/calibre/users.sqlite
|
||||
|
||||
|
||||
# 4. CREATE CONTENT DATABASE WITH A SAMPLE BOOK (REQUIRED AS OF CALIBRE 3.x)
|
||||
|
|
|
@ -1,5 +1,83 @@
|
|||
- include_tasks: install.yml
|
||||
when: calibre_install and not calibre_installed is defined
|
||||
# "How do i fail a task in Ansible if the variable contains a boolean value?
|
||||
# I want to perform input validation for Ansible playbooks"
|
||||
# https://stackoverflow.com/questions/46664127/how-do-i-fail-a-task-in-ansible-if-the-variable-contains-a-boolean-value-i-want/46667499#46667499
|
||||
|
||||
- include_tasks: enable.yml
|
||||
when: calibre_install or calibre_installed is defined
|
||||
# We assume 0-init/tasks/validate_vars.yml has DEFINITELY been run, so no need
|
||||
# to re-check whether vars are defined here. As Ansible vars cannot be unset:
|
||||
# https://serverfault.com/questions/856729/how-to-destroy-delete-unset-a-variable-value-in-ansible
|
||||
|
||||
- name: Assert that "calibre_install is sameas true" (boolean not string etc)
|
||||
assert:
|
||||
that: calibre_install is sameas true
|
||||
fail_msg: "PLEASE SET 'calibre_install: True' e.g. IN: /etc/iiab/local_vars.yml"
|
||||
quiet: yes
|
||||
|
||||
- name: Assert that "calibre_enabled | type_debug == 'bool'" (boolean not string etc)
|
||||
assert:
|
||||
that: calibre_enabled | type_debug == 'bool'
|
||||
fail_msg: "PLEASE GIVE VARIABLE 'calibre_enabled' A PROPER (UNQUOTED) ANSIBLE BOOLEAN VALUE e.g. IN: /etc/iiab/local_vars.yml"
|
||||
quiet: yes
|
||||
|
||||
|
||||
- name: Install Calibre if 'calibre_installed' not defined, e.g. in {{ iiab_state_file }} # /etc/iiab/iiab_state.yml
|
||||
include_tasks: install.yml
|
||||
when: calibre_installed is undefined
|
||||
|
||||
# http://box:8080 & http://box:8080/mobile WORK BUT OTHER URL'S LIKE http://box/calibre ARE A MESS (BOOKS RARELY DISPLAY)
|
||||
#
|
||||
# 2018-08-27 POSSIBLE FIX...CONSIDER THIS ProxyPass / ProxyPassReverse TECHNIQUE:
|
||||
# https://github.com/iiab/iiab/tree/master/roles/calibre-web/templates/calibre-web.conf.j2
|
||||
# (anyway this works great for calibre-web, allowing http://box/books
|
||||
# to work even better than http://box:8083 when box == 192.168.0.x !)
|
||||
#
|
||||
#- name: Attempt to enable http://box/calibre via Apache (UNTESTED)
|
||||
# command: a2ensite calibre.conf
|
||||
# when: apache_installed and calibre_enabled
|
||||
#
|
||||
#- name: Attempt to disable http://box/calibre via Apache (UNTESTED)
|
||||
# command: a2dissite calibre.conf
|
||||
# when: apache_installed and not calibre_enabled
|
||||
|
||||
- name: Enable & (Re)Start 'calibre-serve' service, if calibre_enabled
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
name: calibre-serve
|
||||
enabled: yes
|
||||
state: restarted
|
||||
when: calibre_enabled | bool
|
||||
|
||||
- name: Disable & Stop 'calibre-serve' service, if not calibre_enabled
|
||||
systemd:
|
||||
name: calibre-serve
|
||||
enabled: no
|
||||
state: stopped
|
||||
when: not calibre_enabled
|
||||
|
||||
#- 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: Add 'calibre' variable values to {{ iiab_ini_file }}
|
||||
ini_file:
|
||||
path: "{{ iiab_ini_file }}" # /etc/iiab/iiab.ini
|
||||
section: calibre
|
||||
option: "{{ item.option }}"
|
||||
value: "{{ item.value | string }}"
|
||||
with_items:
|
||||
- option: name
|
||||
value: Calibre
|
||||
- option: description
|
||||
value: '"Calibre is an extremely popular personal library system for e-books."'
|
||||
- option: calibre_src_url
|
||||
value: "{{ calibre_src_url }}"
|
||||
- option: calibre_dbpath
|
||||
value: "{{ calibre_dbpath }}"
|
||||
- option: calibre_port
|
||||
value: "{{ calibre_port }}"
|
||||
- option: calibre_enabled
|
||||
value: "{{ calibre_enabled }}"
|
||||
|
|
|
@ -1,59 +0,0 @@
|
|||
# By the time we get here we should have ka-lite of some version
|
||||
# And the systemd unit files should be defined
|
||||
|
||||
- name: Enable & (re)start 'kalite-serve' service
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
name: kalite-serve
|
||||
enabled: yes
|
||||
state: restarted
|
||||
when: kalite_enabled
|
||||
|
||||
- name: Disable & stop 'kalite-serve' service
|
||||
systemd:
|
||||
name: kalite-serve
|
||||
enabled: no
|
||||
state: stopped
|
||||
when: not kalite_enabled
|
||||
|
||||
# 2019-10-20: Below is for Fedora 18 (XO laptops) only.
|
||||
# Since F18 we don't have a separate unit file for kalite-cron.
|
||||
#
|
||||
# SEE --skip-job-scheduler @ https://ka-lite.readthedocs.io/en/latest/usermanual/cli.html
|
||||
# ...as implemented in templates/kalite-serve.service.j2
|
||||
# ...if not kalite_cron_enabled
|
||||
# ...using {{ job_scheduler_stanza }} from kalite/tasks/install.yml
|
||||
|
||||
- name: Enable & (re)start 'kalite-cron' service (F18)
|
||||
service:
|
||||
name: kalite-cron
|
||||
enabled: yes
|
||||
state: restarted
|
||||
when: kalite_cron_enabled and is_F18
|
||||
|
||||
- name: Disable & stop 'kalite-cron' service (F18)
|
||||
service:
|
||||
name: kalite-cron
|
||||
enabled: no
|
||||
state: stopped
|
||||
when: not kalite_cron_enabled and is_F18
|
||||
|
||||
- name: Add 'kalite' variable values to {{ iiab_ini_file }}
|
||||
ini_file:
|
||||
path: "{{ iiab_ini_file }}"
|
||||
section: kalite
|
||||
option: "{{ item.option }}"
|
||||
value: "{{ item.value | string }}"
|
||||
with_items:
|
||||
- option: name
|
||||
value: "KA Lite"
|
||||
- option: description
|
||||
value: '"KA Lite downloads Khan Academy videos for offline use, with exercises and accounts if students want to track their own progress."'
|
||||
- option: path
|
||||
value: "{{ kalite_root }}"
|
||||
- option: port
|
||||
value: "{{ kalite_server_port }}"
|
||||
- option: kalite_enabled
|
||||
value: "{{ kalite_enabled }}"
|
||||
- option: cron_enabled
|
||||
value: "{{ kalite_cron_enabled }}"
|
|
@ -1,76 +0,0 @@
|
|||
# This is for Fedora 18, assumed to be an XO
|
||||
|
||||
- name: Install dependent packages (Fedora 18)
|
||||
package:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
with_items:
|
||||
- python-psutil
|
||||
- expect
|
||||
when: is_F18 | bool
|
||||
|
||||
- name: Install dependent pip packages (Fedora 18)
|
||||
pip:
|
||||
name: selenium
|
||||
when: internet_available and is_F18
|
||||
|
||||
- name: Determine if KA Lite is already downloaded
|
||||
stat:
|
||||
path: "{{ downloads_dir }}/ka-lite"
|
||||
register: kalite
|
||||
|
||||
- name: Download the latest KA Lite repo
|
||||
git:
|
||||
repo: "{{ kalite_repo_url }}"
|
||||
dest: "{{ downloads_dir }}/ka-lite"
|
||||
depth: 1
|
||||
version: 0.13.x
|
||||
ignore_errors: yes
|
||||
when: internet_available and kalite.stat.exists is defined and not kalite.stat.exists
|
||||
|
||||
- name: Create iiab-kalite user and password (Fedora 18)
|
||||
user:
|
||||
name: "{{ kalite_user }}"
|
||||
password: "{{ kalite_password_hash }}"
|
||||
update_password: on_create
|
||||
|
||||
- name: Create kalite_root directory (Fedora 18)
|
||||
file:
|
||||
path: "{{ kalite_root }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
state: directory
|
||||
|
||||
- name: Copy the KA Lite repo into place (Fedora 18)
|
||||
command: "rsync -at {{ downloads_dir }}/ka-lite/ {{ kalite_root }}"
|
||||
|
||||
- name: Make kalite_user owner
|
||||
file:
|
||||
path: "{{ kalite_root }}"
|
||||
owner: "{{ kalite_user }}"
|
||||
group: "{{ kalite_user }}"
|
||||
recurse: yes
|
||||
state: directory
|
||||
|
||||
# local_settings is deprecated
|
||||
- name: Copy local_settings file
|
||||
template:
|
||||
src: f18/local_settings.py.j2
|
||||
dest: "{{ kalite_root }}/kalite/local_settings.py"
|
||||
owner: "{{ kalite_user }}"
|
||||
group: "{{ kalite_user }}"
|
||||
mode: 0644
|
||||
|
||||
- name: Create kalite-serve & kalite-cron services, and iiab_cronservectl.sh
|
||||
template:
|
||||
backup: no
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "{{ item.mode }}"
|
||||
with_items:
|
||||
- { src: 'f18/kalite-serve.service.j2', dest: '/etc/systemd/system/kalite-serve.service', mode: '0644'}
|
||||
- { src: 'f18/kalite-cron.service.j2', dest: '/etc/systemd/system/kalite-cron.service', mode: '0644'}
|
||||
- { src: 'f18/iiab_cronservectl.sh.j2', dest: '{{ kalite_root }}/scripts/iiab_cronservectl.sh', mode: '0755'}
|
|
@ -1,95 +0,0 @@
|
|||
# For OS's other than Fedora 18
|
||||
- name: Download {{ kalite_requirements }} to {{ pip_packages_dir }}/kalite.txt
|
||||
get_url:
|
||||
url: "{{ kalite_requirements }}"
|
||||
dest: "{{ pip_packages_dir }}/kalite.txt" # /opt/iiab/pip-packages/kalite.txt
|
||||
timeout: "{{ download_timeout }}"
|
||||
when: internet_available | bool
|
||||
|
||||
# 2020-01-19: https://github.com/piwheels/packages/issues/74 says the following is not longer needed...
|
||||
#- name: Run 'mv /etc/pip.conf /etc/pip.conf.see-iiab-issue-2139' as "TEMPORARY" workaround (2020-01-17) for piwheels.org's setuptools Python 2/3 brokenness on RPi (https://github.com/iiab/iiab/issues/2139)
|
||||
# command: mv /etc/pip.conf /etc/pip.conf.see-iiab-issue-2139
|
||||
# ignore_errors: yes
|
||||
# when: is_raspbian | bool
|
||||
|
||||
#- name: Install KA Lite non-static + reqs file with pip - (debuntu)
|
||||
# pip: requirements={{ pip_packages_dir }}/kalite.txt
|
||||
# virtualenv={{ kalite_venv }}
|
||||
# virtualenv_site_packages=no
|
||||
# extra_args="--no-cache-dir"
|
||||
# extra_args="--disable-pip-version-check"
|
||||
# when: internet_available and is_debuntu
|
||||
|
||||
- name: Install KA Lite static to {{ kalite_venv }}, using pip (debuntu)
|
||||
pip:
|
||||
name: ka-lite-static
|
||||
version: "{{ kalite_version }}"
|
||||
virtualenv: "{{ kalite_venv }}"
|
||||
virtualenv_site_packages: no
|
||||
virtualenv_command: /usr/bin/virtualenv
|
||||
virtualenv_python: python2.7
|
||||
extra_args: "--no-cache-dir"
|
||||
# extra_args="--disable-pip-version-check"
|
||||
when: internet_available and is_debuntu
|
||||
|
||||
#- name: Install KA Lite non-static + reqs file with pip (OS's other than debuntu)
|
||||
# pip: requirements={{ pip_packages_dir }}/kalite.txt
|
||||
# virtualenv={{ kalite_venv }}
|
||||
# virtualenv_site_packages=no
|
||||
# extra_args="--no-cache-dir"
|
||||
# extra_args="--disable-pip-version-check"
|
||||
# when: internet_available and not is_debuntu
|
||||
|
||||
- name: Install KA Lite static to {{ kalite_venv }}, using pip (OS's other than debuntu)
|
||||
pip:
|
||||
name: ka-lite-static
|
||||
version: "{{ kalite_version }}"
|
||||
virtualenv: "{{ kalite_venv }}"
|
||||
virtualenv_site_packages: no
|
||||
virtualenv_command: /usr/bin/virtualenv
|
||||
virtualenv_python: python2.7
|
||||
# extra_args="--no-cache-dir"
|
||||
# extra_args="--disable-pip-version-check"
|
||||
when: internet_available and not is_debuntu
|
||||
|
||||
# This effectively does nothing at all on Ubuntu & Raspbian, where libgeos-*
|
||||
# pkgs are not installed FWIW. But it's included to safeguard us across all
|
||||
# OS's, in case others OS's like Ubermix later appear. See #1382 for details.
|
||||
# Removing pkgs libgeos-3.6.2 & libgeos-c1v5 fixed the situation on Ubermix!
|
||||
- name: Remove libgeos-* pkgs, avoiding KA Lite Django failure on Ubermix
|
||||
shell: apt -y remove "libgeos-*"
|
||||
|
||||
# 2019-10-20: For Fedora 18 legacy (XO laptops) specially
|
||||
- name: Default is to have cronserve started with KA Lite
|
||||
set_fact:
|
||||
job_scheduler_stanza: ""
|
||||
|
||||
- name: Add --skip-job-scheduler to start if cronserve not enabled
|
||||
set_fact:
|
||||
job_scheduler_stanza: "--skip-job-scheduler "
|
||||
when: not kalite_cron_enabled
|
||||
|
||||
- name: "Install from template: venv wrapper /usr/bin/kalite, systemd unit file kalite-serve.service, Apache's kalite.conf"
|
||||
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'}
|
||||
|
||||
- name: Fix KA Lite bug in regex parsing ifconfig output, for @m-anish's network names that contain dashes
|
||||
replace:
|
||||
path: /usr/local/kalite/venv/local/lib/python2.7/site-packages/kalite/packages/dist/ifcfg/parser.py
|
||||
regexp: 'a-zA-Z0-9'
|
||||
replace: 'a-zA-Z0-9\-'
|
||||
|
||||
|
||||
# RECORD KA Lite AS INSTALLED
|
||||
|
||||
# TO DO: move the last 2 stanzas from setup.yml so they live right here,
|
||||
# as any action named "install.yml" should do exactly what it says (install!)
|
|
@ -30,7 +30,7 @@
|
|||
name: kalite-serve
|
||||
enabled: yes
|
||||
state: restarted
|
||||
when: kalite_enabled
|
||||
when: kalite_enabled | bool
|
||||
|
||||
- name: Disable & Stop 'kalite-serve' service, if not kalite_enabled
|
||||
systemd:
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
# This is for Fedora 18, assumed to be an XO
|
||||
|
||||
- name: Run the setup using 'kalite manage' (Fedora 18)
|
||||
command: "/usr/bin/su {{ kalite_user }} -c '{{ kalite_root }}/bin/kalite manage setup --username={{ kalite_user }} --password={{ kalite_password }} --noinput'"
|
||||
async: 900
|
||||
poll: 10
|
||||
|
||||
- name: Finish setup by running 'kalite start' (Fedora 18)
|
||||
command: "/usr/bin/su {{ kalite_user }} -c '{{ kalite_root }}/bin/kalite start'"
|
||||
async: 900
|
||||
poll: 10
|
||||
|
||||
- name: Stop kalite server started in previous step because we use systemd
|
||||
command: "/usr/bin/su {{ kalite_user }} -c '{{ kalite_root }}/bin/kalite stop'"
|
|
@ -1,32 +0,0 @@
|
|||
# For OS's other than Fedora 18
|
||||
|
||||
- name: Create {{ kalite_root }} directory
|
||||
file:
|
||||
path: "{{ kalite_root }}/httpsrv/static" # /library/ka-lite
|
||||
# owner: root
|
||||
# group: root
|
||||
# mode: 0755
|
||||
state: directory
|
||||
|
||||
- name: Run the setup using 'kalite manage'
|
||||
command: "{{ kalite_program }} manage setup --username={{ kalite_admin_user }} --password={{ kalite_admin_password }} --noinput" # Runs /usr/local/kalite/venv/bin/kalite
|
||||
environment:
|
||||
KALITE_HOME: "{{ kalite_root }}" # /library/ka-lite
|
||||
async: 1800
|
||||
poll: 10
|
||||
|
||||
|
||||
# RECORD KA Lite AS INSTALLED
|
||||
|
||||
# TO DO: move these last 2 stanzas to install.yml,
|
||||
# as any action named "install.yml" should do exactly what it says (install!)
|
||||
|
||||
- name: "Set 'kalite_installed: True'"
|
||||
set_fact:
|
||||
kalite_installed: True
|
||||
|
||||
- name: "Add 'kalite_installed: True' to {{ iiab_state_file }}"
|
||||
lineinfile:
|
||||
path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
|
||||
regexp: '^kalite_installed'
|
||||
line: 'kalite_installed: True'
|
|
@ -25,19 +25,12 @@
|
|||
#
|
||||
# hostapd_install: True # 2020-01-21: do not rely on this var for now (might be implemented in future)
|
||||
# hostapd_enabled: True
|
||||
# Above is forcibly set to False (in roles/network/tasks/main.yml) if IIAB is
|
||||
# being WiFi-installed (run "iiab-hotspot-on" AFTER ./iiab-install completes
|
||||
# and content is downloaded, to enable the internal WiFi Access Point / AP!)
|
||||
#
|
||||
# reboot_to_AP: False
|
||||
# For those installing IIAB over WiFi: "reboot_to_AP: True" overrides the above
|
||||
# detection of WiFi-as-gateway, forcing "hostapd_enabled: True" regardless.
|
||||
#
|
||||
# Above 2 vars set in /opt/iiab/iiab/vars/default_vars.yml
|
||||
#
|
||||
# Above set in /opt/iiab/iiab/vars/default_vars.yml
|
||||
|
||||
hostapd_wait: 5
|
||||
host_wireless_n: False
|
||||
driver_name: nl80211
|
||||
ap0_mac_addr: b8:27:99:12:34:56
|
||||
|
||||
# DNS / name resolution
|
||||
# dhcpd_install: False
|
||||
|
@ -61,13 +54,14 @@ strict_networking: False
|
|||
iiab_demo_mode: False
|
||||
gui_static_wan: False
|
||||
wan_cidr:
|
||||
virtual_network_devices: "-e ap0 -e lo -e br0 -e tun -e br- -e docker -e bridge0 -e veth"
|
||||
|
||||
# Set defaults for discovery process as strings
|
||||
wifi1: "not found-1"
|
||||
wifi2: "not found-2"
|
||||
ap_device: "none"
|
||||
exclude_device: "none"
|
||||
device_gw: "none"
|
||||
device_gw2: ""
|
||||
prior_gw_device: ""
|
||||
|
||||
iiab_wan_iface: "none"
|
||||
iiab_lan_iface: "none"
|
||||
|
|
|
@ -3,27 +3,39 @@
|
|||
include_tasks: down-debian.yml
|
||||
|
||||
# provide keyfile layout like the XO's used way back.
|
||||
- name: Create uuid for NM's keyfile store
|
||||
shell: uuidgen
|
||||
register: uuid_response
|
||||
#- name: Create uuid for NM's keyfile store
|
||||
# shell: uuidgen
|
||||
# register: uuid_response
|
||||
|
||||
- name: Put the uuid in place
|
||||
set_fact:
|
||||
gen_uuid: "{{ uuid_response.stdout_lines[0] }}"
|
||||
#- name: Put the uuid in place
|
||||
# set_fact:
|
||||
# gen_uuid: "{{ uuid_response.stdout_lines[0] }}"
|
||||
|
||||
# NM might have a watcher on this path and we don't have to restart NM
|
||||
- name: Copy the bridge script for NetworkManager
|
||||
template:
|
||||
dest: /etc/NetworkManager/system-connections/
|
||||
src: network/bridge-br0
|
||||
mode: 0600
|
||||
when: iiab_network_mode != "Appliance"
|
||||
|
||||
- name: Remove br0 in Appliance Mode for NetworkManager
|
||||
# systemd-networkd handles br0 except for Raspbian
|
||||
- name: Remove stale br0 for NetworkManager
|
||||
file:
|
||||
dest: /etc/NetworkManager/system-connections/bridge-br0
|
||||
state: absent
|
||||
when: iiab_network_mode == "Appliance"
|
||||
|
||||
- name: Copy ap0-manage.conf for NetworkManager
|
||||
template:
|
||||
dest: /etc/NetworkManager/conf.d/ap0-manage.conf
|
||||
src: network/ap0-manage.conf
|
||||
mode: 0644
|
||||
when: wifi_up_down
|
||||
|
||||
- name: Copy manage.conf for NetworkManager when wifi_up_down False
|
||||
template:
|
||||
dest: /etc/NetworkManager/conf.d/wifi-manage.conf
|
||||
src: network/manage.conf.j2
|
||||
mode: 0644
|
||||
when: discovered_wireless_iface != "none" and not wifi_up_down
|
||||
|
||||
- name: Remove manage.conf for NetworkManager when wifi_up_down True
|
||||
file:
|
||||
dest: /etc/NetworkManager/conf.d/wifi-manage.conf
|
||||
state: absent
|
||||
when: wifi_up_down
|
||||
|
||||
- name: Removing static for NetworkManager
|
||||
file:
|
||||
|
@ -58,16 +70,6 @@
|
|||
mode: 0600
|
||||
when: wan_ip != "dhcp"
|
||||
|
||||
- name: Stop wpa_supplicant service
|
||||
service:
|
||||
name: wpa_supplicant
|
||||
state: stopped
|
||||
when: iiab_wireless_lan_iface is defined and hostapd_enabled and iiab_network_mode != "Appliance"
|
||||
|
||||
- name: Mask wpa_supplicant
|
||||
shell: systemctl mask wpa_supplicant
|
||||
when: iiab_wireless_lan_iface is defined and hostapd_enabled and iiab_network_mode != "Appliance"
|
||||
|
||||
- name: Reload systemd
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
|
|
|
@ -6,20 +6,6 @@
|
|||
user_wan_iface: "{{ discovered_wan_iface }}"
|
||||
when: not (discovered_wan_iface == "none") and not (xo_model == "none") and has_ifcfg_gw == "none"
|
||||
|
||||
#- name: Checking for NetworkManager-config-server
|
||||
# shell: rpm -qa | grep NetworkManager-config-server | wc -l
|
||||
# register: strict_networking_check
|
||||
|
||||
#- name: Found Checking for NetworkManager-config-server
|
||||
# set_fact:
|
||||
# strict_networking: True
|
||||
# when: strict_networking_check == "1"
|
||||
|
||||
#- name: Use restricted network features
|
||||
# set_fact:
|
||||
# iiab_demo_mode: True
|
||||
# when: teamviewer_install and not strict_networking
|
||||
|
||||
- name: XO laptop wants USB WiFi interface as AP mode
|
||||
set_fact:
|
||||
iiab_wireless_lan_iface: "{{ discovered_lan_iface }}"
|
||||
|
@ -62,7 +48,7 @@
|
|||
user_wan_iface: "none"
|
||||
when: not iiab_wan_enabled
|
||||
|
||||
# gui wants LanController # keeps ifcfg-WAN but onboot=no
|
||||
# gui wants LanController
|
||||
# the change over might be a little bumpy ATM.
|
||||
- name: Setting GUI wants 'LanController'
|
||||
set_fact:
|
||||
|
@ -71,10 +57,9 @@
|
|||
iiab_gateway_enabled: "False"
|
||||
when: gui_desired_network_role is defined and gui_desired_network_role == "LanController"
|
||||
|
||||
# device_gw is used with the LAN detection and LAN's ifcfg file deletion.
|
||||
# single interface vars/ users would need to set iiab_wan_enabled False as above, to disable the WAN
|
||||
# and set user_lan_iface = <device> to suppress the auto detection for the same effect.
|
||||
|
||||
# discovered_wan_iface is used with the LAN detection, single interface vars/ users would
|
||||
# need to set iiab_wan_enabled False as above, to disable the WAN and set
|
||||
# user_lan_iface: <device> to suppress the auto detection for the same effect.
|
||||
- name: Setting user_lan_iface for 'LanController' for single interface
|
||||
set_fact:
|
||||
user_lan_iface: "{{ discovered_wan_iface }}"
|
||||
|
@ -143,24 +128,6 @@
|
|||
iiab_lan_iface: "{{ user_lan_iface }}"
|
||||
when: not (user_lan_iface == "auto")
|
||||
|
||||
# so this works
|
||||
- name: Interface count
|
||||
shell: ls /sys/class/net | grep -v -e lo -e bridge0 -e veth -e "br-*" -e docker| wc | awk '{print $1}'
|
||||
register: adapter_count
|
||||
|
||||
# well if there ever was a point to tell the user things are FUBAR this is it.
|
||||
- name: We're hosed no work interfaces
|
||||
set_fact:
|
||||
iiab_network_mode: "No_network_found"
|
||||
when: adapter_count.stdout|int == 0
|
||||
|
||||
# well if there ever was a point to tell the user things are FUBAR this is it.
|
||||
- name: I'm not guessing declare gateway please
|
||||
set_fact:
|
||||
iiab_network_mode: "Undetectable_use_local_vars"
|
||||
iiab_wan_iface: "none"
|
||||
when: adapter_count.stdout|int >= 5 and device_gw == "none" and gui_wan_iface == "unset" and gui_static_wan is defined
|
||||
|
||||
- name: Record IIAB_WAN_DEVICE to {{ iiab_env_file }}
|
||||
lineinfile:
|
||||
path: "{{ iiab_env_file }}"
|
||||
|
@ -197,11 +164,3 @@
|
|||
value: "{{ iiab_lan_iface }}"
|
||||
- option: iiab_network_mode
|
||||
value: "{{ iiab_network_mode }}"
|
||||
- option: hostapd_enabled
|
||||
value: "{{ hostapd_enabled }}"
|
||||
- option: host_ssid
|
||||
value: "{{ host_ssid }}"
|
||||
- option: host_wifi_mode
|
||||
value: "{{ host_wifi_mode }}"
|
||||
- option: host_channel
|
||||
value: "{{ host_channel }}"
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
dansguardian_enabled: False
|
||||
squid_enabled: False
|
||||
wondershaper_enabled: False
|
||||
hostapd_enabled: False
|
||||
iiab_network_mode: "Appliance"
|
||||
when: iiab_lan_iface == "none" or user_lan_iface == "none"
|
||||
|
||||
|
@ -74,3 +75,11 @@
|
|||
value: "{{ dnsmasq_enabled }}"
|
||||
- option: no_net_restart
|
||||
value: "{{ no_net_restart }}"
|
||||
- option: hostapd_enabled
|
||||
value: "{{ hostapd_enabled }}"
|
||||
- option: host_ssid
|
||||
value: "{{ host_ssid }}"
|
||||
- option: host_wifi_mode
|
||||
value: "{{ host_wifi_mode }}"
|
||||
- option: host_channel
|
||||
value: "{{ host_channel }}"
|
||||
|
|
|
@ -1,23 +1,36 @@
|
|||
- name: iiab_wan_device
|
||||
shell: grep IIAB_WAN_DEVICE {{ iiab_env_file }} | awk -F "=" '{print $2}'
|
||||
when: iiab_stage|int > 4
|
||||
register: prior_gw
|
||||
# so this works
|
||||
- name: Interface count
|
||||
shell: ls /sys/class/net | grep -v {{ virtual_network_devices }} | wc | awk '{print $1}'
|
||||
register: adapter_count
|
||||
|
||||
# well if there ever was a point to tell the user things are FUBAR this is it.
|
||||
- name: We're hosed no work interfaces
|
||||
fail: # FORCE IT RED THIS ONCE!
|
||||
msg: "No_network_found"
|
||||
when: adapter_count.stdout|int == 0
|
||||
|
||||
- name: Checking for old device gateway interface for device test
|
||||
shell: grep IIAB_WAN_DEVICE {{ iiab_env_file }} | awk -F "=" '{print $2}'
|
||||
when: iiab_stage|int == 9
|
||||
register: prior_gw
|
||||
|
||||
- name: Setting device_gw, prior_gw_device
|
||||
set_fact:
|
||||
device_gw: "{{ prior_gw.stdout }}"
|
||||
device_gw2: "{{ prior_gw.stdout }}"
|
||||
when: iiab_stage|int > 4 and prior_gw is defined and prior_gw.stdout != ""
|
||||
prior_gw_device: "{{ prior_gw.stdout }}"
|
||||
when: prior_gw.stdout is defined and prior_gw.stdout != ""
|
||||
|
||||
- name: Setting WAN if detected
|
||||
- name: Setting WAN, device_gw if detected
|
||||
set_fact:
|
||||
iiab_wan_iface: "{{ discovered_wan_iface }}"
|
||||
device_gw: "{{ discovered_wan_iface }}"
|
||||
when: ansible_default_ipv4.gateway is defined
|
||||
|
||||
- name: Red Hat network detection (redhat)
|
||||
include_tasks: detected_redhat.yml
|
||||
when: is_redhat | bool
|
||||
- name: Figure out netplan file name
|
||||
shell: ls /etc/netplan
|
||||
register: netplan
|
||||
ignore_errors: True # pre 17.10 doesn't use netplan
|
||||
when: is_ubuntu
|
||||
|
||||
- name: Setting dhcpcd_test results
|
||||
set_fact:
|
||||
|
@ -75,16 +88,15 @@
|
|||
set_fact:
|
||||
wifi2: "{{ item|trim }}"
|
||||
discovered_wireless_iface: "{{ item|trim }}"
|
||||
when: wireless_list2.stdout is defined and not wireless_list2.stdout == "ap0"
|
||||
when: wireless_list2.stdout is defined and item|trim != "ap0"
|
||||
with_items:
|
||||
- "{{ wireless_list2.stdout_lines }}"
|
||||
#item|trim != discovered_wan_iface
|
||||
|
||||
- name: Count WiFi ifaces
|
||||
shell: "ls -la /sys/class/net/*/phy80211 | awk -F / '{print $5}' | wc -l"
|
||||
shell: "ls -la /sys/class/net/*/phy80211 | awk -F / '{print $5}' | grep -v -e ap0 | wc -l"
|
||||
register: count_wifi_interfaces
|
||||
|
||||
# facts are apparently all stored as text, so do text comparisons from here on
|
||||
- name: Remember number of WiFi devices
|
||||
set_fact:
|
||||
num_wifi_interfaces: "{{ count_wifi_interfaces.stdout|int }}"
|
||||
|
@ -94,16 +106,16 @@
|
|||
|
||||
- name: XO laptop override 2 WiFi on LAN
|
||||
set_fact:
|
||||
ap_device: "eth0"
|
||||
exclude_device: "eth0"
|
||||
when: iiab_wan_iface != "eth0" and discovered_wireless_iface != "none" and xo_model == "XO-1.5"
|
||||
|
||||
- name: Exclude reserved WiFi adapter if defined - takes adapter name
|
||||
- name: Exclude reserved Network Adapter if defined - takes adapter name
|
||||
set_fact:
|
||||
ap_device: "{{ reserved_wifi }}"
|
||||
when: reserved_wifi is defined and discovered_wireless_iface != iiab_wan_iface and num_wifi_interfaces >= "2"
|
||||
exclude_device: "{{ reserved_device }}"
|
||||
when: reserved_device is defined
|
||||
|
||||
- name: Count LAN ifaces
|
||||
shell: ls /sys/class/net | grep -v -e ap0 -e wwlan -e ppp -e lo -e br0 -e tun -e br- -e docker -e bridge0 -e veth -e {{ device_gw }} -e {{ ap_device }} | wc -l
|
||||
shell: ls /sys/class/net | grep -v {{ virtual_network_devices }} -e wwlan -e ppp -e {{ device_gw }} -e {{ exclude_device }} | wc -l
|
||||
register: num_lan_interfaces_result
|
||||
|
||||
- name: Calculate number of LAN interfaces including WiFi
|
||||
|
@ -112,7 +124,7 @@
|
|||
|
||||
# LAN - pick non WAN's
|
||||
- name: Create list of LAN (non WAN) ifaces
|
||||
shell: ls /sys/class/net | grep -v -e ap0 -e wwlan -e ppp -e lo -e br0 -e tun -e br- -e docker -e bridge0 -e veth -e {{ device_gw }} -e {{ ap_device }}
|
||||
shell: ls /sys/class/net | grep -v {{ virtual_network_devices }} -e wwlan -e ppp -e {{ device_gw }} -e {{ exclude_device }}
|
||||
when: num_lan_interfaces != "0"
|
||||
register: lan_list_result
|
||||
|
||||
|
@ -133,20 +145,22 @@
|
|||
with_items:
|
||||
- "{{ lan_list_result.stdout_lines }}"
|
||||
|
||||
- name: Set iiab_wireless_lan_iface if present
|
||||
|
||||
- name: Set iiab_wireless_lan_iface to {{ discovered_wireless_iface }} if not none
|
||||
set_fact:
|
||||
iiab_wireless_lan_iface: "{{ discovered_wireless_iface }}"
|
||||
when: discovered_wireless_iface is defined and discovered_wireless_iface != "none" and discovered_wireless_iface != iiab_wan_iface
|
||||
when: discovered_wireless_iface != "none" and not wifi_up_down
|
||||
|
||||
- name: Set iiab_wireless_lan_iface to ap0 if WiFi device is present
|
||||
set_fact:
|
||||
iiab_wireless_lan_iface: ap0
|
||||
when: discovered_wireless_iface != "none" and wifi_up_down
|
||||
|
||||
- name: Set iiab_wired_lan_iface if present
|
||||
set_fact:
|
||||
iiab_wired_lan_iface: "{{ discovered_wired_iface }}"
|
||||
when: discovered_wired_iface is defined and discovered_wired_iface != "none" and discovered_wired_iface != iiab_wan_iface and not is_raspbian
|
||||
|
||||
#unused
|
||||
#- name: Get a list of ifcfg files to delete
|
||||
# moved to detected_redhat
|
||||
|
||||
# use value only if present
|
||||
- name: 2 or more devices on the LAN - use bridging
|
||||
set_fact:
|
||||
|
@ -197,8 +211,8 @@
|
|||
with_items:
|
||||
- option: has_ifcfg_gw
|
||||
value: "{{ has_ifcfg_gw }}"
|
||||
- option: prior_gateway_(device_gw2)
|
||||
value: "{{ device_gw2 }}"
|
||||
- option: prior_gateway_device
|
||||
value: "{{ prior_gw_device }}"
|
||||
- option: dhcpcd_result
|
||||
value: "{{ dhcpcd_result }}"
|
||||
- option: network_manager_active
|
||||
|
@ -227,3 +241,10 @@
|
|||
value: "{{ iiab_lan_iface }}"
|
||||
- option: iiab_wan_iface
|
||||
value: "{{ iiab_wan_iface }}"
|
||||
|
||||
# well if there ever was a point to tell the user things are FUBAR this is it.
|
||||
# limit 2 network adapters wifi wired
|
||||
- name: I'm not guessing declare gateway please
|
||||
fail: # FORCE IT RED THIS ONCE!
|
||||
msg: "Undetectable gateway or prior gateway for use with static network addressing from admin-console use local_vars to declare user_wan_iface"
|
||||
when: adapter_count.stdout|int >=3 and gui_wan_iface == "unset" and gui_static_wan
|
||||
|
|
|
@ -79,23 +79,23 @@
|
|||
#- debug:
|
||||
# var: nd_enabled
|
||||
|
||||
- name: Check if /etc/networkd-dispatcher/routable.d exists
|
||||
stat:
|
||||
path: /etc/networkd-dispatcher/routable.d
|
||||
register: nd_dir
|
||||
#- name: Check if /etc/networkd-dispatcher/routable.d exists
|
||||
# stat:
|
||||
# path: /etc/networkd-dispatcher/routable.d
|
||||
# register: nd_dir
|
||||
|
||||
#- debug:
|
||||
# var: nd_dir
|
||||
|
||||
#- name: To restart dnsmasq whenever br0 comes up, install /etc/networkd-dispatcher/routable.d/dnsmasq.sh from template (if isn't Appliance, and networkd-dispatcher is enabled, and directory /etc/networkd-dispatcher/routable.d exists, i.e. OS's like Ubuntu 18.04)
|
||||
- name: To restart dnsmasq whenever br0 comes up, install /etc/networkd-dispatcher/routable.d/dnsmasq.sh from template (if isn't Appliance, and directory /etc/networkd-dispatcher/routable.d exists, i.e. OS's like Ubuntu 18.04)
|
||||
template:
|
||||
src: roles/network/templates/network/dnsmasq.sh.j2
|
||||
dest: /etc/networkd-dispatcher/routable.d/dnsmasq.sh
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: root
|
||||
when: dnsmasq_install and dnsmasq_enabled and nd_dir.stat.exists and nd_dir.stat.isdir and (iiab_network_mode != "Appliance")
|
||||
#- name: To restart dnsmasq whenever br0 comes up, install /etc/networkd-dispatcher/routable.d/dnsmasq.sh from template (if isn't Appliance, and directory /etc/networkd-dispatcher/routable.d exists, i.e. OS's like Ubuntu 18.04)
|
||||
# template:
|
||||
# src: roles/network/templates/network/dnsmasq.sh.j2
|
||||
# dest: /etc/networkd-dispatcher/routable.d/dnsmasq.sh
|
||||
# mode: 0755
|
||||
# owner: root
|
||||
# group: root
|
||||
# when: dnsmasq_install and dnsmasq_enabled and nd_dir.stat.exists and nd_dir.stat.isdir and (iiab_network_mode != "Appliance")
|
||||
#when: dnsmasq_install and dnsmasq_enabled and nd_enabled is defined and nd_enabled.stdout == "enabled" and nd_dir.stat.exists and nd_dir.stat.isdir and (iiab_network_mode != "Appliance")
|
||||
#when: dnsmasq_install and dnsmasq_enabled and systemd_out.status.UnitFileState == "enabled" and networkd_dir.stat.exists and networkd_dir.stat.isdir and (iiab_network_mode != "Appliance")
|
||||
|
||||
|
|
17
roles/network/tasks/fedora/create_ifcfg.yml.deprecated
Normal file
17
roles/network/tasks/fedora/create_ifcfg.yml.deprecated
Normal file
|
@ -0,0 +1,17 @@
|
|||
- name: Stop 'Wired WAN connection'
|
||||
shell: nmcli dev disconnect {{ discovered_wan_iface }}
|
||||
ignore_errors: True
|
||||
changed_when: False
|
||||
when: discovered_wan_iface != "none" and not has_WAN and has_ifcfg_gw == "none"
|
||||
|
||||
# set user_wan_iface: <device> for static
|
||||
# use wan_* for static info
|
||||
- name: Supply ifcfg-WAN file
|
||||
template: src=network/ifcfg-WAN.j2
|
||||
dest=/etc/sysconfig/network-scripts/ifcfg-WAN
|
||||
when: iiab_wan_iface != "none" and not has_WAN and has_ifcfg_gw == "none"
|
||||
|
||||
- name: Now setting ifcfg-WAN True after creating file
|
||||
set_fact:
|
||||
has_WAN: True
|
||||
when: iiab_wan_iface != "none" and has_ifcfg_gw == "none"
|
28
roles/network/tasks/fedora/hosts.yml.deprecated
Normal file
28
roles/network/tasks/fedora/hosts.yml.deprecated
Normal file
|
@ -0,0 +1,28 @@
|
|||
# this (hosts.yml) WAS invoked by roles/network/tasks/main.yml up until 2019-12-10
|
||||
|
||||
#TODO: Use vars instead of hardcoded values
|
||||
- name: Remove FQDN with 172.18.96.1 in /etc/hosts without LAN (if iiab_lan_iface == "none" and not installing)
|
||||
lineinfile:
|
||||
path: /etc/hosts
|
||||
regexp: '^172\.18\.96\.1'
|
||||
state: absent
|
||||
when: iiab_lan_iface == "none" and not installing
|
||||
|
||||
- name: Configure FQDN with 172.18.96.1 in /etc/hosts with LAN (if iiab_lan_iface != "none" and not installing)
|
||||
lineinfile:
|
||||
path: /etc/hosts
|
||||
regexp: '^172\.18\.96\.1'
|
||||
line: '172.18.96.1 {{ iiab_hostname }}.{{ iiab_domain }} {{ iiab_hostname }} box box.lan'
|
||||
state: present
|
||||
when: not (iiab_lan_iface == "none") and not installing
|
||||
|
||||
# roles/0-init/tasks/hostname.yml ALSO does this:
|
||||
- name: 'Put FQDN & hostnames in /etc/hosts: "127.0.0.1 {{ iiab_hostname }}.{{ iiab_domain }} localhost.localdomain localhost {{ iiab_hostname }} box box.lan" (if iiab_lan_iface == "none" and not installing, appliance mode?)'
|
||||
lineinfile:
|
||||
path: /etc/hosts
|
||||
regexp: '^127\.0\.0\.1'
|
||||
line: '127.0.0.1 {{ iiab_hostname }}.{{ iiab_domain }} localhost.localdomain localhost {{ iiab_hostname }} box box.lan'
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when: iiab_lan_iface == "none" and not installing
|
|
@ -1,7 +1,23 @@
|
|||
- name: Turn off hostapd when no wifi interface present or in "Appliance Mode"
|
||||
- name: Unmask the Access Point 'hostapd' service
|
||||
systemd:
|
||||
name: hostapd
|
||||
enabled: no
|
||||
masked: no
|
||||
|
||||
- name: Disable hostapd when not using ap0 and wifi gateway present, or no WiFi hardware present
|
||||
set_fact:
|
||||
hostapd_enabled: False
|
||||
when: not iiab_wireless_lan_iface is defined or iiab_network_mode == "Appliance"
|
||||
when: (not wifi_up_down and discovered_wireless_iface == iiab_wan_iface) or discovered_wireless_iface == "none"
|
||||
|
||||
- name: Detect current Wifi channel
|
||||
shell: iw {{ discovered_wireless_iface }} info | grep channel | cut -d' ' -f2
|
||||
register: current_host_channel
|
||||
when: discovered_wireless_iface != "none"
|
||||
|
||||
- name: Setting WiFi channel to {{ current_host_channel.stdout }}
|
||||
set_fact:
|
||||
host_channel: "{{ current_host_channel.stdout }}"
|
||||
when: current_host_channel.stdout is defined and current_host_channel.stdout != "" and current_host_channel.stdout|int <= 13
|
||||
|
||||
- name: Create /etc/hostapd/hostapd.conf from template
|
||||
template:
|
||||
|
@ -14,21 +30,38 @@
|
|||
|
||||
- name: Create backup /etc/hostapd/hostapd.conf.iiab from template
|
||||
template:
|
||||
src: hostapd/iiab-hostapd.conf.j2
|
||||
src: hostapd/hostapd.conf.j2
|
||||
dest: /etc/hostapd/hostapd.conf.iiab
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when: discovered_wireless_iface != "none"
|
||||
|
||||
- name: Use custom systemd unit file to start 'hostapd' service
|
||||
- name: Generate new random mac address for ap0
|
||||
shell: tr -dc A-F0-9 < /dev/urandom | head -c 10 | sed -r 's/(..)/\1:/g;s/:$//;s/^/02:/'
|
||||
register: ap0_mac
|
||||
|
||||
- name: Setting ap0 mac address for use in hostapd service file
|
||||
set_fact:
|
||||
ap0_mac_addr: "{{ ap0_mac.stdout }}"
|
||||
|
||||
- name: Use custom 'hostapd' systemd service unit file using ap0 when wifi_up_down
|
||||
template:
|
||||
src: hostapd/hostapd.service.j2
|
||||
dest: /etc/systemd/system/hostapd.service
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when: discovered_wireless_iface != "none"
|
||||
when: discovered_wireless_iface != "none" and wifi_up_down
|
||||
|
||||
- name: Use custom 'hostapd' systemd service unit file for {{ discovered_wireless_iface }} when not wifi_up_down
|
||||
template:
|
||||
src: hostapd/hostapd.legacy.j2
|
||||
dest: /etc/systemd/system/hostapd.service
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when: discovered_wireless_iface != "none" and not wifi_up_down
|
||||
|
||||
- name: Create /usr/bin/iiab-hotspot-on from template
|
||||
template:
|
||||
|
@ -37,7 +70,6 @@
|
|||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
when: is_raspbian | bool
|
||||
|
||||
- name: Create /usr/bin/iiab-hotspot-off from template
|
||||
template:
|
||||
|
@ -46,14 +78,60 @@
|
|||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
when: is_raspbian | bool
|
||||
|
||||
- name: Disable the Access Point 'hostapd' service
|
||||
systemd:
|
||||
name: hostapd
|
||||
enabled: no
|
||||
# cheap workaround for when /etc/init.d is populated
|
||||
# when: not hostapd_enabled
|
||||
- name: Create dhcpcd hook for hostapd and ap0 when wifi_up_down True
|
||||
template:
|
||||
src: hostapd/50-hostapd
|
||||
dest: /lib/dhcpcd/dhcpcd-hooks/50-hostapd
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when: is_raspbian and wifi_up_down
|
||||
|
||||
- name: Remove dhcpcd hook for hostapd if WiFi is not split using ap0
|
||||
file:
|
||||
path: /lib/dhcpcd/dhcpcd-hooks/50-hostapd
|
||||
state: absent
|
||||
when: is_raspbian and not wifi_up_down
|
||||
|
||||
- name: Create networkd-dispatcher diagnosic hook for recording network events
|
||||
template:
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
with_items:
|
||||
- { src: 'hostapd/00-iiab-debug', dest: '/etc/networkd-dispatcher/carrier.d/00-iiab-debug' }
|
||||
- { src: 'hostapd/00-iiab-debug', dest: '/etc/networkd-dispatcher/degraded.d/00-iiab-debug' }
|
||||
- { src: 'hostapd/00-iiab-debug', dest: '/etc/networkd-dispatcher/dormant.d/00-iiab-debug' }
|
||||
- { src: 'hostapd/00-iiab-debug', dest: '/etc/networkd-dispatcher/no-carrier.d/00-iiab-debug' }
|
||||
- { src: 'hostapd/00-iiab-debug', dest: '/etc/networkd-dispatcher/off.d/00-iiab-debug' }
|
||||
- { src: 'hostapd/00-iiab-debug', dest: '/etc/networkd-dispatcher/routable.d/00-iiab-debug' }
|
||||
when: systemd_networkd_active and discovered_wireless_iface != "none"
|
||||
|
||||
- name: Create networkd-dispatcher hook for hostapd wifi_up_down True
|
||||
template:
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
with_items:
|
||||
- { src: 'hostapd/netd-disp', dest: '/etc/networkd-dispatcher/carrier.d/iiab-wifi' }
|
||||
- { src: 'hostapd/netd-disp', dest: '/etc/networkd-dispatcher/no-carrier.d/iiab-wifi' }
|
||||
- { src: 'hostapd/netd-disp', dest: '/etc/networkd-dispatcher/routable.d/iiab-wifi' }
|
||||
when: systemd_networkd_active and discovered_wireless_iface != "none" and wifi_up_down
|
||||
|
||||
- name: Remove networkd-dispatcher hook wifi_up_down False
|
||||
file:
|
||||
path: "{{ item.dest }}"
|
||||
state: absent
|
||||
with_items:
|
||||
- { dest: '/etc/networkd-dispatcher/carrier.d/iiab-wifi' }
|
||||
- { dest: '/etc/networkd-dispatcher/no-carrier.d/iiab-wifi' }
|
||||
- { dest: '/etc/networkd-dispatcher/routable.d/iiab-wifi' }
|
||||
when: systemd_networkd_active and discovered_wireless_iface != "none" and not wifi_up_down
|
||||
|
||||
- name: Enable the Access Point 'hostapd' service
|
||||
systemd:
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
- include_tasks: detected_network.yml
|
||||
when: not installing # REMOVE THIS LINE IF installing IS ALWAYS false AS SET IN roles/0-init/defaults/main.yml
|
||||
|
||||
- name: IF WIFI IS PRIMARY GATEWAY, PLEASE RUN 'iiab-hotspot-on' MANUALLY
|
||||
set_fact:
|
||||
hostapd_enabled: False # used in (1) hostapd.yml, (2) rpi_debian.yml +
|
||||
# (3) its dhcpcd.conf.j2, (4) restart.yml
|
||||
no_net_restart: True # used below in (1) sysd-netd-debian.yml,
|
||||
# (2) debian.yml, (3) rpi_debian.yml
|
||||
when: discovered_wireless_iface == iiab_wan_iface and not reboot_to_AP
|
||||
# (2) debian.yml, (3) rpi_debian.yml,
|
||||
# (4) NM-debian.yml
|
||||
when: discovered_wireless_iface == iiab_wan_iface
|
||||
|
||||
# EITHER WAY: hostapd_enabled's state is RECORDED into {{ iiab_env_file }}
|
||||
# in hostapd.yml for later use by...
|
||||
# /usr/libexec/iiab-startup.sh, iiab-hotspot-off & iiab-hotspot-on
|
||||
|
@ -25,9 +24,6 @@
|
|||
# when: is_raspbian and discovered_wireless_iface is defined and discovered_wireless_iface == iiab_wan_iface and reboot_to_AP
|
||||
|
||||
- include_tasks: computed_network.yml
|
||||
when: not installing #REMOVE THIS LINE IF installing IS ALWAYS false AS SET IN roles/0-init/defaults/main.yml
|
||||
|
||||
- include_tasks: hostapd.yml
|
||||
|
||||
#- name: RPi - don't reboot to AP post install - installed via wifi - don't blow away current network
|
||||
# set_fact:
|
||||
|
@ -35,13 +31,6 @@
|
|||
# hostapd_enabled: False
|
||||
# when: is_raspbian and discovered_wireless_iface is defined and discovered_wired_iface != iiab_wan_iface
|
||||
|
||||
##### Start static ip address info for first run #####
|
||||
#- include_tasks: static.yml
|
||||
# when: 'iiab_wan_iface != "none" and wan_ip != "dhcp"'
|
||||
##### End static ip address info
|
||||
|
||||
#- include_tasks: hosts.yml
|
||||
|
||||
- name: Configure wondershaper
|
||||
include_tasks: wondershaper.yml
|
||||
when: wondershaper_install or wondershaper_installed is defined
|
||||
|
@ -58,9 +47,15 @@
|
|||
include_tasks: squid.yml
|
||||
when: squid_install and FQDN_changed and iiab_stage|int == 9
|
||||
|
||||
#preprep for backends
|
||||
- name: Netplan in use on Ubuntu 18.04+
|
||||
include_tasks: netplan.yml
|
||||
when: is_ubuntu and not is_ubuntu_16
|
||||
|
||||
#### Start services
|
||||
|
||||
- include_tasks: avahi.yml
|
||||
- include_tasks: hostapd.yml
|
||||
- include_tasks: computed_services.yml
|
||||
- include_tasks: enable_services.yml
|
||||
|
||||
|
@ -73,12 +68,6 @@
|
|||
when: is_redhat | bool
|
||||
#and not installing
|
||||
|
||||
- name: Netplan in use on Ubuntu 18.04+
|
||||
include_tasks: netplan.yml
|
||||
when: is_ubuntu and not is_ubuntu_16
|
||||
#when: is_ubuntu_18 | bool
|
||||
#and not installing
|
||||
|
||||
- name: NetworkManager in use
|
||||
include_tasks: NM-debian.yml
|
||||
when: is_debuntu and network_manager_active
|
||||
|
@ -89,7 +78,7 @@
|
|||
when: is_debuntu and systemd_networkd_active
|
||||
#and not installing
|
||||
|
||||
- name: RPi's have dhcpcd in use
|
||||
- name: Raspbian uses dhcpcd only with no N-M or SYS-NETD active
|
||||
include_tasks: rpi_debian.yml
|
||||
when: is_raspbian
|
||||
#and not installing
|
||||
|
|
|
@ -1,20 +1,14 @@
|
|||
- name: Figure out netplan file name
|
||||
shell: ls /etc/netplan
|
||||
register: netplan
|
||||
|
||||
- name: Disable cloud-init the easy way
|
||||
shell: touch /etc/cloud/cloud-init.disabled
|
||||
when: ("item" == "50-cloud-init.yaml")
|
||||
when: item|trim == "50-cloud-init.yaml"
|
||||
with_items:
|
||||
- "{{ netplan.stdout_lines }}"
|
||||
|
||||
- name: Remove stock netplan template
|
||||
file:
|
||||
state: absent
|
||||
path: /etc/netplan/{{ item }}
|
||||
- name: Moving 50-cloud-init.yaml to 02-iiab-config.yaml
|
||||
shell: mv /etc/netplan/50-cloud-init.yaml /etc/netplan/02-iiab-config.yaml
|
||||
when: netplan.stdout.find("yaml") != -1 and item|trim == "50-cloud-init.yaml"
|
||||
with_items:
|
||||
- "{{ netplan.stdout_lines }}"
|
||||
when: netplan.stdout.find("yaml") != -1
|
||||
|
||||
- name: Cheap way to do systemd unmask
|
||||
file:
|
||||
|
@ -29,25 +23,46 @@
|
|||
- systemd-networkd-wait-online
|
||||
when: systemd_networkd_active | bool
|
||||
|
||||
- name: Unmask and enable the systemd-networkd service for br0
|
||||
systemd:
|
||||
name: systemd-networkd
|
||||
enabled: yes
|
||||
masked: no
|
||||
when: network_manager_active | bool and iiab_lan_iface == "br0"
|
||||
|
||||
- name: Ensure systemd-networkd gets enabled for br0
|
||||
set_fact:
|
||||
systemd_networkd_active: True
|
||||
when: network_manager_active | bool and iiab_lan_iface == "br0"
|
||||
|
||||
# ICO will always set gui_static_wan_ip away from the default of 'unset' while
|
||||
# gui_static_wan turns dhcp on/off through wan_ip in computed_network and
|
||||
# overrides gui_static_wan_ip that is present. Changing wan_ip in local_vars
|
||||
# is a oneway street to static.
|
||||
- name: Static IP computing CIDR
|
||||
shell: netmask {{ wan_ip }}/{{ wan_netmask }} | awk -F "/" '{print $2}'
|
||||
register: CIDR
|
||||
when: wan_ip != "dhcp"
|
||||
#- name: Static IP computing CIDR
|
||||
# shell: netmask {{ wan_ip }}/{{ wan_netmask }} | awk -F "/" '{print $2}'
|
||||
# register: CIDR
|
||||
# when: wan_ip != "dhcp"
|
||||
|
||||
- name: Static IP setting CIDR
|
||||
set_fact:
|
||||
wan_cidr: "{{ CIDR.stdout }}"
|
||||
when: wan_ip != "dhcp"
|
||||
#- name: Static IP setting CIDR
|
||||
# set_fact:
|
||||
# wan_cidr: "{{ CIDR.stdout }}"
|
||||
# when: wan_ip != "dhcp"
|
||||
|
||||
- name: Supply netplan template
|
||||
template:
|
||||
dest: /etc/netplan/01-iiab-config.yaml
|
||||
src: network/netplan.j2
|
||||
backup: no
|
||||
- name: Remove stock netplan template
|
||||
file:
|
||||
state: absent
|
||||
path: /etc/netplan/{{ item }}
|
||||
when: netplan.stdout.find("yaml") != -1 and item|trim != "02-iiab-config.yaml" and wan_ip != "dhcp"
|
||||
with_items:
|
||||
- "{{ netplan.stdout_lines }}"
|
||||
|
||||
#- name: Supply netplan template
|
||||
# template:
|
||||
# dest: /etc/netplan/01-iiab-config.yaml
|
||||
# src: network/netplan.j2
|
||||
# backup: no
|
||||
# when: iiab_wan_iface != discovered_wireless_iface and wan_ip != "dhcp"
|
||||
|
||||
# should blow up here if we messed up the yml file
|
||||
#- name: Generate netplan config
|
||||
|
|
|
@ -1,8 +1,14 @@
|
|||
- name: Restart hostapd when WiFi is present
|
||||
#iiab_wireless_lan_iface(wlan0) - wifi_up_down False needs hw
|
||||
#iiab_wireless_lan_iface(ap0) - wifi_up_down True needs hw
|
||||
#hostapd_enabled False - set in hostapd.yml to avoid the enable with wifi_up_down False
|
||||
#no_net_restart: True - main.yml discovered_wireless_iface == iiab_wan_iface
|
||||
- name: Restart hostapd when WiFi is present but not when using WiFi as gateway
|
||||
systemd:
|
||||
name: hostapd
|
||||
state: restarted
|
||||
when: iiab_wireless_lan_iface is defined and hostapd_enabled and iiab_network_mode != "Appliance"
|
||||
# when: iiab_wireless_lan_iface is defined and hostapd_enabled and discovered_wireless_iface != iiab_wan_iface
|
||||
# when: hostapd_enabled and iiab_wireless_lan_iface is defined and discovered_wireless_iface == iiab_wireless_lan_iface
|
||||
when: hostapd_enabled and not no_net_restart
|
||||
|
||||
- name: Start named service
|
||||
systemd:
|
||||
|
@ -53,6 +59,11 @@
|
|||
creates: /etc/sysconfig/olpc-scripts/setup.d/installed/gateway
|
||||
when: iiab_network_mode == "Gateway"
|
||||
|
||||
#netplan de-configures pre-created bridged interfaces
|
||||
#- name: Reload netplan when Wifi is not gateway on Ubuntu 18+
|
||||
# shell: netplan apply
|
||||
# when: not no_net_restart and is_ubuntu and netplan.stdout.find("yaml") != -1
|
||||
|
||||
- name: Waiting {{ hostapd_wait }} seconds for network to stabilize (dnsmasq will fail if br0 isn't in a 'up' state!)
|
||||
shell: sleep {{ hostapd_wait }}
|
||||
|
||||
|
@ -61,7 +72,7 @@
|
|||
|
||||
- name: Checking if WiFi slave is active
|
||||
shell: brctl show br0 | grep {{ iiab_wireless_lan_iface }} | wc -l
|
||||
when: hostapd_enabled and iiab_wireless_lan_iface is defined and iiab_lan_iface == "br0"
|
||||
when: hostapd_enabled and discovered_wireless_iface != iiab_wan_iface and iiab_lan_iface == "br0"
|
||||
register: wifi_slave
|
||||
|
||||
- name: Restart hostapd if WiFi slave is inactive
|
||||
|
@ -70,10 +81,13 @@
|
|||
state: restarted
|
||||
when: hostapd_enabled and wifi_slave.stdout is defined and wifi_slave.stdout == 0
|
||||
|
||||
#both interfaces.d and systemd-networkd should have br0 available and Appliance lacks br0
|
||||
- name: User choice of dnsmasq or dhcpd - restarting {{ dhcp_service2 }}
|
||||
systemd:
|
||||
name: "{{ dhcp_service2 }}"
|
||||
state: restarted
|
||||
when: not no_net_restart
|
||||
when: (not no_net_restart) or wifi_up_down
|
||||
#when: (iiab_network_mode != "Appliance") # Sufficient b/c br0 exists thanks to /etc/network/interfaces.d/iiab
|
||||
#when: iiab_network_mode != "Appliance" and iiab_wan_iface != discovered_wireless_iface
|
||||
#keep an eye on legacy wifi installs where br0 is present but not 'online' with an ip address
|
||||
#due to hostapd didn't go to a carrier state. All others should get dnsmasq restarted
|
||||
|
|
|
@ -11,11 +11,14 @@
|
|||
src: network/systemd-br0-network.j2
|
||||
when: iiab_lan_iface == "br0"
|
||||
|
||||
- name: Copy the bridge script - Assigns br0 wired slaves
|
||||
# can be more than one wired interface
|
||||
- name: Wired enslaving - Assigns lan_list_results to br0 as wired slaves if present
|
||||
template:
|
||||
dest: /etc/systemd/network/IIAB-Slave.network
|
||||
src: network/systemd-br0-slave.j2
|
||||
when: iiab_wired_lan_iface is defined and iiab_lan_iface == "br0"
|
||||
dest: /etc/systemd/network/IIAB-Slave-{{ item|trim }}.network
|
||||
with_items:
|
||||
- "{{ lan_list_result.stdout_lines }}"
|
||||
when: iiab_wired_lan_iface is defined and num_lan_interfaces|int >= 1 and not network_manager_active
|
||||
|
||||
- name: Remove static WAN template
|
||||
file:
|
||||
|
@ -33,11 +36,12 @@
|
|||
wan_cidr: "{{ CIDR.stdout }}"
|
||||
when: wan_ip != "dhcp"
|
||||
|
||||
- name: Supply static WAN template (ubuntu-16)
|
||||
- name: Supply static WAN template when network_manager_active is False
|
||||
template:
|
||||
dest: /etc/systemd/network/IIAB-Static.network
|
||||
src: network/systemd-static-net.j2
|
||||
when: wan_ip != "dhcp" and is_ubuntu_16
|
||||
when: wan_ip != "dhcp" and ( is_ubuntu_16 or not network_manager_active )
|
||||
|
||||
#when: wan_ip != "dhcp" and not is_ubuntu_18
|
||||
|
||||
- name: Stopping services
|
||||
|
@ -50,6 +54,4 @@
|
|||
- name: Restart the systemd-networkd service
|
||||
systemd:
|
||||
name: systemd-networkd
|
||||
enabled: yes
|
||||
state: restarted
|
||||
when: not nobridge is defined and not no_net_restart
|
||||
|
|
2
roles/network/templates/hostapd/00-iiab-debug
Normal file
2
roles/network/templates/hostapd/00-iiab-debug
Normal file
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
echo "NET-DISP-$AdministrativeState $IFACE $STATE"
|
20
roles/network/templates/hostapd/50-hostapd
Normal file
20
roles/network/templates/hostapd/50-hostapd
Normal file
|
@ -0,0 +1,20 @@
|
|||
|
||||
if [ "$interface" = "wlan0" ]; then
|
||||
REASON="$reason"
|
||||
if [ "$reason" = "CARRIER" ]; then
|
||||
syslog info "50-iiab CARRIER change wlan0"
|
||||
# wpa_supplicant wants MHz for frequency= while hostapd wants channel..... whatever
|
||||
# FREQ=`iw wlan0 info|grep channel|cut -d' ' -f9`
|
||||
FREQ=`iw wlan0 info|grep channel|cut -d' ' -f2`
|
||||
syslog info "40-iiab set channel $FREQ"
|
||||
sed -i -e "s/^channel.*/channel=$FREQ /" /etc/hostapd/hostapd.conf
|
||||
# will need a reboot for hostapd if the channel changed
|
||||
fi
|
||||
# spams the logging
|
||||
#syslog info "50-iiab set ap0 spam $REASON"
|
||||
if [ -e /sys/class/net/ap0 ] && ! [ "$reason" = "ROUTERADVERT" ]; then
|
||||
syslog info "50-iiab set ap0 up $REASON"
|
||||
# keeps ap0 up so hostapd works
|
||||
ip link set ap0 up
|
||||
fi
|
||||
fi
|
3
roles/network/templates/hostapd/70-persistent-net.rules
Normal file
3
roles/network/templates/hostapd/70-persistent-net.rules
Normal file
|
@ -0,0 +1,3 @@
|
|||
SUBSYSTEM=="ieee80211", ACTION=="add|change", KERNEL=="phy0", \
|
||||
RUN+="/sbin/iw phy phy0 interface add ap0 type __ap", \
|
||||
RUN+="/sbin/ip link set ap0 address {{ ap0_mac_addr }}"
|
|
@ -1,7 +1,6 @@
|
|||
# Basic configuration
|
||||
|
||||
interface={% if iiab_wireless_lan_iface is defined %}{{ iiab_wireless_lan_iface }}{% endif %}
|
||||
|
||||
interface={{ iiab_wireless_lan_iface }}
|
||||
|
||||
ssid={{ host_ssid }}
|
||||
channel={{ host_channel }}
|
||||
|
|
12
roles/network/templates/hostapd/hostapd.legacy.j2
Normal file
12
roles/network/templates/hostapd/hostapd.legacy.j2
Normal file
|
@ -0,0 +1,12 @@
|
|||
[Unit]
|
||||
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
|
||||
Before=network.target
|
||||
Wants=network-pre.target
|
||||
|
||||
[Service]
|
||||
Type=idle
|
||||
PIDFile=/run/hostapd.pid
|
||||
ExecStart=/usr/sbin/hostapd -P /run/hostapd.pid /etc/hostapd/hostapd.conf
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -1,12 +1,30 @@
|
|||
[Unit]
|
||||
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
|
||||
Before=network.target
|
||||
Wants=network-pre.target
|
||||
After=network-pre.target
|
||||
{% if is_raspbian %}
|
||||
Before=dhcpcd.service
|
||||
{% endif %}
|
||||
Before=wpa_supplicant.service
|
||||
Before=wpa_supplicant@{{ discovered_wireless_iface }}.service
|
||||
{% if network_manager_active %}
|
||||
Before=network-manager.service
|
||||
{% endif %}
|
||||
{% if is_ubuntu and netplan.stdout.find("yaml") != -1 %}
|
||||
Before=netplan-wpa-{{ discovered_wireless_iface }}.service
|
||||
{% endif %}
|
||||
Before=network.target
|
||||
|
||||
[Service]
|
||||
Type=idle
|
||||
Type=forking
|
||||
Restart=on-failure
|
||||
RestartSec=2
|
||||
PIDFile=/run/hostapd.pid
|
||||
ExecStart=/usr/sbin/hostapd -P /run/hostapd.pid /etc/hostapd/hostapd.conf
|
||||
ExecStartPre=-/sbin/iw phy phy0 interface add ap0 type __ap
|
||||
ExecStartPre=-/sbin/ip link set ap0 address {{ ap0_mac_addr }}
|
||||
ExecStart=/usr/sbin/hostapd -B -P /run/hostapd.pid /etc/hostapd/hostapd.conf
|
||||
ExecStartPost=-/sbin/ip link set ap0 up
|
||||
ExecStopPost=-/sbin/iw dev ap0 del
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
# Basic configuration
|
||||
|
||||
interface={{ discovered_wireless_iface }}
|
||||
|
||||
ssid={{ host_ssid }}
|
||||
channel={{ host_channel }}
|
||||
{%if iiab_lan_iface == "br0" %}
|
||||
bridge=br0
|
||||
{% endif %}
|
||||
|
||||
# Hardware configuration
|
||||
driver={{ driver_name }}
|
||||
{%if host_wireless_n %}
|
||||
ieee80211n=1
|
||||
{% endif %}
|
||||
country_code={{ host_country_code }}
|
||||
# limit emissions to what is legal in country
|
||||
ieee80211d=1
|
||||
hw_mode={{ host_wifi_mode }}
|
||||
|
||||
{%if hostapd_secure %}
|
||||
# Use WPA authentication
|
||||
auth_algs=1
|
||||
# Use WPA2
|
||||
wpa=2
|
||||
# Use a pre-shared key
|
||||
wpa_key_mgmt=WPA-PSK
|
||||
# The network passphrase
|
||||
wpa_passphrase={{ hostapd_password }}
|
||||
# Use AES, instead of TKIP
|
||||
rsn_pairwise=CCMP
|
||||
{% endif %}
|
7
roles/network/templates/hostapd/netd-disp
Normal file
7
roles/network/templates/hostapd/netd-disp
Normal file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ "$IFACE" == "{{ discovered_wireless_iface }}" ]; then
|
||||
echo "NET-DISP-WiFi $IFACE $STATE"
|
||||
/usr/sbin/ip link set ap0 up
|
||||
fi
|
||||
|
3
roles/network/templates/network/ap0-manage.conf
Normal file
3
roles/network/templates/network/ap0-manage.conf
Normal file
|
@ -0,0 +1,3 @@
|
|||
# IIAB WiFi
|
||||
[keyfile]
|
||||
unmanaged-devices=interface-name:ap0
|
|
@ -38,21 +38,22 @@ require dhcp_server_identifier
|
|||
slaac private
|
||||
|
||||
# IIAB
|
||||
denyinterfaces {{ iiab_wireless_lan_iface }}
|
||||
|
||||
# Setting iiab_wired_lan_iface would install the device as a slave under
|
||||
# br0 so we need to turn off the dhcp client in that network layout.
|
||||
# Auto creation of the wired slave is suppressed in discovered_network.yml
|
||||
# -> Set iiab_wired_lan_iface if present is conditional on is_raspbian
|
||||
# Slave creation can be forced by populating local_vars.yml with
|
||||
# 'iiab_wired_lan_iface: eth0' which populates /etc/network/interfaces.d/iiab
|
||||
# with 'bridge_ports eth0' in place of 'bridge_ports none'
|
||||
# Always (try) to run DHCP client on RPi's Ethernet port, for in-field
|
||||
# "cablemodems" used by many non-technical operators, who want Zero-Hassle
|
||||
# Updates. This means AVOIDING "denyinterfaces eth0" below:
|
||||
{% if is_raspbian and hostapd_enabled %}
|
||||
denyinterfaces{% if discovered_wireless_iface != "none" %} {{ discovered_wireless_iface }}{% endif %}
|
||||
{% elif is_raspbian %}
|
||||
#denyinterfaces{% if discovered_wireless_iface != "none" %} {{ discovered_wireless_iface }}{% endif %}
|
||||
{% else %}
|
||||
denyinterfaces{% if iiab_wireless_lan_iface is defined %} {{ iiab_wireless_lan_iface }}{% endif %}{% if iiab_wired_lan_iface is defined %} {{ iiab_wired_lan_iface }}{% endif %}
|
||||
{% if iiab_wired_lan_iface is defined %}
|
||||
denyinterfaces {{ iiab_wired_lan_iface }}
|
||||
{% endif %}
|
||||
|
||||
# FYI this 'denyinterfaces' line (here in /etc/dhcpcd.conf) is commented out by
|
||||
# /usr/bin/iiab-hotspot-off, and uncommented by /usr/bin/iiab-hotspot-on
|
||||
|
||||
{% if dhcpcd_result == "enabled" and iiab_lan_iface != "none" %}
|
||||
interface {{ iiab_lan_iface }}
|
||||
static ip_address={{ lan_ip }}/19
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ "$IFACE" == "{{ iiab_lan_iface }}" ]; then
|
||||
/bin/systemctl restart dnsmasq.service
|
||||
echo "Restarting dnsmasq in 5 seconds"
|
||||
/bin/sleep 5 && /bin/systemctl --no-block restart dnsmasq.service
|
||||
echo "Restarting dnsmasq"
|
||||
fi
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
#!/bin/bash
|
||||
{% if is_raspbian %}
|
||||
# hotspot-off before ap0_updown
|
||||
sed -i -e "s/^denyinterfaces/#denyinterfaces/" /etc/dhcpcd.conf
|
||||
systemctl disable hostapd
|
||||
systemctl stop hostapd
|
||||
|
@ -7,13 +9,24 @@ systemctl stop hostapd
|
|||
systemctl daemon-reload
|
||||
systemctl restart dhcpcd
|
||||
#systemctl restart networking 6/15/2019 TFM removed
|
||||
|
||||
sed -i -e "s/^HOSTAPD_ENABLED.*/HOSTAPD_ENABLED=False/" {{ iiab_env_file }}
|
||||
# Temporary promiscuous-mode workaround for RPi's WiFi "10SEC disease"
|
||||
# Set wlan0 to promiscuous when AP's OFF (for possible WiFi gateway)
|
||||
# SEE ALSO iiab-hotspot-on + /usr/libexec/iiab-startup.sh
|
||||
# https://github.com/iiab/iiab/issues/638#issuecomment-355455454
|
||||
if grep -qi raspbian /etc/*release; then
|
||||
ip link set dev wlan0 promisc on
|
||||
fi
|
||||
|
||||
#if grep -qi raspbian /etc/*release; then
|
||||
# ip link set dev wlan0 promisc on
|
||||
#fi
|
||||
{% else %}
|
||||
systemctl disable hostapd
|
||||
systemctl stop hostapd
|
||||
sed -i -e "s/^HOSTAPD_ENABLED.*/HOSTAPD_ENABLED=False/" {{ iiab_env_file }}
|
||||
echo " IIAB hotspot access point Disabled"
|
||||
{% if wifi_up_down %}
|
||||
exit 0
|
||||
{% else %}
|
||||
sed -i -e "s|managed=0|managed=1|" /etc/NetworkManager/conf.d/wifi-manage.conf
|
||||
echo -e "\nPlease reboot to enable upstream WiFi access.\n"
|
||||
exit 0
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
|
|
@ -1,24 +1,36 @@
|
|||
#!/bin/bash
|
||||
|
||||
{% if is_raspbian %}
|
||||
# just do what we have always done in hotspot-on
|
||||
cp -f /etc/hostapd/hostapd.conf.iiab /etc/hostapd/hostapd.conf
|
||||
sed -i -e "s/^#denyinterfaces/denyinterfaces/" /etc/dhcpcd.conf
|
||||
# shut down wlan0 in case connected to network
|
||||
ip link set wlan0 down
|
||||
systemctl enable hostapd
|
||||
#systemctl enable dnsmasq
|
||||
#systemctl daemon-reload
|
||||
systemctl daemon-reload
|
||||
systemctl restart dhcpcd
|
||||
#systemctl restart networking 6/15/2019 TFM removed
|
||||
systemctl start hostapd
|
||||
systemctl start dnsmasq
|
||||
sed -i -e "s/^HOSTAPD_ENABLED.*/HOSTAPD_ENABLED=True/" {{ iiab_env_file }}
|
||||
|
||||
# Temporary promiscuous-mode workaround for RPi's WiFi "10SEC disease"
|
||||
# Disable "promiscuous" on wlan0 when AP (i.e. no WiFi gateway)
|
||||
# SEE ALSO iiab-hotspot-off + /usr/libexec/iiab-startup.sh
|
||||
# https://github.com/iiab/iiab/issues/638#issuecomment-355455454
|
||||
if grep -qi raspbian /etc/*release; then
|
||||
ip link set dev wlan0 promisc off
|
||||
fi
|
||||
#if grep -qi raspbian /etc/*release; then
|
||||
# ip link set dev wlan0 promisc off
|
||||
#fi
|
||||
|
||||
{% else %}
|
||||
systemctl enable hostapd
|
||||
sed -i -e "s/^HOSTAPD_ENABLED.*/HOSTAPD_ENABLED=True/" {{ iiab_env_file }}
|
||||
|
||||
echo -e "\nPlease consider rebooting now.\n"
|
||||
{% if wifi_up_down %}
|
||||
echo -e "\nPlease reboot to activate hostapd feature.\n"
|
||||
exit 0
|
||||
{% else %}
|
||||
sed -i -e "s|managed=1|managed=0|" /etc/NetworkManager/conf.d/wifi-manage.conf
|
||||
echo -e "\nPlease reboot to activate hostapd feature.\n"
|
||||
exit 0
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
|
4
roles/network/templates/network/manage.conf.j2
Normal file
4
roles/network/templates/network/manage.conf.j2
Normal file
|
@ -0,0 +1,4 @@
|
|||
# IIAB WiFi
|
||||
[device]
|
||||
match-device=interface-name:{{ discovered_wireless_iface }}
|
||||
managed=1
|
|
@ -3,6 +3,8 @@
|
|||
# gui_desired_network_role is {{ gui_desired_network_role }}
|
||||
{% endif %}
|
||||
{% if iiab_network_mode != "Appliance" %}
|
||||
# auto wired slave creation is suppressed in detected_network.yml
|
||||
# 'none' would become the name of the wired slave device.
|
||||
################# LANCONTROLLER ###################
|
||||
auto br0
|
||||
iface br0 inet manual
|
||||
|
|
|
@ -5,6 +5,7 @@ Name=br0
|
|||
[Network]
|
||||
Address={{ lan_ip }}/19
|
||||
LinkLocalAddressing=no
|
||||
ConfigureWithoutCarrier=yes
|
||||
# Commenting the below line as it has been causing race/looping issues between dnsmasq and systemd-resolved
|
||||
# IIAB ticket #1747
|
||||
#DNS={{ lan_ip }}
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
# /etc/systemd/network/IIAB-Slave.network
|
||||
# /etc/systemd/network/IIAB-Slave-{{ iiab_wired_lan_iface }}.network
|
||||
[Match]
|
||||
Name={{ iiab_wired_lan_iface }}
|
||||
|
||||
[Link]
|
||||
RequiredForOnline=no
|
||||
|
||||
[Network]
|
||||
Bridge=br0
|
||||
|
|
|
@ -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-24:
|
||||
3. Current state of IIAB App/Service migrations as of 2020-04-29:
|
||||
|
||||
1. These support "Native" NGINX but ***NOT*** Apache
|
||||
* Admin Console
|
||||
|
@ -39,7 +39,7 @@
|
|||
* nodered
|
||||
|
||||
4. These each run their own web server or non-web / backend services, e.g. off of their own [unique port(s)](https://github.com/iiab/iiab/wiki/IIAB-Networking#list-of-ports--services) (IIAB home pages link directly to these destinations). In future we'd like mnemonic URL's for all of these: (e.g. http://box/calibre, http://box/archive, http://box/kalite)
|
||||
* calibre (menu goes directly to port 8080) [*]
|
||||
* calibre (menu goes directly to port 8080)
|
||||
* internetarchive (menu goes directly to port 4244, [PR #2120](https://github.com/iiab/iiab/pull/2120)) [*]
|
||||
* kalite (menu goes directly to ports 8006-8008)
|
||||
* minetest [*]
|
||||
|
@ -47,4 +47,4 @@
|
|||
* pbx [*]
|
||||
* transmission [*]
|
||||
|
||||
[*] The 5 above starred roles could use improvement, as of 2020-04-24.
|
||||
[*] The 4 above starred roles could use improvement, as of 2020-04-29.
|
||||
|
|
|
@ -25,6 +25,3 @@ sshd_service: sshd
|
|||
php_version: 7.0
|
||||
postgresql_version: 9.5
|
||||
systemd_location: /usr/lib/systemd/system
|
||||
# Upgrade OS's own Calibre to very latest:
|
||||
calibre_via_debs: False
|
||||
calibre_via_python: True
|
||||
|
|
|
@ -25,6 +25,3 @@ sshd_service: ssh
|
|||
php_version: 7.3
|
||||
postgresql_version: 11
|
||||
systemd_location: /lib/systemd/system
|
||||
# Upgrade OS's own Calibre to very latest:
|
||||
calibre_via_debs: False
|
||||
calibre_via_python: True
|
||||
|
|
|
@ -24,6 +24,3 @@ sshd_service: ssh
|
|||
php_version: 5
|
||||
postgresql_version: 9.4
|
||||
systemd_location: /lib/systemd/system
|
||||
# Upgrade OS's own Calibre to very latest:
|
||||
calibre_via_debs: False
|
||||
calibre_via_python: True
|
||||
|
|
|
@ -25,6 +25,3 @@ sshd_service: ssh
|
|||
php_version: 7.0
|
||||
postgresql_version: 9.6
|
||||
systemd_location: /lib/systemd/system
|
||||
# Upgrade OS's own Calibre to very latest:
|
||||
calibre_via_debs: False
|
||||
calibre_via_python: True
|
||||
|
|
|
@ -98,9 +98,8 @@ hostapd_enabled: True
|
|||
# Above is forcibly set to False (in roles/network/tasks/main.yml) if IIAB is
|
||||
# being WiFi-installed (run "iiab-hotspot-on" AFTER ./iiab-install completes
|
||||
# and content is downloaded, to enable the internal WiFi Access Point / AP!)
|
||||
reboot_to_AP: False
|
||||
# For those installing IIAB over WiFi: "reboot_to_AP: True" overrides the above
|
||||
# detection of WiFi-as-gateway, forcing "hostapd_enabled: True" regardless.
|
||||
wifi_up_down: True # Creates a second virtual wifi adapter for WiFi upstream to internet
|
||||
# as well as classroom hotspot, use iiab_gateway_enabled for pass through
|
||||
|
||||
# Gateway mode
|
||||
iiab_lan_enabled: True
|
||||
|
|
|
@ -26,6 +26,3 @@ sshd_service: sshd
|
|||
nextcloud_install: False
|
||||
nextcloud_enabled: False
|
||||
systemd_location: /usr/lib/systemd/system
|
||||
# Upgrade OS's own Calibre to very latest:
|
||||
calibre_via_debs: False
|
||||
calibre_via_python: True
|
||||
|
|
|
@ -22,6 +22,3 @@ apache_log: /var/log/httpd/access_log
|
|||
sshd_package: openssh-server
|
||||
sshd_service: sshd
|
||||
systemd_location: /usr/lib/systemd/system
|
||||
# Upgrade OS's own Calibre to very latest:
|
||||
calibre_via_debs: False
|
||||
calibre_via_python: True
|
||||
|
|
|
@ -46,6 +46,8 @@ host_wifi_mode: g
|
|||
host_channel: 6
|
||||
hostapd_secure: False
|
||||
hostapd_password: changeme
|
||||
wifi_up_down: True # Creates a second virtual wifi adapter for WiFi upstream to internet
|
||||
# as well as classroom hotspot, use iiab_gateway_enabled for pass through
|
||||
|
||||
# See "How do I set a static IP address?" for Ethernet, in http://FAQ.IIAB.IO
|
||||
wan_ip: dhcp # wan_ip: 192.168.1.99
|
||||
|
|
|
@ -46,6 +46,8 @@ host_wifi_mode: g
|
|||
host_channel: 6
|
||||
hostapd_secure: False
|
||||
hostapd_password: changeme
|
||||
wifi_up_down: True # Creates a second virtual wifi adapter for WiFi upstream to internet
|
||||
# as well as classroom hotspot, use iiab_gateway_enabled for pass through
|
||||
|
||||
# See "How do I set a static IP address?" for Ethernet, in http://FAQ.IIAB.IO
|
||||
wan_ip: dhcp # wan_ip: 192.168.1.99
|
||||
|
|
|
@ -46,6 +46,8 @@ host_wifi_mode: g
|
|||
host_channel: 6
|
||||
hostapd_secure: False
|
||||
hostapd_password: changeme
|
||||
wifi_up_down: True # Creates a second virtual wifi adapter for WiFi upstream to internet
|
||||
# as well as classroom hotspot, use iiab_gateway_enabled for pass through
|
||||
|
||||
# See "How do I set a static IP address?" for Ethernet, in http://FAQ.IIAB.IO
|
||||
wan_ip: dhcp # wan_ip: 192.168.1.99
|
||||
|
|
|
@ -27,11 +27,6 @@ sshd_service: ssh
|
|||
php_version: 7.3
|
||||
postgresql_version: 11
|
||||
systemd_location: /lib/systemd/system
|
||||
# Upgrade Raspbian Buster's Calibre 3.x: (via role/calibre/tasks/debs.yml,
|
||||
# with .deb's released about 5-10 days after Calibre's quasi-monthly releases)
|
||||
calibre_via_debs: True
|
||||
# roles/calibre/tasks/py-installer.yml FAILS on ARM as of 2018-05-10:
|
||||
calibre_via_python: False
|
||||
|
||||
# minetest for rpi
|
||||
minetest_server_bin: /library/games/minetest/bin/minetestserver
|
||||
|
|
|
@ -26,8 +26,3 @@ sshd_service: ssh
|
|||
php_version: 5
|
||||
postgresql_version: 9.4
|
||||
systemd_location: /lib/systemd/system
|
||||
# Upgrade Raspbian Jessie's Calibre 2.5.0: (via role/calibre/tasks/debs.yml,
|
||||
# with .deb's released about 5-10 days after Calibre's quasi-monthly releases)
|
||||
calibre_via_debs: True
|
||||
# roles/calibre/tasks/py-installer.yml FAILS on ARM as of 2018-05-10:
|
||||
calibre_via_python: False
|
||||
|
|
|
@ -27,11 +27,6 @@ sshd_service: ssh
|
|||
php_version: 7.0
|
||||
postgresql_version: 9.6
|
||||
systemd_location: /lib/systemd/system
|
||||
# Upgrade Raspbian Stretch's Calibre 2.75.1: (via role/calibre/tasks/debs.yml,
|
||||
# with .deb's released about 5-10 days after Calibre's quasi-monthly releases)
|
||||
calibre_via_debs: True
|
||||
# roles/calibre/tasks/py-installer.yml FAILS on ARM as of 2018-05-10:
|
||||
calibre_via_python: False
|
||||
|
||||
# minetest for rpi
|
||||
minetest_server_bin: /library/games/minetest/bin/minetestserver
|
||||
|
|
|
@ -25,6 +25,3 @@ sshd_service: ssh
|
|||
php_version: 7.0
|
||||
postgresql_version: 9.5
|
||||
systemd_location: /lib/systemd/system
|
||||
# Upgrade Ubuntu 16.04's Calibre 2.55.0 to very latest:
|
||||
calibre_via_debs: False
|
||||
calibre_via_python: True
|
||||
|
|
|
@ -26,6 +26,3 @@ sshd_service: ssh
|
|||
php_version: 7.1
|
||||
postgresql_version: 9.6
|
||||
systemd_location: /lib/systemd/system
|
||||
# Upgrade Ubuntu 17.10's Calibre 3.7.0 to very latest:
|
||||
calibre_via_debs: False
|
||||
calibre_via_python: True
|
||||
|
|
|
@ -27,6 +27,3 @@ php_version: 7.2
|
|||
# "postgresql_version: 10.3" fails (too detailed for /etc/systemd/system/postgresql-iiab.service on Ubuntu 18.04)
|
||||
postgresql_version: 10
|
||||
systemd_location: /lib/systemd/system
|
||||
# Upgrade Ubuntu 18.04's Calibre 3.21.0 to very latest:
|
||||
calibre_via_debs: False
|
||||
calibre_via_python: True
|
||||
|
|
|
@ -27,6 +27,3 @@ php_version: 7.3
|
|||
# "postgresql_version: 11.2" fails (too detailed for /etc/systemd/system/postgresql-iiab.service on Ubuntu 19.04)
|
||||
postgresql_version: 11
|
||||
systemd_location: /lib/systemd/system
|
||||
# Upgrade Ubuntu 19.x's Calibre 3.39.1+ to very latest
|
||||
calibre_via_debs: False
|
||||
calibre_via_python: True
|
||||
|
|
|
@ -27,6 +27,3 @@ php_version: 7.4
|
|||
# "postgresql_version: 11.2" failed (too detailed for /etc/systemd/system/postgresql-iiab.service on Ubuntu 19.04)
|
||||
postgresql_version: 12
|
||||
systemd_location: /lib/systemd/system
|
||||
# Upgrade Ubuntu 20.04's Calibre 4.x to very latest...for now?
|
||||
calibre_via_debs: False
|
||||
calibre_via_python: True
|
||||
|
|
Loading…
Add table
Reference in a new issue