--- - name: Validate the supported platform ansible.builtin.assert: that: - ansible_facts.distribution == "Ubuntu" - ansible_facts.distribution_version == "26.04" - ansible_facts.architecture in ["x86_64", "aarch64"] fail_msg: Audita supports Ubuntu 26.04 on x86_64 or aarch64. - name: Install Git become: true ansible.builtin.apt: name: git state: present update_cache: true cache_valid_time: 3600 when: audita_manage_build_dependencies - name: Install Go become: true community.general.snap: name: go channel: "{{ audita_go_snap_channel }}" classic: true state: present when: audita_manage_build_dependencies - name: Create installation parent directories become: true ansible.builtin.file: path: "{{ item }}" state: directory owner: root group: root mode: "0755" loop: - "{{ audita_source_dir | dirname }}" - "{{ audita_binary_path | dirname }}" - name: Create the Audita configuration directory become: true ansible.builtin.file: path: "{{ audita_config_path | dirname }}" state: directory owner: "{{ audita_config_owner }}" group: "{{ audita_config_group }}" mode: "{{ audita_config_directory_mode }}" - name: Check out Audita source become: true ansible.builtin.git: repo: "{{ audita_repository_url }}" dest: "{{ audita_source_dir }}" version: "{{ audita_version }}" force: true register: audita_checkout - name: Inspect the installed binary ansible.builtin.stat: path: "{{ audita_binary_path }}" register: audita_binary - name: Build Audita become: true ansible.builtin.command: argv: - "{{ audita_go_binary }}" - build - -trimpath - -ldflags - "-s -w -X gitea.maximumdirect.net/eric/audita/internal/buildinfo.Version={{ audita_version }}" - -o - "{{ audita_binary_path }}" - gitea.maximumdirect.net/eric/audita/cmd/audita chdir: "{{ audita_source_dir }}" environment: CGO_ENABLED: "0" GOTOOLCHAIN: local GOWORK: "off" changed_when: true when: >- audita_checkout.changed or not audita_binary.stat.exists - name: Converge installed metadata become: true ansible.builtin.file: path: "{{ item.path }}" state: "{{ item.state }}" owner: root group: root mode: "{{ item.mode | default(omit) }}" recurse: "{{ item.recurse | default(omit) }}" loop: - path: "{{ audita_source_dir }}" state: directory recurse: true - path: "{{ audita_binary_path }}" state: file mode: "0755" - name: Write Audita configuration become: true ansible.builtin.template: src: config.yml.j2 dest: "{{ audita_config_path }}" owner: "{{ audita_config_owner }}" group: "{{ audita_config_group }}" mode: "{{ audita_config_file_mode }}"