From ead6a2375a8b8335bad97eed39bd5e8cd409ad20 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 18 Apr 2021 14:12:26 -0400 Subject: [PATCH 01/20] ansible-base (2.10) -> ansible-core (2.11+) transition very soon --- .travis.yml | 17 ++++++++--------- scripts/ansible | 35 +++++++++++++++++++++-------------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/.travis.yml b/.travis.yml index aeed81a09..d22cabca1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,8 +8,8 @@ addons: - sourceline: ppa:ansible/ansible packages: # - python-pip # @arky had used this starting in 2018 - - ansible-base # Install latest ansible-base e.g. 2.10.7+, similar to https://github.com/iiab/iiab/blob/master/scripts/ansible -# - python3-pymysql # These 7-or-8 packages are not needed during this very rapid --syntax-check + - ansible-core # MUCH FASTER pip3 OPTION IS BELOW. Conversely: apt (SLOW WAY) may be desired in future to mimic https://github.com/iiab/iiab/blob/master/scripts/ansible for linting etc? +# - python3-pymysql # These 7-or-8 packages are not needed during the very rapid --syntax-check (below) # - python3-psycopg2 # - python3-passlib # - python3-pip @@ -20,14 +20,13 @@ addons: install: # - scripts/ansible # See #2105: fails to install latest Ansible (& ~4 Ansible Collections from collections.yml) due to Travis VM's disk layout/perms being different -# - pip install ansible # SLOW/OVERWEIGHT: installs Ansible 3.0.0+ with ~80 Ansible Collections -# - pip install ansible-base # ALSO WORKS (FASTER THAN ALL ABOVE!) e.g. if the above addons: / apt: section is commented out. To install latest ansible-base e.g. 2.10.7+, similar to https://github.com/iiab/iiab/blob/master/scripts/ansible -# - pip3 install ansible-core # APRIL 2021: ansible-base is being renamed to ansible-core -- latest version number is listed at https://pypi.org/project/ansible-core/ +# - pip3 install ansible # SLOW / OVERWEIGHT: installs Ansible 3.1.0+ superset, with more than 80 (far more than we need) Ansible Collections +# - pip3 install ansible-core # MUCH FASTER / MAY BE CONSIDERED IN FUTURE e.g. if above apt install of ansible-core is commented out. APRIL 2021: ansible-base (2.10) was renamed to ansible-core (2.11+) with the latest version number shown at https://pypi.org/project/ansible-core/ - ansible-galaxy collection install -r collections.yml # Install ~4 Ansible Collections - - "{ echo 'roles_path = ./roles/'; } >> ansible.cfg" # Add correct roles_path to ansible.cfg, appending to https://github.com/iiab/iiab/blob/master/ansible.cfg -# - "{ echo '[defaults]'; echo 'roles_path = ./roles/'; } >> ansible.cfg" # 2021-02-24: suddenly no longer works, with the newer ansible-base install methods above (error arises due to '[defaults]' appearing twice) -# - cat ansible.cfg # UNCOMMENT TO VERIFY! - - apt -a list ansible-base # VERIFY ansible-base VERSIONS OFFERED BY apt + - echo 'roles_path = ./roles/' >> ansible.cfg" # Add correct roles_path to ansible.cfg, appending to https://github.com/iiab/iiab/blob/master/ansible.cfg +# - "{ echo '[defaults]'; echo 'roles_path = ./roles/'; } >> ansible.cfg" # 2021-02-24: suddenly no longer works, with the newer ansible-base -> ansible-core install methods above (error arises due to '[defaults]' appearing twice) + - cat ansible.cfg # VISUAL VERIFICATION OF ABOVE! + - apt -a list ansible-core # VERIFY ansible-core VERSIONS OFFERED BY apt, from https://launchpad.net/~ansible/+archive/ubuntu/ansible script: - ansible-playbook tests/test.yml -i tests/inventory --syntax-check diff --git a/scripts/ansible b/scripts/ansible index 0aa812e25..9d7c8b2e6 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -9,9 +9,9 @@ APT_PATH=/usr/bin # Avoids problematic /usr/local/bin/apt on Linux Mint CURR_VER=undefined # Ansible version you currently have installed -GOOD_VER=2.10.8 # Orig for 'yum install [rpm]' & XO laptops (pip install) +GOOD_VER=2.11.0 # Orig for 'yum install [rpm]' & XO laptops (pip install) -# We install the latest 'ansible-base' from PPA, using an OS 'CODENAME' below: +# We install the latest 'ansible-core' from PPA, using an OS 'CODENAME' below: # https://launchpad.net/~ansible/+archive/ubuntu/ansible # 'lsb_release -sc' gives Mint 20 codename 'ulyana' etc: (TOO FINE-GRAINED) @@ -21,17 +21,23 @@ else CODENAME=focal # Debian 11+, RaspiOS 11+, Ubuntu 20.04+, Mint 20+ (ETC) fi -# 'ansible-base' being renamed 'ansible-code' early in 2021. RELEASE LINK REFS: -# http://ppa.launchpad.net/ansible/ansible/ubuntu/pool/main/a/ansible-base/ -# https://launchpad.net/~ansible/+archive/ubuntu/ansible-2.10 -# https://github.com/ansible/ansible/commits/stable-2.10/changelogs/CHANGELOG-v2.10.rst -# https://github.com/ansible/ansible/blob/devel/docs/docsite/rst/roadmap/ROADMAP_2_11.rst +# APRIL 2021 - ansible-base (2.10) is being renamed to ansible-core (2.11+): # https://www.ansible.com/blog/ansible-3.0.0-qa # https://github.com/ansible/ansible/releases +# https://pypi.org/project/ansible-base/ +# https://pypi.org/project/ansible-core/ # https://releases.ansible.com/ansible-base/ # https://releases.ansible.com/ansible-core/ +# https://launchpad.net/~ansible/+archive/ubuntu/ansible-2.10 +# https://launchpad.net/~ansible/+archive/ubuntu/ansible-2.11 ? +# http://ppa.launchpad.net/ansible/ansible/ubuntu/pool/main/a/ansible-base/ +# http://ppa.launchpad.net/ansible/ansible/ubuntu/pool/main/a/ansible-core/ ? +# https://github.com/ansible/ansible/blob/stable-2.10/changelogs/CHANGELOG-v2.10.rst +# https://github.com/ansible/ansible/blob/stable-2.11/changelogs/CHANGELOG-v2.11.rst +# https://github.com/ansible/ansible/blob/devel/docs/docsite/rst/roadmap/ROADMAP_2_10.rst +# https://github.com/ansible/ansible/blob/devel/docs/docsite/rst/roadmap/ROADMAP_2_11.rst -# FYI .travis.yml installs ansible-base in a slightly different way (PR #2689). +# FYI .travis.yml installs ansible-core in a slightly different way (PR #2689). # IIAB implementers might instead consider these 4 GENERAL TECHNIQUES below # ("in an emergency!") e.g. if apt fails & you need a newer/older Ansible: @@ -65,6 +71,7 @@ echo -e "\n\nYOU ARE RUNNING: /opt/iiab/iiab/scripts/ansible (TO INSTALL ANSIBLE echo -e "RECOMMENDED PREREQUISITES:" echo -e "(1) Verify you're online" echo -e "(2) Remove all prior versions of Ansible using..." +echo -e " 'apt purge ansible-core' and/or 'pip3 uninstall ansible-core' and/or" echo -e " 'apt purge ansible-base' and/or 'pip3 uninstall ansible-base' and/or" echo -e " 'apt purge ansible' and/or 'pip uninstall ansible'" echo -e "(3) Remove all lines containing 'ansible' from..." @@ -82,7 +89,7 @@ if [ $(command -v ansible) ]; then # "command -v" is POSIX compliant; also ca else echo -e "ANSIBLE NOT FOUND ON THIS COMPUTER -- LET'S TRY TO INSTALL IT!" fi -echo -e "(Internet-in-a-Box requests ansible-base $GOOD_VER or higher)\n" +echo -e "(Internet-in-a-Box requests ansible-core $GOOD_VER or higher)\n" # Code above designed to work on all Linux distributions, to preserve options, # in support of any volunteer(s) wanting to port IIAB to a new Linux/distro. @@ -118,10 +125,10 @@ echo -e "IF *OTHER* ANSIBLE SOURCES APPEAR BELOW, PLEASE MANUALLY REMOVE THEM TO echo -e 'ENSURE ANSIBLE UPDATES CLEANLY: (then re-run this script to be sure!)\n' grep '^deb .*ansible' /etc/apt/sources.list /etc/apt/sources.list.d/*.list | grep -v '^/etc/apt/sources.list.d/iiab-ansible.list:' || true # Override bash -e (instead of aborting at 1st error) -echo -e "\napt update; apt install ansible-base and python3 dependencies explained at:" +echo -e "\napt update; apt install ansible-core and python3 dependencies explained at:" echo -e "https://github.com/iiab/iiab/tree/master/scripts/ansible.md\n" $APT_PATH/apt update -$APT_PATH/apt -y --allow-downgrades install ansible-base \ +$APT_PATH/apt -y --allow-downgrades install ansible-core \ python3-pymysql python3-psycopg2 python3-passlib python3-pip \ python3-setuptools python3-packaging python3-venv virtualenv @@ -140,7 +147,7 @@ ansible-galaxy collection install --force-with-deps \ # /usr/share/ansible/collections/ansible_collections echo -e "\n\nCreating/verifying directory /etc/ansible & installing /etc/ansible/hosts\n" -mkdir -p /etc/ansible -echo -e '[local]\nlocalhost\n' > /etc/ansible/hosts +mkdir -p /etc/ansible # LIKELY REDUNDANT, due to above installation of Ansible +echo -e '[local]\nlocalhost\n' > /etc/ansible/hosts # LIKELY REDUNDANT, due to https://github.com/iiab/iiab/blob/master/ansible_hosts -echo -e "SUCCESS: VERIFY ANSIBLE WITH 'ansible --version' & 'apt -a list ansible-base'\n\n" +echo -e "SUCCESS: VERIFY ANSIBLE WITH 'ansible --version' & 'apt -a list ansible-core'\n\n" From 58b972cdf7d4bb190f48feeb6483857315acd4d1 Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 18 Apr 2021 16:20:08 -0400 Subject: [PATCH 02/20] scripts/ansible: further explain .travis.yml --- scripts/ansible | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ansible b/scripts/ansible index 9d7c8b2e6..9e407cee9 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -37,7 +37,7 @@ fi # https://github.com/ansible/ansible/blob/devel/docs/docsite/rst/roadmap/ROADMAP_2_10.rst # https://github.com/ansible/ansible/blob/devel/docs/docsite/rst/roadmap/ROADMAP_2_11.rst -# FYI .travis.yml installs ansible-core in a slightly different way (PR #2689). +# FYI .travis.yml installs ansible-core in a slightly different way (PRs #2689, #2742). # IIAB implementers might instead consider these 4 GENERAL TECHNIQUES below # ("in an emergency!") e.g. if apt fails & you need a newer/older Ansible: From 605adceebc2e98a1e2ccf39c89ffeb1ce51ad51a Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 19 Apr 2021 10:52:14 -0400 Subject: [PATCH 03/20] Update .travis.yml --- .travis.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index d22cabca1..fe6acd878 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,12 +4,12 @@ dist: focal addons: apt: - sources: - - sourceline: ppa:ansible/ansible +# sources: +# - sourceline: ppa:ansible/ansible packages: # - python-pip # @arky had used this starting in 2018 - - ansible-core # MUCH FASTER pip3 OPTION IS BELOW. Conversely: apt (SLOW WAY) may be desired in future to mimic https://github.com/iiab/iiab/blob/master/scripts/ansible for linting etc? -# - python3-pymysql # These 7-or-8 packages are not needed during the very rapid --syntax-check (below) +# - ansible-core # MUCH FASTER pip3 OPTION IS BELOW. Conversely: apt (SLOW WAY) may be desired in future to mimic https://github.com/iiab/iiab/blob/master/scripts/ansible for linting etc? +# - python3-pymysql # These 7-or-8 packages (below) are not needed during the very rapid --syntax-check (bottom) # - python3-psycopg2 # - python3-passlib # - python3-pip @@ -21,7 +21,7 @@ addons: install: # - scripts/ansible # See #2105: fails to install latest Ansible (& ~4 Ansible Collections from collections.yml) due to Travis VM's disk layout/perms being different # - pip3 install ansible # SLOW / OVERWEIGHT: installs Ansible 3.1.0+ superset, with more than 80 (far more than we need) Ansible Collections -# - pip3 install ansible-core # MUCH FASTER / MAY BE CONSIDERED IN FUTURE e.g. if above apt install of ansible-core is commented out. APRIL 2021: ansible-base (2.10) was renamed to ansible-core (2.11+) with the latest version number shown at https://pypi.org/project/ansible-core/ + - pip3 install ansible-core # MUCH FASTER / MAY BE CONSIDERED IN FUTURE e.g. if above apt install of ansible-core is commented out. APRIL 2021: ansible-base (2.10) was renamed to ansible-core (2.11+) with the latest version number shown at https://pypi.org/project/ansible-core/ - ansible-galaxy collection install -r collections.yml # Install ~4 Ansible Collections - echo 'roles_path = ./roles/' >> ansible.cfg" # Add correct roles_path to ansible.cfg, appending to https://github.com/iiab/iiab/blob/master/ansible.cfg # - "{ echo '[defaults]'; echo 'roles_path = ./roles/'; } >> ansible.cfg" # 2021-02-24: suddenly no longer works, with the newer ansible-base -> ansible-core install methods above (error arises due to '[defaults]' appearing twice) From ac9ad2ef01d9484d90867ae760dc7a58d1761321 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 19 Apr 2021 10:57:07 -0400 Subject: [PATCH 04/20] Big: remove trailing " in .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fe6acd878..b1ebff06a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,7 +23,7 @@ install: # - pip3 install ansible # SLOW / OVERWEIGHT: installs Ansible 3.1.0+ superset, with more than 80 (far more than we need) Ansible Collections - pip3 install ansible-core # MUCH FASTER / MAY BE CONSIDERED IN FUTURE e.g. if above apt install of ansible-core is commented out. APRIL 2021: ansible-base (2.10) was renamed to ansible-core (2.11+) with the latest version number shown at https://pypi.org/project/ansible-core/ - ansible-galaxy collection install -r collections.yml # Install ~4 Ansible Collections - - echo 'roles_path = ./roles/' >> ansible.cfg" # Add correct roles_path to ansible.cfg, appending to https://github.com/iiab/iiab/blob/master/ansible.cfg + - echo 'roles_path = ./roles/' >> ansible.cfg # Add correct roles_path to ansible.cfg, appending to https://github.com/iiab/iiab/blob/master/ansible.cfg # - "{ echo '[defaults]'; echo 'roles_path = ./roles/'; } >> ansible.cfg" # 2021-02-24: suddenly no longer works, with the newer ansible-base -> ansible-core install methods above (error arises due to '[defaults]' appearing twice) - cat ansible.cfg # VISUAL VERIFICATION OF ABOVE! - apt -a list ansible-core # VERIFY ansible-core VERSIONS OFFERED BY apt, from https://launchpad.net/~ansible/+archive/ubuntu/ansible From f7ee26ddfd46c8aa8df29d01e8cb30748be43305 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 19 Apr 2021 11:07:50 -0400 Subject: [PATCH 05/20] scripts/ansible: "pip3 install ansible-core" interim/alternative --- scripts/ansible | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/ansible b/scripts/ansible index 9e407cee9..f405769fa 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -128,7 +128,10 @@ grep '^deb .*ansible' /etc/apt/sources.list /etc/apt/sources.list.d/*.list | gre echo -e "\napt update; apt install ansible-core and python3 dependencies explained at:" echo -e "https://github.com/iiab/iiab/tree/master/scripts/ansible.md\n" $APT_PATH/apt update -$APT_PATH/apt -y --allow-downgrades install ansible-core \ +apt install python3-pip +pip3 install ansible-core +#$APT_PATH/apt -y --allow-downgrades install ansible-core \ +$APT_PATH/apt -y --allow-downgrades install \ python3-pymysql python3-psycopg2 python3-passlib python3-pip \ python3-setuptools python3-packaging python3-venv virtualenv From 436e30726a447332a8ba3b3591d6d998b751ef4c Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 19 Apr 2021 11:29:42 -0400 Subject: [PATCH 06/20] Experiment: do not create directory /etc/ansible & /etc/ansible/hosts --- scripts/ansible | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/ansible b/scripts/ansible index f405769fa..55102f0e7 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -149,8 +149,8 @@ ansible-galaxy collection install --force-with-deps \ # But going forward they'll be stored herein: # /usr/share/ansible/collections/ansible_collections -echo -e "\n\nCreating/verifying directory /etc/ansible & installing /etc/ansible/hosts\n" -mkdir -p /etc/ansible # LIKELY REDUNDANT, due to above installation of Ansible -echo -e '[local]\nlocalhost\n' > /etc/ansible/hosts # LIKELY REDUNDANT, due to https://github.com/iiab/iiab/blob/master/ansible_hosts +#echo -e "\n\nCreating/verifying directory /etc/ansible & installing /etc/ansible/hosts\n" +#mkdir -p /etc/ansible # LIKELY REDUNDANT, due to above installation of Ansible +#echo -e '[local]\nlocalhost\n' > /etc/ansible/hosts # LIKELY REDUNDANT, due to https://github.com/iiab/iiab/blob/master/ansible_hosts echo -e "SUCCESS: VERIFY ANSIBLE WITH 'ansible --version' & 'apt -a list ansible-core'\n\n" From 4d25baa6c07fd2ec343a7cb8b9821ff26436b563 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 19 Apr 2021 11:41:11 -0400 Subject: [PATCH 07/20] scripts/ansible: "$APT_PATH/apt -y install python3-pip" --- scripts/ansible | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ansible b/scripts/ansible index 55102f0e7..e2c427f1d 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -128,7 +128,7 @@ grep '^deb .*ansible' /etc/apt/sources.list /etc/apt/sources.list.d/*.list | gre echo -e "\napt update; apt install ansible-core and python3 dependencies explained at:" echo -e "https://github.com/iiab/iiab/tree/master/scripts/ansible.md\n" $APT_PATH/apt update -apt install python3-pip +$APT_PATH/apt -y install python3-pip pip3 install ansible-core #$APT_PATH/apt -y --allow-downgrades install ansible-core \ $APT_PATH/apt -y --allow-downgrades install \ From 34bca59a8c693198a55dd9325ff8725884ab96f3 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 28 Apr 2021 10:08:16 -0400 Subject: [PATCH 08/20] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b1ebff06a..2f8cf2a68 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ addons: # - sourceline: ppa:ansible/ansible packages: # - python-pip # @arky had used this starting in 2018 -# - ansible-core # MUCH FASTER pip3 OPTION IS BELOW. Conversely: apt (SLOW WAY) may be desired in future to mimic https://github.com/iiab/iiab/blob/master/scripts/ansible for linting etc? +# - ansible-core # FASTER pip3 OPTION IS BELOW. Conversely: apt (SLOW WAY) may be desired in future to mimic https://github.com/iiab/iiab/blob/master/scripts/ansible for linting etc? # - python3-pymysql # These 7-or-8 packages (below) are not needed during the very rapid --syntax-check (bottom) # - python3-psycopg2 # - python3-passlib From 3422ec1369b599d31f0157a7a90ef7e3d3c5bcbd Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 3 May 2021 20:56:44 -0400 Subject: [PATCH 09/20] scripts/ansible: further clarify ansible-base 2.10.9 --- scripts/ansible | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/ansible b/scripts/ansible index 5e08e3125..2b36eba36 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -48,8 +48,9 @@ fi #apt install python3-pymysql python3-psycopg2 python3-passlib python3-pip python3-setuptools python3-packaging python3-venv virtualenv #ansible-galaxy collection install -r collections.yml -# TEMPORARILY USE ansible-base 2.10.8 (REMOVE W/ "pip3 uninstall ansible-base") -#pip3 install ansible-base==2.10.8 # Start new shell, so /usr/local/bin works +# TEMPORARILY USE ansible-base 2.10.9 (REMOVE W/ "pip3 uninstall ansible-base") +#apt install python3-pip +#pip3 install ansible-base==2.10.9 # Start new shell, so /usr/local/bin works # TEMPORARILY USE ANSIBLE 2.9.20 (REMOVE IT WITH "pip uninstall ansible") #apt install python-pip From 87c9fe1c534c9aeddff7767390a80759f0b522e4 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 3 May 2021 21:00:08 -0400 Subject: [PATCH 10/20] scripts/ansible: clarify python3-pip & pip3 --- scripts/ansible | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/ansible b/scripts/ansible index 2b36eba36..3e8fb68cf 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -44,6 +44,7 @@ fi # TEMPORARILY USE pip3 to install the latest ansible-core as listed at # https://pypi.org/project/ansible-core/ (REMOVE W/ "pip3 uninstall ansible-core") +#apt install python3-pip #pip3 install ansible-core # Then start a new shell, so /usr/local/bin works #apt install python3-pymysql python3-psycopg2 python3-passlib python3-pip python3-setuptools python3-packaging python3-venv virtualenv #ansible-galaxy collection install -r collections.yml @@ -53,8 +54,8 @@ fi #pip3 install ansible-base==2.10.9 # Start new shell, so /usr/local/bin works # TEMPORARILY USE ANSIBLE 2.9.20 (REMOVE IT WITH "pip uninstall ansible") -#apt install python-pip -#pip install ansible==2.9.20 +#apt install python3-pip +#pip3 install ansible==2.9.20 # TEMPORARILY USE ANSIBLE 2.4.2 DUE TO 2.4.3 MEMORY BUG. Details: iiab/iiab#669 #echo "Install http://download.iiab.io/packages/ansible_2.4.2.0-1ppa~xenial_all.deb" From 647efb42e938e1cb2189c09dda42b8bebdb1f909 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 3 May 2021 21:03:49 -0400 Subject: [PATCH 11/20] scripts/ansible: further clarify pip -> pip3 --- scripts/ansible | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ansible b/scripts/ansible index 3e8fb68cf..4ccb132f4 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -75,7 +75,7 @@ echo -e "(1) Verify you're online" echo -e "(2) Remove all prior versions of Ansible using..." echo -e " 'apt purge ansible-core' and/or 'pip3 uninstall ansible-core' and/or" echo -e " 'apt purge ansible-base' and/or 'pip3 uninstall ansible-base' and/or" -echo -e " 'apt purge ansible' and/or 'pip uninstall ansible'" +echo -e " 'apt purge ansible' and/or 'pip3 uninstall ansible'" echo -e "(3) Remove all lines containing 'ansible' from..." echo -e " /etc/apt/sources.list and /etc/apt/sources.list.d/*\n" From f967a9ad2474f1df963ba2dcf4a03f02fec3a1a0 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 3 May 2021 21:07:14 -0400 Subject: [PATCH 12/20] scripts/ansible clarifs: /etc/ansible/hosts not needed, etc --- scripts/ansible | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/ansible b/scripts/ansible index 4ccb132f4..545a14d59 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -163,6 +163,7 @@ ansible-galaxy collection install --force-with-deps \ # But going forward they'll be stored herein: # /usr/share/ansible/collections/ansible_collections +# 2021-04-19: No longer needed, per PR #2743 testing #echo -e "\n\nCreating/verifying directory /etc/ansible & installing /etc/ansible/hosts\n" #mkdir -p /etc/ansible # LIKELY REDUNDANT, due to above installation of Ansible #echo -e '[local]\nlocalhost\n' > /etc/ansible/hosts # LIKELY REDUNDANT, due to https://github.com/iiab/iiab/blob/master/ansible_hosts From 9e5582baec89670b2fee3452c2571bc830e522a1 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 19 May 2021 10:09:07 -0400 Subject: [PATCH 13/20] Update .travis.yml --- .travis.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2f8cf2a68..4535fb222 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,8 +8,9 @@ addons: # - sourceline: ppa:ansible/ansible packages: # - python-pip # @arky had used this starting in 2018 -# - ansible-core # FASTER pip3 OPTION IS BELOW. Conversely: apt (SLOW WAY) may be desired in future to mimic https://github.com/iiab/iiab/blob/master/scripts/ansible for linting etc? -# - python3-pymysql # These 7-or-8 packages (below) are not needed during the very rapid --syntax-check (bottom) +# - python3-pip # Modern equivalent (not nec here on Travis?) +# - ansible-core # SLOW. WHEN IT WORKS AT ALL. Using 'pip3 install ansible-core' instead (below) is faster and greatly simplifies. Certainly let's try to mimic https://github.com/iiab/iiab/blob/master/scripts/ansible (as it evolves) for linting etc? +# - python3-pymysql # These 7-or-8 packages (below) are not needed during the very rapid --syntax-check (core script, at bottom) # - python3-psycopg2 # - python3-passlib # - python3-pip @@ -20,13 +21,13 @@ addons: install: # - scripts/ansible # See #2105: fails to install latest Ansible (& ~4 Ansible Collections from collections.yml) due to Travis VM's disk layout/perms being different -# - pip3 install ansible # SLOW / OVERWEIGHT: installs Ansible 3.1.0+ superset, with more than 80 (far more than we need) Ansible Collections - - pip3 install ansible-core # MUCH FASTER / MAY BE CONSIDERED IN FUTURE e.g. if above apt install of ansible-core is commented out. APRIL 2021: ansible-base (2.10) was renamed to ansible-core (2.11+) with the latest version number shown at https://pypi.org/project/ansible-core/ +# - pip3 install ansible # SLOW / OVERWEIGHT: installs Ansible 4.0.0+ superset, with more than 80 (far more than we need) Ansible Collections + - pip3 install ansible-core # SIGNIFICANTLY FASTER than above apt install of ansible-core (in 'packages:' section above). APRIL 2021: ansible-base (2.10) was renamed to ansible-core (2.11+) with the latest version number shown at https://pypi.org/project/ansible-core/ - ansible-galaxy collection install -r collections.yml # Install ~4 Ansible Collections - echo 'roles_path = ./roles/' >> ansible.cfg # Add correct roles_path to ansible.cfg, appending to https://github.com/iiab/iiab/blob/master/ansible.cfg # - "{ echo '[defaults]'; echo 'roles_path = ./roles/'; } >> ansible.cfg" # 2021-02-24: suddenly no longer works, with the newer ansible-base -> ansible-core install methods above (error arises due to '[defaults]' appearing twice) - cat ansible.cfg # VISUAL VERIFICATION OF ABOVE! - - apt -a list ansible-core # VERIFY ansible-core VERSIONS OFFERED BY apt, from https://launchpad.net/~ansible/+archive/ubuntu/ansible +# - apt -a list ansible-core # VERIFY ansible-core VERSIONS OFFERED BY apt, from https://launchpad.net/~ansible/+archive/ubuntu/ansible script: - ansible-playbook tests/test.yml -i tests/inventory --syntax-check From 3771b910daecda76777b0f9e66943da14edc944e Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 19 May 2021 10:14:26 -0400 Subject: [PATCH 14/20] scripts/ansible: Touch up comment --- scripts/ansible | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ansible b/scripts/ansible index 9e05ed8c5..9de026042 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -21,7 +21,7 @@ else CODENAME=focal # Debian 11+, RaspiOS 11+, Ubuntu 20.04+, Mint 20+ (ETC) fi -# APRIL 2021 - ansible-base (2.10) is being renamed to ansible-core (2.11+): +# APRIL 2021 - ansible-base (2.10) was renamed to ansible-core (2.11+): # https://www.ansible.com/blog/ansible-3.0.0-qa # https://github.com/ansible/ansible/releases # https://pypi.org/project/ansible-base/ From 56f08958fe82fa7980f53fb75876b4dca93bb80f Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 19 May 2021 10:17:37 -0400 Subject: [PATCH 15/20] scripts/ansible: Touch up comment --- scripts/ansible | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ansible b/scripts/ansible index 9de026042..5a025070a 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -37,7 +37,7 @@ fi # https://github.com/ansible/ansible/blob/devel/docs/docsite/rst/roadmap/ROADMAP_2_10.rst # https://github.com/ansible/ansible/blob/devel/docs/docsite/rst/roadmap/ROADMAP_2_11.rst -# FYI .travis.yml installs ansible-core in a slightly different way (PRs #2689, #2742). +# FYI .travis.yml installs ansible-core in a slightly different way (PRs #2689, #2742 or #2743 ?) # IIAB implementers might instead consider these 4 GENERAL TECHNIQUES below # ("in an emergency!") e.g. if apt fails & you need a newer/older Ansible: From 5b2994ef3357c92e19c02f9e886d843a3dbb7690 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 19 May 2021 10:58:01 -0400 Subject: [PATCH 16/20] scripts/ansible: Touch up operator explanation --- scripts/ansible | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ansible b/scripts/ansible index 5a025070a..7ea757cbd 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -168,4 +168,4 @@ ansible-galaxy collection install --force-with-deps \ #mkdir -p /etc/ansible # LIKELY REDUNDANT, due to above installation of Ansible #echo -e '[local]\nlocalhost\n' > /etc/ansible/hosts # LIKELY REDUNDANT, due to https://github.com/iiab/iiab/blob/master/ansible_hosts -echo -e "SUCCESS: VERIFY ANSIBLE WITH 'ansible --version' & 'apt -a list ansible-core'\n\n" +echo -e "SUCCESS: VERIFY WITH 'ansible --version' (and 'apt -a list ansible-core' ?)\n\n" From 9b4b31b3697f60e856b351fe4498e0849443e08f Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 19 May 2021 11:02:38 -0400 Subject: [PATCH 17/20] scripts/ansible: Fix explanatory URL to scripts/ansible.md --- scripts/ansible | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ansible b/scripts/ansible index 7ea757cbd..d1f0068c6 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -140,7 +140,7 @@ echo -e 'ENSURE ANSIBLE UPDATES CLEANLY: (then re-run this script to be sure!)\n grep '^deb .*ansible' /etc/apt/sources.list /etc/apt/sources.list.d/*.list | grep -v '^/etc/apt/sources.list.d/iiab-ansible.list:' || true # Override bash -e (instead of aborting at 1st error) echo -e "\napt update; apt install ansible-core and python3 dependencies explained at:" -echo -e "https://github.com/iiab/iiab/tree/master/scripts/ansible.md\n" +echo -e "https://github.com/iiab/iiab/blob/master/scripts/ansible.md\n" $APT_PATH/apt update $APT_PATH/apt -y install python3-pip pip3 install ansible-core From 58ee527fa5b02a7a4471443c6b6a602460744ca7 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 19 May 2021 11:38:58 -0400 Subject: [PATCH 18/20] Crystal Ball: Explain interim 'pip3 install ansible-core' at top of scripts/ansible --- scripts/ansible | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/scripts/ansible b/scripts/ansible index d1f0068c6..eacd3e156 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -11,6 +11,16 @@ APT_PATH=/usr/bin # Avoids problematic /usr/local/bin/apt on Linux Mint CURR_VER=undefined # Ansible version you currently have installed GOOD_VER=2.11.0 # Orig for 'yum install [rpm]' & XO laptops (pip install) +# 2021-05-19 PR #2743: As a result of Ansible / Red Hat / IBM's extensive +# delays in publishing the PPA (.deb installer files) for ansible-core, this +# file bypasses the apt approach (and associated PPA source) in favor of: +# +# pip3 install ansible-core +# +# What the future holds for 2022+ is not yet clear. So the apt approach (with +# PPA source in /etc/apt/sources.list.d and .gpg key etc) and much associated +# guidance/comments below are NOT being commented out or deleted at this time. + # We install the latest 'ansible-core' from PPA, using an OS 'CODENAME' below: # https://launchpad.net/~ansible/+archive/ubuntu/ansible From c26261752f2ff91b923e536b57f8bd629aaddd23 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 19 May 2021 12:28:14 -0400 Subject: [PATCH 19/20] Better explain how to verify your Ansible version/installation --- scripts/ansible | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/ansible b/scripts/ansible index eacd3e156..3bdf09f8c 100755 --- a/scripts/ansible +++ b/scripts/ansible @@ -178,4 +178,7 @@ ansible-galaxy collection install --force-with-deps \ #mkdir -p /etc/ansible # LIKELY REDUNDANT, due to above installation of Ansible #echo -e '[local]\nlocalhost\n' > /etc/ansible/hosts # LIKELY REDUNDANT, due to https://github.com/iiab/iiab/blob/master/ansible_hosts -echo -e "SUCCESS: VERIFY WITH 'ansible --version' (and 'apt -a list ansible-core' ?)\n\n" +echo -e "SUCCESS INSTALLING ANSIBLE! PLEASE VERIFY WITH COMMANDS LIKE:" +echo -e " ansible --version" +echo -e " pip show ansible-core" +echo -e " apt -a list ansible-core\n\n" From cb894b1a6ce27cb15944e05efbe416e508874b02 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 19 May 2021 12:53:43 -0400 Subject: [PATCH 20/20] .travis.yml: Refine explanations --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4535fb222..83c8131d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,8 +22,8 @@ addons: install: # - scripts/ansible # See #2105: fails to install latest Ansible (& ~4 Ansible Collections from collections.yml) due to Travis VM's disk layout/perms being different # - pip3 install ansible # SLOW / OVERWEIGHT: installs Ansible 4.0.0+ superset, with more than 80 (far more than we need) Ansible Collections - - pip3 install ansible-core # SIGNIFICANTLY FASTER than above apt install of ansible-core (in 'packages:' section above). APRIL 2021: ansible-base (2.10) was renamed to ansible-core (2.11+) with the latest version number shown at https://pypi.org/project/ansible-core/ - - ansible-galaxy collection install -r collections.yml # Install ~4 Ansible Collections + - pip3 install ansible-core # SIGNIFICANTLY FASTER than apt install of ansible-core (in 'packages:' section above). APRIL 2021: ansible-base (2.10) was renamed to ansible-core (2.11+) with the latest version number shown at https://pypi.org/project/ansible-core/ + - ansible-galaxy collection install -r collections.yml # Install ~4 Ansible Collections. Slow but nec, as per https://github.com/iiab/iiab/blob/master/scripts/ansible - echo 'roles_path = ./roles/' >> ansible.cfg # Add correct roles_path to ansible.cfg, appending to https://github.com/iiab/iiab/blob/master/ansible.cfg # - "{ echo '[defaults]'; echo 'roles_path = ./roles/'; } >> ansible.cfg" # 2021-02-24: suddenly no longer works, with the newer ansible-base -> ansible-core install methods above (error arises due to '[defaults]' appearing twice) - cat ansible.cfg # VISUAL VERIFICATION OF ABOVE!