1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-02-14 12:12:12 +00:00

Dynamically extract python_ver & postgresql_version

This commit is contained in:
root 2022-12-21 13:34:30 -05:00
parent f43aebf491
commit b691bd8252
13 changed files with 55 additions and 31 deletions

View file

@ -7,12 +7,13 @@
# Higher-level purpose explained at the bottom of:
# https://github.com/iiab/iiab/blob/master/vars/default_vars.yml
- name: "Ansible just ran /etc/ansible/facts.d/local_facts.fact to set 11 vars -- here we extract 3 of those -- rpi_model: {{ ansible_local.local_facts.rpi_model }}, devicetree_model: {{ ansible_local.local_facts.devicetree_model }}, iiab_stage: {{ ansible_local.local_facts.stage }}"
- name: "Ansible just ran /etc/ansible/facts.d/local_facts.fact to set 14 vars -- here we extract 5 of those -- iiab_stage: {{ ansible_local.local_facts.stage }}, rpi_model: {{ ansible_local.local_facts.rpi_model }}, devicetree_model: {{ ansible_local.local_facts.devicetree_model }}, os_ver: {{ ansible_local.local_facts.os_ver }}, python_ver: {{ ansible_local.local_facts.python_ver }}"
set_fact:
iiab_stage: "{{ ansible_local.local_facts.stage }}"
rpi_model: "{{ ansible_local.local_facts.rpi_model }}"
devicetree_model: "{{ ansible_local.local_facts.devicetree_model }}"
os_ver: "{{ ansible_local.local_facts.os_ver }}"
python_ver: "{{ ansible_local.local_facts.python_ver }}"
# Initialize /etc/iiab/iiab.ini writing the 'location' and 'version' sections
# once and only once, to preserve the install date and git hash.
@ -21,9 +22,8 @@
when: not iiab_ini_test.stat.exists
# 2021-07-30: The 'first_run' flag isn't much used anymore. In theory it's
# still used in these 2 places:
# (1) roles/1-prep/tasks/hardware.yml for raspberry_pi.yml
# (2) roles/network/tasks/named.yml for "Stop named before copying files"
# still used in 1-prep/tasks/hardware.yml for raspberry_pi.yml
#
# This needs to be reworked for 0-init speed, and overall understandability.
- name: Set first_run flag
set_fact:
@ -96,6 +96,8 @@
value: "{{ devicetree_model }}"
- option: os_ver
value: "{{ os_ver }}"
- option: python_ver
value: "{{ python_ver }}"
- option: first_run
value: "{{ first_run }}"
- option: local_tz # e.g. 'EDT' (summer) or 'EST' (winter) after Ansible interprets symlink /etc/localtime -- or 'UTC' if /etc/localtime doesn't exist

View file

@ -2,10 +2,10 @@
# https://github.com/iiab/iiab/blob/master/roles/www_base/templates/iiab-refresh-wiki-docs.sh#L51-L52
- name: "Install 8 packages for Lokole: python3, python3-pip, python3-venv, python3-dev, python3-bcrypt, libffi-dev, libssl-dev, libopenjp2-7"
- name: Install 14 packages for Lokole
apt:
name:
- python3
#- python3 # 2022-12-21: IIAB pre-req, see scripts/local_facts.fact
- python3-pip
- python3-venv
- python3-dev
@ -55,12 +55,19 @@
extra_args: --no-cache-dir # To avoid caching issues e.g. soon after new releases hit https://pypi.org/project/opwen-email-client/
when: lokole_commit is undefined and lokole_version is undefined
- name: Compile translations
# 2022-12-21: Dynamic callout to Python moved to scripts/local_facts.fact (Python 3 is now a mandatory IIAB pre-req)
# - name: Compile translations
# shell: |
# python_version=$(python3 -c 'from sys import version_info; print("%s.%s" % (version_info.major, version_info.minor));';)
# {{ lokole_venv }}/bin/pybabel compile -d {{ item }}/translations
# with_items:
# - "{{ lokole_venv }}/lib/python${python_version}/site-packages/opwen_email_client/webapp"
- name: Compile translations for Python {{ python_ver }}
shell: |
python_version=$(python3 -c 'from sys import version_info; print("%s.%s" % (version_info.major, version_info.minor));';)
{{ lokole_venv }}/bin/pybabel compile -d {{ item }}/translations
with_items:
- "{{ lokole_venv }}/lib/python${python_version}/site-packages/opwen_email_client/webapp"
- "{{ lokole_venv }}/lib/python{{ python_ver }}/site-packages/opwen_email_client/webapp"
- name: Create system {{ lokole_user }} user
ansible.builtin.user:

View file

