- name: Preparing non-containerized Crowdsec
  when: not crowdsec.containerized
  block:
    - name: Changing the address and port of the Crowdsec server
      become: true
      ansible.builtin.lineinfile:
        path: /etc/crowdsec/config.yaml
        insertafter: EOF
        regexp: "^ {4}listen_uri"
        line: "    listen_uri: localhost:{{ crowdsec.port }}"
        owner: root
        group: root
        mode: "644"
    - name: Changing the address of the Crowdsec Prometheus server
      become: true
      ansible.builtin.lineinfile:
        path: /etc/crowdsec/config.yaml
        regexp: "^ {2}listen_addr"
        insertafter: EOF
        line: "  listen_addr: localhost"
        owner: root
        group: root
        mode: "644"
    - name: Changing target or expected address for credentials of the Crowdsec local API 
      become: true
      ansible.builtin.lineinfile:
        path: /etc/crowdsec/local_api_credentials.yaml
        insertafter: EOF
        regexp: "^url"
        line: "url: http://localhost:{{ crowdsec.port }}"
        owner: root
        group: root
        mode: "644"
    - name: Restarting SystemD service
      become: true
      ansible.builtin.systemd_service:
        name: crowdsec
        scope: system
        state: restarted
    - name: Adding remediation component or bouncer
      ansible.builtin.command:
        cmd: "cscli bouncers add {{ item }}"
      loop: "{{ crowdsec.bouncers }}"
    - name: Installing Crowdsec collections
      ansible.builtin.command:
        cmd: "cscli collections install {{ item }}"
      loop: "{{ crowdsec.colls }}"
    - name: Installing Crowdsec parsers
      ansible.builtin.command:
        cmd: "cscli parsers install {{ item }}"
      loop: "{{ crowdsec.parsers }}"
    - name: Installing Crowdsec scenarios
      ansible.builtin.command:
        cmd: "cscli scenarios install {{ item }}"
      loop: "{{ crowdsec.scenarios }}"
    - name: Installing Crowdsec postoverflows
      ansible.builtin.command:
        cmd: "cscli postoverflows install {{ item }}"
      loop: "{{ crowdsec.postoverflows }}"
    - name: Restarting SystemD service
      become: true
      ansible.builtin.systemd_service:
        name: crowdsec
        scope: system
        state: restarted