- name: Record (initial) disk space used shell: df -B1 --output=used / | tail -1 register: df1 # - name: Fail if architecture remoteit_device_suffix == "unknown" # fail: # msg: "Could not find a remote.it Device Package (.deb) for CPU architecture \"{{ ansible_architecture }}\"" # when: remoteit_device_suffix == "unknown" # - name: mkdir {{ downloads_dir }} # As roles/2-common/tasks/fl.yml has not run yet # file: # path: "{{ downloads_dir }}" # /opt/iiab/downloads # state: directory # - name: Download {{ remoteit_device_url }} (Device Package) for arch {{ remoteit_device_suffix }} into {{ downloads_dir }}/ # get_url: # url: "{{ remoteit_device_url }}" # dest: "{{ downloads_dir }}/" # force: yes # timeout: "{{ download_timeout }}" # 2022-04-03: Unfort still necessary, as their install_agent.sh below uses apt # with 'install -y' instead of '-y reinstall' or '-y --reinstall install' # FWIW: Some remoteit.*.deb installers also work with '-y --allow-downgrades install' # (e.g. *.amd64.deb) but others (e.g. both *.rpi.deb) do not. - name: Purge previously installed 'remoteit*' Device Package(s) apt: name: remoteit* state: absent purge: yes ignore_errors: yes # Speeds things up a bit, deferring online claim code generation if not nec: # https://docs.remote.it/oem-and-bulk-provisioning/registration-into-a-users-account # - name: "'mkdir /etc/remoteit' e.g. if your 'remoteit_license_key: 592AA9BB-XXXX-YYYY-ZZZZ-6E27654C3DF6' exists in /etc/iiab/local_vars.yml" # file: # state: directory # path: /etc/remoteit # when: remoteit_license_key is defined # - name: "'touch /etc/remoteit/registration' e.g. if your 'remoteit_license_key: 592AA9BB-XXXX-YYYY-ZZZZ-6E27654C3DF6' exists in /etc/iiab/local_vars.yml" # file: # state: touch # path: /etc/remoteit/registration # when: remoteit_license_key is defined - name: "'mkdir /etc/remoteit'" file: state: directory path: /etc/remoteit - name: "'touch /etc/remoteit/registration' (might contain a remoteit_license_key) to prevent generation of claim code below; also speeding things up a bit" file: state: touch path: /etc/remoteit/registration # - name: "Install Device Package: {{ downloads_dir }}/{{ remoteit_deb }}" # apt: # deb: "{{ downloads_dir }}/{{ remoteit_deb }}" # - name: "Install Device Package: {{ remoteit_device_url }}" # apt: # deb: "{{ remoteit_device_url }}" # 2022-04-29: https://downloads.remote.it/remoteit/install_agent.sh refuses to # install on Mint as "ID_LIKE=ubuntu" in /etc/os-release is lowercase. So we # add a tag with the word 'Ubuntu' containing an uppercase 'U' as a workaround. # (This hack can later be removed, if remote.it adjusts install_agent.sh above) - name: If Linux Mint, add "IIAB_LIKE=Ubuntu" to /etc/os-release to force install of remote.it # shell: echo "IIAB_LIKE=Ubuntu" >> /etc/os-release lineinfile: path: /etc/os-release line: IIAB_LIKE=Ubuntu when: is_linuxmint # - name: Install remote.it Device Package for your CPU/OS, using https://downloads.remote.it/remoteit/install_agent.sh -- this puts a claim code in /etc/remoteit/config.json which is valid for 24h - name: Install remote.it Device Package for your CPU/OS, using https://downloads.remote.it/remoteit/install_agent.sh shell: curl -L https://downloads.remote.it/remoteit/install_agent.sh | sh # 2022-06-29: Ansible misinterprets "IIAB_LIKE=Ubuntu" (interpreting the entire # OS as Ubuntu instead of Mint, on later Ansible runs) so let's remove line now. - name: If Linux Mint, remove above "IIAB_LIKE=Ubuntu" from /etc/os-release (for Ansible's sloppy OS recognition logic) lineinfile: path: /etc/os-release line: IIAB_LIKE=Ubuntu state: absent when: is_linuxmint # 2022-10-09: Let's keep the file (empty or not!) If it exists with size zero # bytes, enable-or-disable.yml or /usr/bin/iiab-remoteit delete it later as nec. # - name: "'rm /etc/remoteit/registration' (empty file used just above)" # file: # state: absent # path: /etc/remoteit/registration # ignore_errors: yes # In case a future version of install_agent.sh deletes it for us - name: Install /usr/bin/iiab-remoteit from template -- so IIAB operators can quickly enable remote.it AND generate a new remote.it claim code (in /etc/remoteit/config.json) -- optionally downloading + installing the very latest Device Package (like the 2 steps above) template: src: iiab-remoteit dest: /usr/bin mode: 0755 - name: Install /usr/bin/iiab-remoteit-off from template -- so IIAB operators can quickly turn off AND disable remote.it services on this IIAB template: src: iiab-remoteit-off dest: /usr/bin mode: 0755 # 2023-07-26: Remote.It CLI used to coexist fine with their "Device Package" # e.g. it worked with remoteit apt package 4.17.12 in Q2 2023. # But no longer--with remoteit apt package 4.18.4 (in Q3 2023) which fails to # install with error: "Device Package cannot coexist with Remote.It CLI" # # - name: Fail if architecture remoteit_arch == "unknown" # fail: # msg: "Could not find a remote.it CLI binary for CPU architecture \"{{ ansible_architecture }}\"" # when: remoteit_arch == "unknown" # # - name: Download OPTIONAL {{ remoteit_cli_url }} (CLI) to /usr/bin/remoteit (755) # get_url: # url: "{{ remoteit_cli_url }}" # e.g. https://downloads.remote.it/cli/latest/remoteit.{{ remoteit_arch }}-linux # dest: /usr/bin/remoteit # mode: 0755 # force: yes # timeout: "{{ download_timeout }}" # RECORD remote.it AS INSTALLED - name: Record (final) disk space used shell: df -B1 --output=used / | tail -1 register: df2 - name: Add 'remoteit_disk_usage = {{ df2.stdout|int - df1.stdout|int }}' to {{ iiab_ini_file }} ini_file: path: "{{ iiab_ini_file }}" # /etc/iiab/iiab.ini section: remoteit option: remoteit_disk_usage value: "{{ df2.stdout|int - df1.stdout|int }}" - name: "Set 'remoteit_installed: True'" set_fact: remoteit_installed: True - name: "Add 'remoteit_installed: True' to {{ iiab_state_file }}" lineinfile: path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml regexp: '^remoteit_installed' line: 'remoteit_installed: True'