# 1. INSTALL MongoDB PACKAGES OR BINARIES - name: "Install packages: mongodb, mongodb-server (not rpi)" package: name: - mongodb-server - mongodb # 2019-01-31: this package does not exist on (cannot be installed on) Debian 10, SEE #1437 state: present when: internet_available and not is_rpi # 2019-02-02: Sugarizer with Node.js 10.x requires MongoDB 2.6+ so # https://andyfelong.com/2017/08/mongodb-3-0-14-for-raspbian-stretch/ # is being used on RPi, all I found! (Raspbian's apt pkg is MongoDB 2.4.14) # # mongodb_stretch_3_0_14_core.zip (20M) & mongodb_stretch_3_0_14_tools.zip (15M) # were backed up from andyfelong.com to http://download.iiab.io/packages/ # # CLARIF: mongodb_stretch_3_0_14_core.zip IS IN FACT 3.0.14 (core) BUT... # mongodb_stretch_3_0_14_tools.zip IS REALLY 3.0.15 (tools) - name: Create dir /tmp/mongodb-3.0.1x (rpi) file: path: /tmp/mongodb-3.0.1x state: directory when: internet_available and is_rpi - name: Download & unzip 20MB http://download.iiab.io/packages/mongodb_stretch_3_0_14_core.zip to /tmp/mongodb-3.0.1x (rpi) unarchive: remote_src: yes src: "{{ iiab_download_url }}/mongodb_stretch_3_0_14_core.zip" dest: /tmp/mongodb-3.0.1x when: internet_available and is_rpi - name: Install (move) its 3 CORE binaries from /tmp/mongodb-3.0.1x/core to /usr/bin (rpi) shell: mv /tmp/mongodb-3.0.1x/core/* /usr/bin when: internet_available and is_rpi - name: Download & unzip 15MB http://download.iiab.io/packages/mongodb_stretch_3_0_14_tools.zip [IN FACT THIS ONE'S 3.0.15] to /tmp/mongodb-3.0.1x (rpi) unarchive: remote_src: yes src: "{{ iiab_download_url }}/mongodb_stretch_3_0_14_tools.zip" dest: /tmp/mongodb-3.0.1x when: internet_available and is_rpi - name: Install (move) its 9 TOOLS binaries from /opt/iiab/downloads/mongodb-3.0.1x/tools to /usr/bin (rpi) shell: mv /tmp/mongodb-3.0.1x/tools/* /usr/bin when: internet_available and is_rpi # OLD WAY / MUCH SLOWER: had put unnec duplicate copies in /opt/iiab/downloads/mongodb-3.0.1x # #- name: Create dir /opt/iiab/downloads/mongodb-3.0.1x (rpi) # file: # path: "{{ downloads_dir }}/mongodb-3.0.1x" # state: directory # when: internet_available and is_rpi # #- name: Download & unzip MongoDB 3.0.14's 3 core binaries to /opt/iiab/downloads/mongodb-3.0.1x (rpi) # unarchive: # remote_src: yes # src: "{{ iiab_download_url }}/mongodb_stretch_3_0_14_core.zip" # dest: "{{ downloads_dir }}/mongodb-3.0.1x" # when: internet_available and is_rpi # #- name: Install (copy) 3 binaries from /opt/iiab/downloads/mongodb-3.0.1x/core to /usr/bin (rpi) # copy: # src: "{{ item }}" # dest: /usr/bin # with_fileglob: # - "{{ downloads_dir }}/mongodb-3.0.1x/core/*" # when: internet_available and is_rpi # #- name: Download & unzip MongoDB 3.0.15's 9 tools binaries to /opt/iiab/downloads/mongodb-3.0.1x (rpi) # unarchive: # remote_src: yes # src: "{{ iiab_download_url }}/mongodb_stretch_3_0_14_tools.zip" # dest: "{{ downloads_dir }}/mongodb-3.0.1x" # when: internet_available and is_rpi # #- name: Install (copy) 9 binaries from /opt/iiab/downloads/mongodb-3.0.1x/tools to /usr/bin (rpi) # copy: # src: "{{ item }}" # dest: /usr/bin # with_fileglob: # - "{{ downloads_dir }}/mongodb-3.0.1x/tools/*" # when: internet_available and is_rpi - name: Create Linux group mongodb (rpi) group: name: mongodb state: present when: is_rpi | bool - name: Create Linux user mongodb (rpi) user: name: mongodb group: mongodb # primary group groups: mongodb home: /var/lib/mongodb shell: /usr/sbin/nologin when: is_rpi | bool # 2. CONFIGURE MongoDB FOR IIAB - name: 'Create 3 dirs for MongoDB: /var/lib/mongodb, /var/log/mongodb, {{ mongodb_db_path }}' file: state: directory path: "{{ item }}" owner: mongodb group: mongodb with_items: #- { path: '/var/run/mongodb' } - /var/lib/mongodb - /var/log/mongodb - "{{ mongodb_db_path }}" # i.e. /library/dbdata/mongodb/ - name: Install /etc/mongod.conf, mongodb.service, /usr/bin/iiab-mongodb-repair-if-no-lock from templates template: src: "{{ item.src }}" dest: "{{ item.dest }}" owner: root group: root mode: "{{ item.mode }}" with_items: - { src: 'mongod.conf.j2', dest: "{{ mongodb_conf }}", mode: '0644' } # i.e. /etc/mongod.conf - { src: 'mongodb.service.j2', dest: '/etc/systemd/system/mongodb.service', mode: '0644' } - { src: 'iiab-mongodb-repair-if-no-lock.j2', dest: '/usr/bin/iiab-mongodb-repair-if-no-lock', mode: '0755' } # 3. RECORD MongoDB AS INSTALLED - name: "Set 'mongodb_installed: True'" set_fact: mongodb_installed: True - name: "Add 'mongodb_installed: True' to {{ iiab_state_file }}" lineinfile: dest: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml regexp: '^mongodb_installed' line: 'mongodb_installed: True'