- 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" - 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 != ''