75 lines
2.1 KiB
YAML
75 lines
2.1 KiB
YAML
|
|
---
|
||
|
|
- name: Install DATUM Gateway build dependencies
|
||
|
|
apt:
|
||
|
|
name:
|
||
|
|
- cmake
|
||
|
|
- build-essential
|
||
|
|
- git
|
||
|
|
- libjansson-dev
|
||
|
|
- libmicrohttpd-dev
|
||
|
|
- libsodium-dev
|
||
|
|
- libcurl4-openssl-dev
|
||
|
|
# Runtime-only (netcat for health check)
|
||
|
|
- netcat-openbsd
|
||
|
|
state: present
|
||
|
|
update_cache: yes
|
||
|
|
|
||
|
|
# ===========================================
|
||
|
|
# System User and Directories
|
||
|
|
# ===========================================
|
||
|
|
- name: Create datum system user
|
||
|
|
user:
|
||
|
|
name: "{{ datum_gateway_user }}"
|
||
|
|
system: yes
|
||
|
|
shell: /usr/sbin/nologin
|
||
|
|
home: "{{ datum_gateway_dir }}"
|
||
|
|
create_home: no
|
||
|
|
comment: "DATUM Gateway"
|
||
|
|
|
||
|
|
- name: Create DATUM Gateway directories
|
||
|
|
file:
|
||
|
|
path: "{{ item.path }}"
|
||
|
|
state: directory
|
||
|
|
owner: "{{ item.owner }}"
|
||
|
|
group: "{{ datum_gateway_group }}"
|
||
|
|
mode: "{{ item.mode }}"
|
||
|
|
loop:
|
||
|
|
- { path: "{{ datum_gateway_dir }}", owner: root, mode: "0755" }
|
||
|
|
- { path: "{{ datum_gateway_source_dir }}", owner: root, mode: "0755" }
|
||
|
|
- { path: "{{ datum_gateway_config_dir }}", owner: "{{ datum_gateway_user }}", mode: "0750" }
|
||
|
|
- { path: "{{ datum_gateway_log_dir }}", owner: "{{ datum_gateway_user }}", mode: "0750" }
|
||
|
|
|
||
|
|
# ===========================================
|
||
|
|
# Build from Source
|
||
|
|
# ===========================================
|
||
|
|
- name: Clone DATUM Gateway repository at {{ datum_gateway_version }}
|
||
|
|
git:
|
||
|
|
repo: https://github.com/OCEAN-xyz/datum_gateway.git
|
||
|
|
dest: "{{ datum_gateway_source_dir }}"
|
||
|
|
version: "{{ datum_gateway_version }}"
|
||
|
|
force: yes
|
||
|
|
register: git_clone
|
||
|
|
|
||
|
|
- name: Configure cmake build
|
||
|
|
command: cmake . -DCMAKE_BUILD_TYPE=Release
|
||
|
|
args:
|
||
|
|
chdir: "{{ datum_gateway_source_dir }}"
|
||
|
|
|
||
|
|
- name: Compile datum_gateway
|
||
|
|
command: make -j{{ datum_gateway_build_jobs }}
|
||
|
|
args:
|
||
|
|
chdir: "{{ datum_gateway_source_dir }}"
|
||
|
|
|
||
|
|
- name: Install datum_gateway binary
|
||
|
|
copy:
|
||
|
|
src: "{{ datum_gateway_source_dir }}/datum_gateway"
|
||
|
|
dest: "{{ datum_gateway_bin_path }}"
|
||
|
|
remote_src: yes
|
||
|
|
owner: root
|
||
|
|
group: root
|
||
|
|
mode: "0755"
|
||
|
|
notify: Restart datum-gateway
|
||
|
|
|
||
|
|
# ===========================================
|
||
|
|
# Configuration
|