2018-02-06 00:08:22 +00:00
|
|
|
- name: Prepare random number
|
|
|
|
set_fact:
|
|
|
|
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
|
2018-09-05 09:48:27 +00:00
|
|
|
tenant_id: "{{ lookup('env','AZURE_TENANT') }}"
|
2018-02-06 00:08:22 +00:00
|
|
|
run_once: yes
|
|
|
|
|
2018-09-05 09:48:27 +00:00
|
|
|
- name: set service principal info
|
|
|
|
set_fact:
|
|
|
|
azure_client_id: "{{ lookup('env','AZURE_CLIENT_ID') }}"
|
|
|
|
azure_secret: "{{ lookup('env','AZURE_SECRET') }}"
|
|
|
|
no_log: yes
|
|
|
|
|
|
|
|
- name: lookup service principal object id
|
|
|
|
set_fact:
|
|
|
|
object_id: "{{ lookup('azure_service_principal_attribute',
|
|
|
|
azure_client_id=azure_client_id,
|
|
|
|
azure_secret=azure_secret,
|
|
|
|
azure_tenant=tenant_id) }}"
|
|
|
|
register: object_id
|
|
|
|
|
2018-02-06 00:08:22 +00:00
|
|
|
- name: Create instance of Key Vault -- check mode
|
|
|
|
azure_rm_keyvault:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
vault_name: "vault{{ rpfx }}"
|
|
|
|
enabled_for_deployment: yes
|
2018-09-05 09:48:27 +00:00
|
|
|
vault_tenant: "{{ tenant_id }}"
|
2018-02-06 00:08:22 +00:00
|
|
|
sku:
|
|
|
|
name: standard
|
|
|
|
family: A
|
|
|
|
access_policies:
|
2018-09-05 09:48:27 +00:00
|
|
|
- tenant_id: "{{ tenant_id }}"
|
|
|
|
object_id: "{{ object_id }}"
|
2018-02-06 00:08:22 +00:00
|
|
|
keys:
|
|
|
|
- get
|
|
|
|
- list
|
2018-09-05 09:48:27 +00:00
|
|
|
- update
|
|
|
|
- create
|
|
|
|
- import
|
|
|
|
- delete
|
|
|
|
- recover
|
|
|
|
- backup
|
|
|
|
- restore
|
|
|
|
secrets:
|
|
|
|
- get
|
|
|
|
- list
|
|
|
|
- set
|
|
|
|
- delete
|
|
|
|
- recover
|
|
|
|
- backup
|
|
|
|
- restore
|
2018-02-06 00:08:22 +00:00
|
|
|
check_mode: yes
|
|
|
|
register: output
|
|
|
|
- name: Assert the resource instance is well created
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.changed
|
|
|
|
|
|
|
|
- name: Create instance of Key Vault
|
|
|
|
azure_rm_keyvault:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
vault_name: "vault{{ rpfx }}"
|
|
|
|
enabled_for_deployment: yes
|
2018-09-05 09:48:27 +00:00
|
|
|
vault_tenant: "{{ tenant_id }}"
|
2018-02-06 00:08:22 +00:00
|
|
|
sku:
|
|
|
|
name: standard
|
|
|
|
family: A
|
|
|
|
access_policies:
|
2018-09-05 09:48:27 +00:00
|
|
|
- tenant_id: "{{ tenant_id }}"
|
|
|
|
object_id: "{{ object_id }}"
|
|
|
|
secrets:
|
2018-02-06 00:08:22 +00:00
|
|
|
- get
|
|
|
|
- list
|
2018-09-05 09:48:27 +00:00
|
|
|
- set
|
|
|
|
- delete
|
|
|
|
- recover
|
|
|
|
- backup
|
|
|
|
- restore
|
2018-02-06 00:08:22 +00:00
|
|
|
register: output
|
|
|
|
- name: Assert the resource instance is well created
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.changed
|
|
|
|
|
2018-09-05 09:48:27 +00:00
|
|
|
- name: Create instance of Key Vault again
|
2018-02-06 00:08:22 +00:00
|
|
|
azure_rm_keyvault:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
vault_name: "vault{{ rpfx }}"
|
|
|
|
enabled_for_deployment: yes
|
2018-09-05 09:48:27 +00:00
|
|
|
vault_tenant: "{{ tenant_id }}"
|
2018-02-06 00:08:22 +00:00
|
|
|
sku:
|
|
|
|
name: standard
|
|
|
|
family: A
|
|
|
|
access_policies:
|
2018-09-05 09:48:27 +00:00
|
|
|
- tenant_id: "{{ tenant_id }}"
|
|
|
|
object_id: "{{ object_id }}"
|
|
|
|
secrets:
|
2018-02-06 00:08:22 +00:00
|
|
|
- get
|
|
|
|
- list
|
2018-09-05 09:48:27 +00:00
|
|
|
- set
|
|
|
|
- delete
|
|
|
|
- recover
|
|
|
|
- backup
|
|
|
|
- restore
|
2018-02-06 00:08:22 +00:00
|
|
|
register: output
|
|
|
|
- name: Assert the state has not changed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.changed == false
|
|
|
|
|
2018-09-05 08:21:15 +00:00
|
|
|
- name: Update existing Key Vault (add a rule and tags)
|
2018-02-06 00:08:22 +00:00
|
|
|
azure_rm_keyvault:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
vault_name: "vault{{ rpfx }}"
|
|
|
|
enabled_for_deployment: yes
|
2018-09-05 09:48:27 +00:00
|
|
|
vault_tenant: "{{ tenant_id }}"
|
2018-02-06 00:08:22 +00:00
|
|
|
sku:
|
|
|
|
name: standard
|
|
|
|
family: A
|
|
|
|
access_policies:
|
2018-09-05 09:48:27 +00:00
|
|
|
- tenant_id: "{{ tenant_id }}"
|
|
|
|
object_id: "{{ object_id }}"
|
|
|
|
keys:
|
2018-02-06 00:08:22 +00:00
|
|
|
- get
|
|
|
|
- list
|
2018-09-05 09:48:27 +00:00
|
|
|
- update
|
|
|
|
- create
|
|
|
|
- import
|
|
|
|
- delete
|
|
|
|
- recover
|
|
|
|
- backup
|
|
|
|
- restore
|
|
|
|
secrets:
|
2018-02-06 00:08:22 +00:00
|
|
|
- get
|
|
|
|
- list
|
2018-09-05 09:48:27 +00:00
|
|
|
- set
|
|
|
|
- delete
|
|
|
|
- recover
|
|
|
|
- backup
|
|
|
|
- restore
|
2018-09-05 08:21:15 +00:00
|
|
|
tags:
|
|
|
|
aaa: bbb
|
2018-02-06 00:08:22 +00:00
|
|
|
register: output
|
|
|
|
- name: Assert the state has changed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.changed == true
|
|
|
|
|
2018-09-05 08:21:15 +00:00
|
|
|
- name: Use REST API to retrieve keyvault (as facts not available yet)
|
|
|
|
azure_rm_resource_facts:
|
|
|
|
api_version: '2018-02-14'
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
provider: keyvault
|
|
|
|
resource_type: vaults
|
|
|
|
resource_name: "vault{{ rpfx }}"
|
|
|
|
register: output
|
|
|
|
- name: Assert the facts are properly set
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.response[0].tags.aaa == "bbb"
|
2018-09-05 09:48:27 +00:00
|
|
|
#
|
|
|
|
# azure_rm_keyvaultkey tests
|
|
|
|
#
|
|
|
|
|
|
|
|
- name: create a kevyault key
|
|
|
|
block:
|
|
|
|
- azure_rm_keyvaultkey:
|
|
|
|
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
|
|
|
|
key_name: testkey
|
|
|
|
tags:
|
|
|
|
testing: test
|
|
|
|
delete: on-exit
|
|
|
|
register: output
|
|
|
|
- assert:
|
|
|
|
that: output.changed
|
|
|
|
rescue:
|
|
|
|
- azure_rm_keyvaultkey:
|
|
|
|
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
|
|
|
|
state: absent
|
|
|
|
key_name: testkey
|
|
|
|
|
|
|
|
- name: delete a kevyault key
|
|
|
|
azure_rm_keyvaultkey:
|
|
|
|
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
|
|
|
|
state: absent
|
|
|
|
key_name: testkey
|
|
|
|
register: output
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that: output.changed
|
|
|
|
|
|
|
|
#
|
|
|
|
# azure_rm_keyvaultsecret tests
|
|
|
|
#
|
|
|
|
- name: create a kevyault secret
|
|
|
|
block:
|
|
|
|
- azure_rm_keyvaultsecret:
|
|
|
|
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
|
|
|
|
secret_name: testsecret
|
|
|
|
secret_value: 'mysecret'
|
|
|
|
tags:
|
|
|
|
testing: test
|
|
|
|
delete: on-exit
|
|
|
|
register: output
|
|
|
|
- assert:
|
|
|
|
that: output.changed
|
|
|
|
rescue:
|
|
|
|
- azure_rm_keyvaultsecret:
|
|
|
|
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
|
|
|
|
state: absent
|
|
|
|
secret_name: testsecret
|
|
|
|
|
|
|
|
- name: delete a kevyault secret
|
|
|
|
azure_rm_keyvaultsecret:
|
|
|
|
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
|
|
|
|
state: absent
|
|
|
|
secret_name: testsecret
|
|
|
|
register: output
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that: output.changed
|
|
|
|
|
|
|
|
#
|
|
|
|
# azure_rm_keyvault finalize & clean up
|
|
|
|
#
|
2018-09-05 08:21:15 +00:00
|
|
|
|
2018-02-06 00:08:22 +00:00
|
|
|
- name: Delete instance of Key Vault -- check mode
|
|
|
|
azure_rm_keyvault:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
vault_name: "vault{{ rpfx }}"
|
|
|
|
state: absent
|
|
|
|
check_mode: yes
|
|
|
|
register: output
|
|
|
|
- name: Assert the state has changed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.changed
|
|
|
|
|
|
|
|
- name: Delete instance of Key Vault
|
|
|
|
azure_rm_keyvault:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
vault_name: "vault{{ rpfx }}"
|
|
|
|
state: absent
|
|
|
|
register: output
|
|
|
|
- name: Assert the state has changed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.changed
|
|
|
|
|
|
|
|
- name: Delete unexisting instance of Key Vault
|
|
|
|
azure_rm_keyvault:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
vault_name: "vault{{ rpfx }}"
|
|
|
|
state: absent
|
|
|
|
register: output
|
|
|
|
- name: Assert the state has changed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.changed == false
|