---
- hosts: tag_role_couchbase
  become: yes
  become_user: root
  become_method: sudo
  tasks:
    - name: Update all packages
      ansible.builtin.yum:
        name: "*"
        state: latest
        update_only: yes

    - name: Add extras repository
      ansible.builtin.shell: yum-config-manager --enable extras

    - name: Install docker-ce (centos) via amazon-linux-extras packages
      ansible.builtin.shell: "amazon-linux-extras install docker=stable -y"

    - name: Enable Docker CE service at startup
      ansible.builtin.service:
        name: docker
        state: started
        enabled: yes

    - name: adding ec2-user to group docker
      user:
        name: 'ec2-user'
        groups: docker
        append: yes

    - name: Add or modify hard nofile limits for wildcard domain
      community.general.pam_limits:
        domain: '*'
        limit_type: '-'
        limit_item: nofile
        value: 200000

    - name: Add or modify memlock, both soft and hard, limit for wildcard domain
      community.general.pam_limits:
        domain: '*'
        limit_type: '-'
        limit_item: memlock
        value: unlimited

    - name: Install python packages
      ansible.builtin.pip:
        name: "{{ packages }}"
        executable: "/usr/bin/pip3"
      vars:
        packages:
          - docker-py

    - name: Add a container with CouchBase
      community.docker.docker_container:
        name: db
        image: couchbase/server:4.1.2
        volumes:
          - /home/ec2-user/couchbase:/opt/couchbase/var
        ulimits:
          - nofile:200000:200000
          - core:3000000:3000000
          - memlock:3000000:3000000
        #restart_policy: "unless-stopped"
        network_mode: host
        state: started
        memory_swap: -1

  roles:
    - role: geerlingguy.swap
      swap_file_size_mb: '8192'
