- name: 'Install packages: mongodb, mongodb-server'
  package:
    name:
      - mongodb-server
      - mongodb
    state: present
  when: internet_available
  tags:
    - download

- name: Create 3 dirs for MongoDB
  file:
    state: directory
    path: "{{ item.path }}"
    owner: mongodb
  with_items:
    - { path: '/var/run/mongodb' }
    - { path: "{{ mongodb_db_path }}" }    # == /library/dbdata/mongodb/
    - { path: '/var/log/mongodb' }

- name: Populate & position /etc/mongod.conf, mongodb.service, /usr/bin/iiab-mongodb-repair-if-no-lock
  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' }
    - { 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' }

- name: Enable & Restart 'mongodb' systemd service if mongodb_enabled, incl daemon-reload (in case mongodb.service changed?)
  systemd:
    name: mongodb
    enabled: yes
    state: restarted
    daemon_reload: yes
  when: mongodb_enabled

- name: Disable 'mongodb' service, if not mongodb_enabled
  systemd:
    name: mongodb
    enabled: no
    state: stopped
  when: not mongodb_enabled

- 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 }}"