@ -6,13 +6,18 @@
- python3-psycopg2 # For Ansible modules {postgresql_db, postgresql_user} in Ansible collection community.postgresql -- used in moodle/tasks/install.yml
state: present
- name: Run shell command "pg_config --version" to extract MAJOR version numner -- strip off MINOR/PATCH version number(s)
shell: pg_config --version | sed 's/^[^0-9]*//' | sed 's/[^0-9].*//'
register: pg_config_version
- name: 'Dynamically set Ansible var "postgresql_version: {{ pg_config_version.stdout }}"'
set_fact:
postgresql_version: "{{ pg_config_version.stdout }}"
- name: Install /etc/systemd/system/postgresql-iiab.service from template (0644 by default)
template:
src: postgresql-iiab.service
dest: /etc/systemd/system/postgresql-iiab.service
# owner: root
# group: root
# mode: '0644'
- name: Create PostgreSQL data dir /library/pgsql-iiab, owned by postgres:postgres (0700)
file:

View file

@ -11,7 +11,9 @@
STAGE=0
OS="none"
VERSION_ID="none" # This var's combined with the above, before being output
VERSION_ID="none" # Temp var, for: OS_VER="$OS-$VERSION_ID"
OS_VER="none"
PYTHON_VER="none"
IIAB_REMOTE_URL="none"
IIAB_BRANCH="none"
IIAB_COMMIT="none"
@ -63,6 +65,7 @@ OS_VER="$OS-$VERSION_ID"
#"ubuntu-17" | \
#"ubuntu-18" | \
#"ubuntu-19" | \
#"ubuntu-2004" | \
#"ubuntu-2104" | \
#"ubuntu-2110" | \
#"centos-7" | \
@ -76,7 +79,6 @@ OS_VER="$OS-$VERSION_ID"
case $OS_VER in
"debian-11" | \
"debian-12" | \
"ubuntu-2004" | \
"ubuntu-2204" | \
"ubuntu-2210" | \
"ubuntu-2304" | \
@ -123,6 +125,13 @@ tmp=$(ansible --version) &&
#ANSIBLE_VERSION=$(echo "$tmp" | head -1 | awk '{print $2}')
#ANSIBLE_VERSION=$(echo "$tmp" | head -1 | sed -e 's/.* //')
if tmp=$(python3 -c 'from sys import version_info; print("%s.%s" % (version_info.major, version_info.minor));'); then
PYTHON_VER=$tmp
else
echo -e "\e[1m\nPython 3 is REQUIRED for Internet-in-a-Box. You might want to run:\n\nsudo apt install python3\n\e[0m"
exit 1
fi
# THE LAST 3 BELOW ARE DIFFERENT as "systemctl is-enabled" unhelpfully returns
# the same error code (i.e. 1) REGARDLESS whether the service is (A) disabled
@ -159,5 +168,6 @@ cat <<EOF
"devicetree_model" : "$DEVICETREE_MODEL",
"ansible_version" : "$ANSIBLE_VERSION",
"os" : "$OS",
"os_ver" : "$OS_VER"}
"os_ver" : "$OS_VER",
"python_ver" : "$PYTHON_VER"}
EOF

View file

@ -18,6 +18,6 @@ mysql_service: mariadb
sshd_package: openssh-server
sshd_service: ssh
php_version: "7.4"
postgresql_version: 13
# postgresql_version: 13
systemd_location: /lib/systemd/system
python_ver: "3.9"
# python_ver: "3.9"

View file

@ -18,6 +18,6 @@ mysql_service: mariadb
sshd_package: openssh-server
sshd_service: ssh
php_version: "8.1"
postgresql_version: 15
# postgresql_version: 15
systemd_location: /lib/systemd/system
python_ver: "3.10"
# python_ver: "3.10"

View file

@ -20,6 +20,6 @@ mysql_service: mariadb
sshd_package: openssh-server
sshd_service: ssh
php_version: "7.4"
postgresql_version: 12
# postgresql_version: 12
systemd_location: /lib/systemd/system
python_ver: "3.8"
# python_ver: "3.8"

View file

@ -20,6 +20,6 @@ mysql_service: mariadb
sshd_package: openssh-server
sshd_service: ssh
php_version: "8.1"
postgresql_version: 14
# postgresql_version: 14
systemd_location: /lib/systemd/system
python_ver: "3.10"
# python_ver: "3.10"

View file

@ -20,6 +20,6 @@ mysql_service: mariadb
sshd_package: ssh
sshd_service: ssh
php_version: "7.4"
postgresql_version: 13
# postgresql_version: 13
systemd_location: /lib/systemd/system
python_ver: "3.9"
# python_ver: "3.9"

View file

@ -18,6 +18,6 @@ mysql_service: mariadb
sshd_package: openssh-server
sshd_service: ssh
php_version: "8.1"
postgresql_version: 14
# postgresql_version: 14
systemd_location: /lib/systemd/system
python_ver: "3.10"
# python_ver: "3.10"

View file

@ -18,6 +18,6 @@ mysql_service: mariadb
sshd_package: openssh-server
sshd_service: ssh
php_version: "8.1"
postgresql_version: 14
# postgresql_version: 14
systemd_location: /lib/systemd/system
python_ver: "3.10"
# python_ver: "3.10"

View file

@ -18,6 +18,6 @@ mysql_service: mariadb
sshd_package: openssh-server
sshd_service: ssh
php_version: "8.1"
postgresql_version: 14
# postgresql_version: 14
systemd_location: /lib/systemd/system
python_ver: "3.10"
# python_ver: "3.10"