Ansible roles
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

115 lines
3.8 KiB

---
- name: Deploy configuration
template: src={{ item }}.j2 dest=/etc/crowdsec/{{ item }}
loop:
- config.yaml
- acquis.yaml
- simulation.yaml
- profile.yaml
- parsers/s02-enrich/trusted_ip.yaml
notify: reload crowdsec
tags: crowdsec
# Create the database
- import_tasks: ../includes/webapps_create_mysql_db.yml
vars:
- db_name: "{{ crowdsec_db_name }}"
- db_user: "{{ crowdsec_db_user }}"
- db_server: "{{ crowdsec_db_server }}"
- db_pass: "{{ crowdsec_db_pass }}"
tags: crowdsec
- when: crowdsec_lapi_pass is not defined
block:
- name: Declare on the local API
command: cscli machines add {{ crowdsec_lapi_user }} --auto --force --file /dev/stdout --output raw
register: crowdsec_lapi_credentials
delegate_to: "{{ crowdsec_lapi_server }}"
- set_fact: crowdsec_lapi_credentials_yaml={{ crowdsec_lapi_credentials.stdout | from_yaml }}
- copy: content={{ crowdsec_lapi_credentials_yaml.password }} dest=/etc/crowdsec/meta/lapi_pass mode=600
- set_fact: crowdsec_lapi_pass={{ crowdsec_lapi_credentials_yaml.password }}
tags: crowdsec
- when:
- crowdsec_capi_enabled
- crowdsec_capi_user is not defined or crowdsec_capi_pass is not defined
block:
- name: Register on the central API
command: cscli capi register -o raw -f /dev/stdout
register: crowdsec_capi_credentials
- set_fact: crowdsec_capi_credentials_yaml={{ crowdsec_capi_credentials.stdout | from_yaml }}
- copy: content={{ crowdsec_capi_credentials_yaml.login }} dest=/etc/crowdsec/meta/capi_user mode=600
- copy: content={{ crowdsec_capi_credentials_yaml.password }} dest=/etc/crowdsec/meta/capi_pass mode=600
- set_fact: crowdsec_capi_user={{ crowdsec_capi_credentials_yaml.login }}
- set_fact: crowdsec_capi_pass={{ crowdsec_capi_credentials_yaml.password }}
tags: crowdsec
- name: Deploy credentials config
template: src={{ item }}_api_credentials.yaml.j2 dest=/etc/crowdsec/{{ item }}_api_credentials.yaml mode=600
loop:
- online
- local
notify: restart crowdsec
tags: crowdsec
- name: List installed parsers
shell: cscli parsers list -o json
register: crowdsec_installed_parsers
changed_when: False
tags: crowdsec
- name: Install parsers
command: cscli parsers install {{ item }}
when: item not in crowdsec_installed_parsers.stdout | from_json | map(attribute='name') | list
loop: "{{ crowdsec_parsers }}"
notify: reload crowdsec
tags: crowdsec
- name: Upgrade parsers
command: csscli parsers upgrade {{ item }}
loop: "{{ crowdsec_parsers }}"
when: crowdsec_install_mode == 'upgrade'
notify: reload crowdsec
tags: crowdsec
- name: List installed scenarios
command: cscli scenarios list -o json
register: crowdsec_installed_scenarios
changed_when: False
tags: crowdsec
- name: Install scenarios
command: cscli scenarios install {{ item }}
when: item not in crowdsec_installed_scenarios.stdout | from_json | map(attribute='name') | list
loop: "{{ crowdsec_scenarios }}"
notify: reload crowdsec
tags: crowdsec
- name: Upgrade scenarios
command: csscli scenarios upgrade {{ item }}
loop: "{{ crowdsec_scenarios }}"
when: crowdsec_install_mode == 'upgrade'
notify: reload crowdsec
tags: crowdsec
- name: List installed postoverflows
command: cscli postoverflows list -o json
register: crowdsec_installed_postoverflows
changed_when: False
tags: crowdsec
- name: Install postoverflows
command: cscli postoverflows install {{ item }}
when: item not in crowdsec_installed_postoverflows.stdout | from_json | map(attribute='name') | list
loop: "{{ crowdsec_postoverflows }}"
notify: reload crowdsec
tags: crowdsec
- name: Upgrade postoverflows
command: csscli postoverflows upgrade {{ item }}
loop: "{{ crowdsec_postoverflows }}"
when: crowdsec_install_mode == 'upgrade'
notify: reload crowdsec
tags: crowdsec