From 05e8a62736211241f7763d7682747ee77e3826df Mon Sep 17 00:00:00 2001 From: A Holt Date: Tue, 11 Feb 2020 16:31:30 -0500 Subject: [PATCH 1/3] Update internetarchive/tasks/main.yml --- roles/internetarchive/tasks/main.yml | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/roles/internetarchive/tasks/main.yml b/roles/internetarchive/tasks/main.yml index 538041ed8..190880cf0 100644 --- a/roles/internetarchive/tasks/main.yml +++ b/roles/internetarchive/tasks/main.yml @@ -19,27 +19,30 @@ quiet: yes -#- name: Set --reinstall fact -# set_fact: -# internetarchive_upgrade: True -# when: reinstall is defined +# 2020-02-11: @mitra42 & @holta agree (#2247) that the following 2-stanza +# "UPDATE internetarchive" block should run whenever one is isn't installing +# (or reinstalling) internetarchive, for now. We're aware this means slowness +# during "./runrole internetarchive" but that's very intentional for now -- as +# it leads to more testing of more recent versions of internetarchive, which +# is strongly desired. Finally, these current norms can and probably will be +# changed in future, when broader IIAB norms develop around "./runrole +# --upgrade internetarchive" or "./runrole --update internetarchive" or such, +# as may evolve @ https://github.com/iiab/iiab/pull/2238#discussion_r376168178 -- block: # UPDATE IF... internetarchive_installed is defined and internet_available +- block: # BEGIN 2-STANZA BLOCK - - name: Stop 'internetarchive' systemd service, if internetarchive_upgrade + - name: "UPGRADE: Stop 'internetarchive' systemd service, if internetarchive_installed is defined and internet_available" systemd: name: internetarchive daemon_reload: yes state: stopped - #when: internetarchive_enabled and internetarchive_upgrade - - name: Update pre-existing install (yarn upgrade) if internetarchive_upgrade + - name: "UPGRADE: Run 'yarn upgrade' in {{ internetarchive_dir }}, if internetarchive_installed is defined and internet_available" shell: yarn config set child-concurrency 1 && yarn install && yarn upgrade args: chdir: "{{ internetarchive_dir }}" - #when: internetarchive_enabled and internetarchive_upgrade - when: internetarchive_installed is defined and internet_available # END BLOCK + when: internetarchive_installed is defined and internet_available # END 2-STANZA BLOCK # "ELSE" INSTALL... From b106183c52a153db218b1c2bd49432df5d286457 Mon Sep 17 00:00:00 2001 From: A Holt Date: Tue, 11 Feb 2020 16:42:56 -0500 Subject: [PATCH 2/3] Update internetarchive/tasks/install.yml --- roles/internetarchive/tasks/install.yml | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/roles/internetarchive/tasks/install.yml b/roles/internetarchive/tasks/install.yml index 4969ca536..3985956a9 100644 --- a/roles/internetarchive/tasks/install.yml +++ b/roles/internetarchive/tasks/install.yml @@ -1,4 +1,4 @@ -# INSTALL 3 PREREQS +# 1. INSTALL 3 PREREQS - name: "Set 'nodejs_install: True' and 'nodejs_enabled: True'" set_fact: @@ -29,44 +29,43 @@ state: present -# CREATE 2 DIRS & RUN YARN +# 2. CREATE 2 DIRS, WIPE /opt/iiab/internetarchive/node_modules & RUN YARN - name: mkdir {{ internetarchive_dir }} file: state: directory path: "{{ internetarchive_dir }}" # /opt/iiab/internetarchive - # owner: root -- name: Run yarn install to populate {{ internetarchive_dir }}/node_modules (CAN TAKE ~15 MINUTES) +- name: Wipe dir {{ internetarchive_dir }}/node_modules (and its contents, typically 112+ MB) so './runrole --reinstall internetarchive' gets you the latest code + file: + state: absent + path: "{{ internetarchive_dir }}/node_modules" + +- name: Run 'yarn add @internetarchive/dweb-mirror' to download/populate {{ internetarchive_dir }}/node_modules (CAN TAKE ~15 MINUTES) shell: yarn config set child-concurrency 1 && yarn add @internetarchive/dweb-mirror args: chdir: "{{ internetarchive_dir }}" creates: "{{ internetarchive_dir }}/node_modules/@internetarchive/dweb-mirror/internetarchive" when: internet_available | bool - # register: internetarchive_installing - name: mkdir {{ content_base }}/archiveorg file: state: directory path: "{{ content_base }}/archiveorg" # /library - # owner: root -# CONFIG FILES +# 3. CONFIG FILES - name: "Install from templates: /etc/systemd/system/internetarchive.service, /etc/{{ apache_conf_dir }}/internetarchive.conf" template: src: "{{ item.src }}" dest: "{{ item.dest }}" - # owner: root - # group: root - # mode: '0644' with_items: - { src: 'internetarchive.service.j2', dest: '/etc/systemd/system/internetarchive.service' } - { src: 'internetarchive.conf', dest: '/etc/{{ apache_conf_dir }}/internetarchive.conf' } # apache2/sites-available -# RECORD Internet Archive AS INSTALLED +# 4. RECORD Internet Archive AS INSTALLED - name: "Set 'internetarchive_installed: True'" set_fact: From ad740adadb2a9b928d80371acb9760d5b9515a1e Mon Sep 17 00:00:00 2001 From: A Holt Date: Tue, 11 Feb 2020 16:51:03 -0500 Subject: [PATCH 3/3] Cleaner /opt/iiab/iiab/runrole --- runrole | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/runrole b/runrole index 8fc644e0c..6f49f6319 100755 --- a/runrole +++ b/runrole @@ -7,6 +7,7 @@ REINSTALL=0 CWD=`pwd` IIAB_STATE_FILE=/etc/iiab/iiab_state.yml LOCAL_VARS_FILE=/etc/iiab/local_vars.yml + if [ ! -f $PLAYBOOK ]; then echo "Exiting: IIAB Playbook not found." echo "Please run this in /opt/iiab/iiab (top level of the git repo)." @@ -61,19 +62,15 @@ fi #fi if [ "$REINSTALL" == "1" ]; then - #if [ ! $1 == "internetarchive" ]; then # special handling - if [ $1 == "calibre-web" ]; then # role directory & installed marker differ - sed -i -e '/^calibreweb/d' $IIAB_STATE_FILE - elif [ $1 == "httpd" ]; then # role directory & installed marker differ - sed -i -e '/^apache/d' $IIAB_STATE_FILE - elif [ $1 == "osm-vector-maps" ]; then # role directory & installed marker differ - sed -i -e '/^osm_vector_maps/d' $IIAB_STATE_FILE - #elif [ $1 == "bluetooth" ]; then # role directory & installed marker differ - # sed -i -e '/^pan_bluetooth/d' $IIAB_STATE_FILE - else - sed -i -e "/^$1/d" $IIAB_STATE_FILE - fi - #fi + if [ $1 == "calibre-web" ]; then # role directory & installed marker differ + sed -i -e '/^calibreweb/d' $IIAB_STATE_FILE + elif [ $1 == "httpd" ]; then # role directory & installed marker differ + sed -i -e '/^apache/d' $IIAB_STATE_FILE + elif [ $1 == "osm-vector-maps" ]; then # role directory & installed marker differ + sed -i -e '/^osm_vector_maps/d' $IIAB_STATE_FILE + else + sed -i -e "/^$1/d" $IIAB_STATE_FILE + fi fi if [ $# -eq 2 ]; then