Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
main.yml 2.46 KiB
---
- name: install jmasar dependencies
  yum:
    name: "{{ jmasar_required_packages }}"
    state: present

- name: create jmasar user to run the service
  user:
    name: jmasar
    system: true

- name: create jmasar directory
  file:
    path: /opt/jmasar
    state: directory
    owner: jmasar
    group: jmasar
    mode: 0750

- name: launch elasticsearch container
  docker_container:
    name: jmasar_elasticsearch
    image: "{{ jmasar_elasticsearch_image }}"
    pull: true
    state: started
    restart_policy: always
    published_ports: 127.0.0.1:9200:9200
    volumes:
      - "jmasar-elasticsearch-data:/usr/share/elasticsearch/data"
    env: "{{ jmasar_elasticsearch_env }}"
    ulimits:
      - "memlock:-1"
      - "nofile:65536:65536"
      - "nproc:4096:4096"

- name: install jmasar
  get_url:
    url: "{{ jmasar_url }}"
    dest: /opt/jmasar/jmasar-service.jar
    force: true
    owner: jmasar
    group: jmasar
    mode: 0644
  notify:
    - restart jmasar service

- name: create jmasar systemd service
  template:
    src: jmasar.service.j2
    dest: /etc/systemd/system/jmasar.service
    owner: root
    group: root
    mode: 0640
  notify:
    - restart jmasar service

- name: Wait for elasticsearch to start
  wait_for:
    port: 9200

- name: Wait for elasticsearch status to be yellow
  uri:
    url: http://localhost:9200/_cluster/health?wait_for_status=yellow
  register: jmasar_elasticsearch_health
  retries: 20
  delay: 3
  until: jmasar_elasticsearch_health.status == 200

- name: enable and start jmasar service
  systemd:
    name: jmasar.service
    daemon_reload: true
    enabled: true
    state: started

- name: create jmasar nginx configuration
  template:
    src: jmasar.conf.j2
    dest: /etc/nginx/conf.d/jmasar.conf
    owner: root
    group: root
    mode: 0644
  notify:
    - restart nginx

- name: enable and start nginx
  systemd:
    name: nginx
    enabled: true
    state: started

- name: run all handlers before to test the connection to the service
  meta: flush_handlers

- name: check that we can connect to the jmasar service locally
  uri:
    url: http://localhost:8080/version
  register: jmasar_web_request
  until: jmasar_web_request.status == 200
  retries: 10
  delay: 5
  tags:
    - jmasar-test

- name: check that we can connect to the jmasar service on port 80
  uri:
    url: http://{{ jmasar_server_name }}/version
  register: jmasar_web_request
  until: jmasar_web_request.status == 200
  retries: 10
  delay: 5
  tags:
    - jmasar-test