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