1 changed files with 110 additions and 0 deletions
@ -0,0 +1,110 @@ |
|||
--- |
|||
|
|||
- name: Reset the RHACS demo |
|||
hosts: localhost |
|||
gather_facts: no |
|||
vars: |
|||
ansible_connection: local |
|||
acs_api: https://{{ central_hostname }}/v1 |
|||
validate_certs: no |
|||
central_admin_password: "{{ lookup('env', 'ROX_ADMIN_PASSWORD' )}}" |
|||
central_hostname: "{{ lookup('env', 'ROX_CENTRAL_ENDPOINT' )}}" |
|||
jira_password: "{{ lookup('env', 'JIRA_PASSWORD' )}}" |
|||
tasks: |
|||
- assert: |
|||
that: |
|||
- central_admin_password|length > 0 |
|||
msg: > |
|||
Please pass your RHACS Admin Password in the 'central_admin_password' extra var |
|||
or in the ROX_ADMIN_PASSWORD environment variable. |
|||
|
|||
- assert: |
|||
that: |
|||
- central_hostname|length > 0 |
|||
msg: > |
|||
Please pass your RHACS Central hostname in the 'central_hostname' |
|||
extra var or in the ROX_CENTRAL_ENDPOINT environment variable. |
|||
|
|||
- assert: |
|||
that: |
|||
- jira_password|length > 0 |
|||
msg: > |
|||
Please pass your Jira Password in the 'jira_password' |
|||
extra var or in the JIRA_PASSWORD environment variable. |
|||
|
|||
- name: Check if jmespath is available locally |
|||
debug: msg={{ dummy|json_query('@') }} |
|||
register: check_jmespath |
|||
ignore_errors: yes |
|||
vars: |
|||
dummy: Hello World |
|||
|
|||
- name: Ensure JMESPath is installed |
|||
assert: |
|||
that: |
|||
- 'check_jmespath is success' |
|||
msg: > |
|||
The JMESPath library is required by this playbook. |
|||
Please install the JMESPath library with 'pip install jmespath'. |
|||
|
|||
- name: Find notifiers |
|||
uri: |
|||
url: '{{ acs_api }}/notifiers' |
|||
validate_certs: '{{ validate_certs }}' |
|||
url_username: admin |
|||
url_password: '{{ central_admin_password }}' |
|||
force_basic_auth: yes |
|||
register: find_notifier_response |
|||
changed_when: false |
|||
|
|||
- name: Read system time |
|||
setup: |
|||
gather_subset: |
|||
- min |
|||
|
|||
- set_fact: |
|||
notifier: '{{ patched_notifier | combine({ "name": "Jira-" ~ ansible_date_time.epoch, "id": "" }) }}' |
|||
notifiers: '{{ find_notifier_response.json|json_query(query) }}' |
|||
vars: |
|||
patched_notifier: '{% if first_notifier.jira.update({"password": jira_password}) %}{% endif %}{{first_notifier}}' |
|||
first_notifier: '{{ find_notifier_response.json|json_query(query)|first }}' |
|||
query: > |
|||
notifiers[?type == `jira`] |
|||
|
|||
- name: Make a copy of the Jira notifier |
|||
uri: |
|||
url: '{{ acs_api }}/notifiers' |
|||
method: POST |
|||
status_code: "200" |
|||
validate_certs: '{{ validate_certs }}' |
|||
url_username: admin |
|||
url_password: '{{ central_admin_password }}' |
|||
body: '{{ notifier }}' |
|||
body_format: json |
|||
force_basic_auth: yes |
|||
register: create_notifier_response |
|||
changed_when: create_notifier_response.status == 200 |
|||
vars: |
|||
notifier: '{{ notifiers | first | }}' |
|||
|
|||
- name: Delete all Jira notifiers |
|||
uri: |
|||
url: '{{ acs_api }}/notifiers/{{ item.id }}' |
|||
method: DELETE |
|||
status_code: "200,404" |
|||
validate_certs: '{{ validate_certs }}' |
|||
url_username: admin |
|||
url_password: '{{ central_admin_password }}' |
|||
force_basic_auth: yes |
|||
register: delete_notifier_response |
|||
changed_when: delete_notifier_response.status == 200 |
|||
with_items: '{{ notifiers }}' |
|||
loop_control: |
|||
label: '{{ item.name }}' |
|||
|
|||
- name: Create the Policy template |
|||
template: |
|||
src: '{{ playbook_dir }}/../policy/log4shell.json.template' |
|||
dest: '{{ playbook_dir }}/../policy/log4shell.json' |
|||
vars: |
|||
notifier_id: '{{ create_notifier_response.json.id }}' |
|||
Loading…
Reference in new issue