mirror of
				https://github.com/iiab/iiab.git
				synced 2025-03-09 15:40:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			168 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			168 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # 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
 | |
|   tags:
 | |
|     - download
 | |
| 
 | |
| # 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 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. ENABLE/DISABLE
 | |
| 
 | |
| # 2019-07-08: mongodb_install is completely ignored.  FYI mongodb_enabled: False
 | |
| # works but is ineffective, as Sugarizer starts mongodb's systemd svc on its own
 | |
| 
 | |
| - name: Enable & Restart 'mongodb' systemd service if mongodb_enabled, incl daemon-reload (in case mongodb.service changed?)
 | |
|   systemd:
 | |
|     name: mongodb
 | |
|     daemon_reload: yes
 | |
|     enabled: yes
 | |
|     state: restarted
 | |
|   when: mongodb_enabled | bool
 | |
| 
 | |
| - name: Disable 'mongodb' service, if not mongodb_enabled
 | |
|   systemd:
 | |
|     name: mongodb
 | |
|     daemon_reload: yes
 | |
|     enabled: no
 | |
|     state: stopped
 | |
|   when: not mongodb_enabled
 | |
| 
 | |
| 
 | |
| # 4. DOCUMENT IN /etc/iiab/iiab.ini
 | |
| 
 | |
| - name: Add 'mongodb' variable values to {{ iiab_ini_file }}
 | |
|   ini_file:
 | |
|     path: "{{ iiab_ini_file }}"
 | |
|     section: mongodb
 | |
|     option: "{{ item.option }}"
 | |
|     value: "{{ item.value }}"
 | |
|   with_items:
 | |
|     - option: name
 | |
|       value: MongoDB
 | |
|     - option: description
 | |
|       value: '"MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling."'
 | |
|     - option: enabled
 | |
|       value: "{{ mongodb_enabled }}"
 |