mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
dd2032a3ad
* add new module for webapp slot * fix lint and resolve comments * fix lint * fix lint * fix lint * fix name in test * add variable * fix test parameter * fix test frameworks * fix test * remove delete due to swap not finish * resolve comments * fix lint * fix typo
434 lines
No EOL
11 KiB
YAML
434 lines
No EOL
11 KiB
YAML
- name: Fix resource prefix
|
|
set_fact:
|
|
linux_app_plan_resource_group: "{{ resource_group_secondary }}"
|
|
win_app_name: "{{ (resource_prefix | replace('-','x'))[-8:] }}{{ 1000 | random}}winapp"
|
|
win_plan_name: "{{ (resource_prefix | replace('-','x'))[-8:] }}winplan"
|
|
linux_plan_name: "{{ (resource_group_secondary | replace('-','x'))[-8:] }}linplan"
|
|
slot1_name: "stage1"
|
|
|
|
- name: Create a windows web app with non-exist app service plan
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}1"
|
|
plan:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_plan_name }}"
|
|
is_linux: false
|
|
sku: S1
|
|
|
|
- name: Create a windows web app with existing app service plan
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}2"
|
|
plan: "{{ win_plan_name }}"
|
|
register: output
|
|
|
|
- name: stop the web app
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}2"
|
|
plan: "{{ win_plan_name }}"
|
|
app_state: stopped
|
|
register: output
|
|
|
|
- name: assert output changed
|
|
assert:
|
|
that:
|
|
output.changed
|
|
|
|
# enable after webapp_facts merged
|
|
# - name: get the web app
|
|
# azure_rm_webapp_facts:
|
|
# resource_group: "{{ resource_group }}"
|
|
# name: "{{ win_app_name }}2"
|
|
# register: stopped
|
|
|
|
# - name: assert web app is stopped
|
|
# assert:
|
|
# that:
|
|
# - stopped.properties.state == "Stopped"
|
|
|
|
- name: Create a windows web app with existing app service plan, try to update some root level params
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}3"
|
|
plan: "{{ win_plan_name }}"
|
|
dns_registration: true
|
|
https_only: true
|
|
tags:
|
|
testwebapptag: test
|
|
register: output
|
|
|
|
- name: get web app with resource group and tag
|
|
azure_rm_webapp_facts:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}3"
|
|
tags:
|
|
- testwebapptag
|
|
register: output
|
|
|
|
- assert:
|
|
that:
|
|
- output.webapps | length == 1
|
|
|
|
- name: Create a win web app with java run time specific
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}4"
|
|
plan: "{{ win_plan_name }}"
|
|
frameworks:
|
|
- name: "java"
|
|
version: "1.8"
|
|
settings:
|
|
java_container: "Tomcat"
|
|
java_container_version: "8.0"
|
|
app_settings:
|
|
testkey: "testvalue"
|
|
register: output
|
|
|
|
- name: assert the web app was created
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: get web app with name
|
|
azure_rm_webapp_facts:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}4"
|
|
register: output
|
|
|
|
- assert:
|
|
that:
|
|
- output.webapps | length == 1
|
|
- output.webapps[0].app_settings | length == 1
|
|
- output.webapps[0].frameworks | length > 1 # there's default frameworks eg net_framework
|
|
|
|
- name: Update app settings and framework
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}4"
|
|
plan: "{{ win_plan_name }}"
|
|
frameworks:
|
|
- name: "java"
|
|
version: "1.7"
|
|
settings:
|
|
java_container: "Tomcat"
|
|
java_container_version: "8.5"
|
|
app_settings:
|
|
testkey2: "testvalue2"
|
|
register: output
|
|
|
|
- name: Assert the web app was updated
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
|
|
- name: get web app with name
|
|
azure_rm_webapp_facts:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}4"
|
|
register: output
|
|
|
|
- name: Assert updating
|
|
assert:
|
|
that:
|
|
- output.webapps[0].app_settings | length == 2
|
|
- output.webapps[0].app_settings['testkey'] == 'testvalue'
|
|
- output.webapps[0].app_settings['testkey2'] == 'testvalue2'
|
|
|
|
- name: get web app with return publishing profile
|
|
azure_rm_webapp_facts:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}4"
|
|
return_publish_profile: true
|
|
register: output
|
|
|
|
- assert:
|
|
that:
|
|
- output.webapps | length == 1
|
|
- output.webapps[0].publishing_username != ""
|
|
- output.webapps[0].publishing_password != ""
|
|
|
|
- name: Purge all existing app settings
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}4"
|
|
plan: "{{ win_plan_name }}"
|
|
purge_app_settings: true
|
|
register: output
|
|
|
|
- name: Assert the web app was updated
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: Create a win web app with python run time and php run time
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}5"
|
|
plan: "{{ win_plan_name }}"
|
|
frameworks:
|
|
- name: "python"
|
|
version: "2.7"
|
|
- name: node
|
|
version: "6.6"
|
|
- name: "php"
|
|
version: "7.0"
|
|
register: output
|
|
|
|
- name: Assert the web app was created
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: Create a docker web app with some app settings
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}6"
|
|
plan:
|
|
resource_group: "{{ linux_app_plan_resource_group }}"
|
|
name: "{{ linux_plan_name }}"
|
|
is_linux: true
|
|
sku: S1
|
|
number_of_workers: 1
|
|
container_settings:
|
|
name: "ansible/ansible:ubuntu1404"
|
|
register: output
|
|
|
|
- name: Assert the web app was created
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: Create a docker web app with private acr registry
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}7"
|
|
plan:
|
|
resource_group: "{{ linux_app_plan_resource_group }}"
|
|
name: "{{ linux_plan_name }}"
|
|
container_settings:
|
|
name: "ansible/ansible:ubuntu1404"
|
|
registry_server_url: test.io
|
|
registry_server_user: user
|
|
registry_server_password: password
|
|
register: output
|
|
|
|
- name: Assert the web app was created
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: Create a linux web app with nodejs framework
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}8"
|
|
plan:
|
|
resource_group: "{{ linux_app_plan_resource_group }}"
|
|
name: "{{ linux_plan_name }}"
|
|
frameworks:
|
|
- name: node
|
|
version: "6.6"
|
|
register: output
|
|
|
|
- name: Should be idempotent with linux web app created
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}8"
|
|
plan:
|
|
resource_group: "{{ linux_app_plan_resource_group }}"
|
|
name: "{{ linux_plan_name }}"
|
|
frameworks:
|
|
- name: node
|
|
version: "6.6"
|
|
register: output
|
|
|
|
- assert:
|
|
that: not output.changed
|
|
|
|
- name: Update nodejs framework
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}8"
|
|
plan:
|
|
resource_group: "{{ linux_app_plan_resource_group }}"
|
|
name: "{{ linux_plan_name }}"
|
|
frameworks:
|
|
- name: node
|
|
version: "6.9"
|
|
register: output
|
|
|
|
- name: Assert the web app was created
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: Create a linux web app with deployment source github
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}10"
|
|
plan:
|
|
resource_group: "{{ linux_app_plan_resource_group }}"
|
|
name: "{{ linux_plan_name }}"
|
|
deployment_source:
|
|
url: "https://github.com/test/test"
|
|
branch: master
|
|
scm_type: GitHub
|
|
register: output
|
|
|
|
- name: Assert the web app was created
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: Delete web app
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}8"
|
|
state: absent
|
|
register: output
|
|
|
|
- name: Assert the web app was deleted
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: assert error that java is mutually exclusive with frameworks
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}11"
|
|
plan: "{{ win_plan_name }}"
|
|
frameworks:
|
|
- name: "python"
|
|
version: "2.7"
|
|
- name: "java"
|
|
version: "1.8"
|
|
register: fail_win_java_version_mutual_exclusive
|
|
failed_when: 'fail_win_java_version_mutual_exclusive.msg != "Java is mutually exclusive with other frameworks."'
|
|
|
|
- name: assert error when linux web app, only can specify one framework
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ linux_plan_name }}12"
|
|
plan:
|
|
resource_group: "{{ linux_app_plan_resource_group }}"
|
|
name: "{{ linux_plan_name }}"
|
|
frameworks:
|
|
- name: "python"
|
|
version: "2.7"
|
|
- name: "node"
|
|
version: "6.6"
|
|
register: fail_linux_one_framework_only
|
|
failed_when: fail_linux_one_framework_only.msg != "Can specify one framework only for Linux web app."
|
|
|
|
- name: Create a linux web app with java tomcat container
|
|
azure_rm_webapp:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}13"
|
|
plan:
|
|
resource_group: "{{ linux_app_plan_resource_group }}"
|
|
name: "{{ linux_plan_name }}"
|
|
frameworks:
|
|
- name: java
|
|
version: "8"
|
|
settings:
|
|
java_container: "tomcat"
|
|
java_container_version: "8.5"
|
|
register: output
|
|
|
|
- name: Assert the web app was created
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: Get facts with publish profile
|
|
azure_rm_webapp_facts:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ win_app_name }}13"
|
|
no_log: true
|
|
register: facts
|
|
|
|
- name: Assert publish profile returned
|
|
assert:
|
|
that:
|
|
- facts.webapps[0].ftp_publish_url != ''
|
|
|
|
- name: Create a webapp slot (Check mode)
|
|
azure_rm_webappslot:
|
|
resource_group: "{{ resource_group }}"
|
|
webapp_name: "{{ win_app_name }}13"
|
|
name: "{{ slot1_name }}"
|
|
configuration_source: "{{ win_app_name }}13"
|
|
app_settings:
|
|
testkey: testvalue
|
|
check_mode: yes
|
|
register: output
|
|
|
|
- name: Assert slot check mode creation
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
|
|
- name: Create a webapp slot
|
|
azure_rm_webappslot:
|
|
resource_group: "{{ resource_group }}"
|
|
webapp_name: "{{ win_app_name }}13"
|
|
name: "{{ slot1_name }}"
|
|
configuration_source: "{{ win_app_name }}13"
|
|
app_settings:
|
|
testkey: testvalue
|
|
register: output
|
|
|
|
- name: Assert slot creation
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
|
|
- name: Update webapp slot (idempotence)
|
|
azure_rm_webappslot:
|
|
resource_group: "{{ resource_group }}"
|
|
webapp_name: "{{ win_app_name }}13"
|
|
name: "{{ slot1_name }}"
|
|
app_settings:
|
|
testkey: testvalue
|
|
register: output
|
|
|
|
- name: Assert idempotence
|
|
assert:
|
|
that:
|
|
- not output.changed
|
|
|
|
- name: Update webapp slot
|
|
azure_rm_webappslot:
|
|
resource_group: "{{ resource_group }}"
|
|
webapp_name: "{{ win_app_name }}13"
|
|
name: "{{ slot1_name }}"
|
|
frameworks:
|
|
- name: "node"
|
|
version: "10.1"
|
|
app_settings:
|
|
testkey: testvalue2
|
|
register: output
|
|
|
|
- name: Assert updating
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
|
|
- name: Swap webapp slot
|
|
azure_rm_webappslot:
|
|
resource_group: "{{ resource_group }}"
|
|
webapp_name: "{{ win_app_name }}13"
|
|
name: "{{ slot1_name }}"
|
|
swap:
|
|
action: swap
|
|
register: output
|
|
|
|
- name: Assert swap
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
|
|
- name: Stop webapp slot
|
|
azure_rm_webappslot:
|
|
resource_group: "{{ resource_group }}"
|
|
webapp_name: "{{ win_app_name }}13"
|
|
name: "{{ slot1_name }}"
|
|
app_state: stopped
|
|
register: output
|
|
|
|
- name: Assert stopped
|
|
assert:
|
|
that:
|
|
- output.changed |