mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
138 lines
5.2 KiB
YAML
138 lines
5.2 KiB
YAML
|
---
|
||
|
####################################################################
|
||
|
# WARNING: These are designed specifically for Ansible tests #
|
||
|
# and should not be used as examples of how to write Ansible roles #
|
||
|
####################################################################
|
||
|
- when: has_java_keytool
|
||
|
block:
|
||
|
- name: Create private keys
|
||
|
community.crypto.openssl_privatekey:
|
||
|
path: "{{ output_dir ~ '/' ~ (item.keyname | default(item.name)) ~ '.key' }}"
|
||
|
size: 2048 # this should work everywhere
|
||
|
# The following is more efficient, but might not work everywhere:
|
||
|
# type: ECC
|
||
|
# curve: secp384r1
|
||
|
cipher: "{{ 'auto' if item.passphrase is defined else omit }}"
|
||
|
passphrase: "{{ item.passphrase | default(omit) }}"
|
||
|
loop:
|
||
|
- name: cert
|
||
|
- name: cert-pw
|
||
|
passphrase: hunter2
|
||
|
|
||
|
- name: Create CSRs
|
||
|
community.crypto.openssl_csr:
|
||
|
path: "{{ output_dir ~ '/' ~ item.name ~ '.csr' }}"
|
||
|
privatekey_path: "{{ output_dir ~ '/' ~ (item.keyname | default(item.name)) ~ '.key' }}"
|
||
|
privatekey_passphrase: "{{ item.passphrase | default(omit) }}"
|
||
|
commonName: "{{ item.commonName }}"
|
||
|
loop:
|
||
|
- name: cert
|
||
|
commonName: example.com
|
||
|
- name: cert-pw
|
||
|
passphrase: hunter2
|
||
|
commonName: example.com
|
||
|
- name: cert2
|
||
|
keyname: cert
|
||
|
commonName: example.org
|
||
|
- name: cert2-pw
|
||
|
keyname: cert-pw
|
||
|
passphrase: hunter2
|
||
|
commonName: example.org
|
||
|
|
||
|
- name: Create certificates
|
||
|
community.crypto.x509_certificate:
|
||
|
path: "{{ output_dir ~ '/' ~ item.name ~ '.pem' }}"
|
||
|
csr_path: "{{ output_dir ~ '/' ~ item.name ~ '.csr' }}"
|
||
|
privatekey_path: "{{ output_dir ~ '/' ~ (item.keyname | default(item.name)) ~ '.key' }}"
|
||
|
privatekey_passphrase: "{{ item.passphrase | default(omit) }}"
|
||
|
provider: selfsigned
|
||
|
loop:
|
||
|
- name: cert
|
||
|
commonName: example.com
|
||
|
- name: cert-pw
|
||
|
passphrase: hunter2
|
||
|
commonName: example.com
|
||
|
- name: cert2
|
||
|
keyname: cert
|
||
|
commonName: example.org
|
||
|
- name: cert2-pw
|
||
|
keyname: cert-pw
|
||
|
passphrase: hunter2
|
||
|
commonName: example.org
|
||
|
|
||
|
- name: Create a Java key store for the given certificates (check mode)
|
||
|
community.general.java_keystore: &create_key_store_data
|
||
|
name: example
|
||
|
certificate: "{{lookup('file', output_dir ~ '/' ~ item.name ~ '.pem') }}"
|
||
|
private_key: "{{lookup('file', output_dir ~ '/' ~ (item.keyname | default(item.name)) ~ '.key') }}"
|
||
|
private_key_passphrase: "{{ item.passphrase | default(omit) }}"
|
||
|
password: changeit
|
||
|
dest: "{{ output_dir ~ '/' ~ item.name ~ '.jks' }}"
|
||
|
loop: &create_key_store_loop
|
||
|
- name: cert
|
||
|
- name: cert-pw
|
||
|
passphrase: hunter2
|
||
|
check_mode: yes
|
||
|
register: result_check
|
||
|
|
||
|
- name: Create a Java key store for the given certificates
|
||
|
community.general.java_keystore: *create_key_store_data
|
||
|
loop: *create_key_store_loop
|
||
|
register: result
|
||
|
|
||
|
- name: Create a Java key store for the given certificates (idempotency, check mode)
|
||
|
community.general.java_keystore: *create_key_store_data
|
||
|
loop: *create_key_store_loop
|
||
|
check_mode: yes
|
||
|
register: result_idem_check
|
||
|
|
||
|
- name: Create a Java key store for the given certificates (idempotency)
|
||
|
community.general.java_keystore: *create_key_store_data
|
||
|
loop: *create_key_store_loop
|
||
|
register: result_idem
|
||
|
|
||
|
- name: Create a Java key store for the given certificates (certificate changed, check mode)
|
||
|
community.general.java_keystore: *create_key_store_data
|
||
|
loop: &create_key_store_loop_new_certs
|
||
|
- name: cert2
|
||
|
keyname: cert
|
||
|
- name: cert2-pw
|
||
|
keyname: cert-pw
|
||
|
passphrase: hunter2
|
||
|
check_mode: yes
|
||
|
register: result_change_check
|
||
|
|
||
|
- name: Create a Java key store for the given certificates (certificate changed)
|
||
|
community.general.java_keystore: *create_key_store_data
|
||
|
loop: *create_key_store_loop_new_certs
|
||
|
register: result_change
|
||
|
|
||
|
- name: Create a Java key store for the given certificates (password changed, check mode)
|
||
|
community.general.java_keystore:
|
||
|
<<: *create_key_store_data
|
||
|
password: hunter2
|
||
|
loop: *create_key_store_loop_new_certs
|
||
|
check_mode: yes
|
||
|
register: result_pw_change_check
|
||
|
when: false # FIXME: module currently crashes
|
||
|
|
||
|
- name: Create a Java key store for the given certificates (password changed)
|
||
|
community.general.java_keystore:
|
||
|
<<: *create_key_store_data
|
||
|
password: hunter2
|
||
|
loop: *create_key_store_loop_new_certs
|
||
|
register: result_pw_change
|
||
|
when: false # FIXME: module currently crashes
|
||
|
|
||
|
- name: Validate results
|
||
|
assert:
|
||
|
that:
|
||
|
- result is changed
|
||
|
- result_check is changed
|
||
|
- result_idem is not changed
|
||
|
- result_idem_check is not changed
|
||
|
- result_change is changed
|
||
|
- result_change_check is changed
|
||
|
# - result_pw_change is changed # FIXME: module currently crashes
|
||
|
# - result_pw_change_check is changed # FIXME: module currently crashes
|