---
- name: Adding Debian OpenNebula GPG key
  apt_key: url='https://downloads.opennebula.io/repo/repo.key' state=present
  when: ansible_os_family == "Debian"

# Note, using http instead of https so apt-cacher-ng may cache the repo
- name: Adding Debian 10 OpenNebula repository
  apt_repository: repo='deb http://downloads.opennebula.io/repo/6.2/Debian/10 stable opennebula' state=present
  when: ansible_os_family == "Debian" and ansible_distribution_major_version == "10"

- name: Adding Debian 11 OpenNebula repository
  apt_repository: repo='deb http://downloads.opennebula.io/repo/6.2/Debian/11 stable opennebula' state=present
  when: ansible_os_family == "Debian" and ansible_distribution_major_version == "11"

# Install OpenNebula
- name: Installing OpenNebula controller applications
  apt:
    update_cache: yes
    state: present
    name:
      - opennebula
      - opennebula-sunstone
      - opennebula-fireedge
      - opennebula-gate
      - opennebula-flow
      - opennebula-provision

# NOTE: OpenNebula daemons do NOT start after install, contrary to how most other debian packages behave.
# This is good as we want to set passwords and other configurations before we start OpenNebula for the first time.

# Set permissions on /var/lib/one folder
- name: Ensuring permissions on /var/lib/one directory
  file:
    path: /var/lib/one
    state: directory
    owner: oneadmin
    group: oneadmin
    mode: '0755'

# Create /var/lib/one/.ssh folder
- name: Creating /var/lib/one/.ssh directory
  file:
    path: /var/lib/one/.ssh
    state: directory
    owner: oneadmin
    group: oneadmin
    mode: '0755'

# Create /var/log/one folder or the daemon will not start
- name: Creating /var/log/one directory
  file:
    path: /var/log/one
    state: directory
    owner: oneadmin
    group: oneadmin
    mode: '0755'

# Copy ssh client config for oneadmin user
- name: Copying oneadmin SSH client config
  copy:
    src: 'files/ssh.config'
    dest: '/var/lib/one/.ssh/config'
    owner: 'oneadmin'
    group: 'oneadmin'
    mode: '0644'
