-
Notifications
You must be signed in to change notification settings - Fork 5
/
dotnet-app.yml
99 lines (87 loc) · 2.67 KB
/
dotnet-app.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
- name: Setup App
hosts: webservers
tasks:
- name: Install IIS
win_feature:
name:
- Web-Server
- Web-Common-Http
include_sub_features: True
include_management_tools: True
state: present
register: win_feature
- name: reboot if installing Web-Server feature requires it
win_reboot:
when: win_feature.reboot_required
- name: SQL Server
hosts: dbservers
tasks:
- name: Install MS SQL Server 2014
win_chocolatey:
name: mssqlserver2014express
state: present
- name: Deploy IIS Web App
hosts: webservers
tasks:
- name: Ensure target directory exist
win_file:
path: C:\webapp
state: directory
- name: Copy artifacts to remote machine
win_copy:
src: files/WebApp.zip
dest: C:\webapp\WebApp.zip
- name: Unzip build artifacts
win_unzip:
src: C:\webapp\WebApp.zip
dest: C:\webapp
- name: Ensure that the WebApp application exists
win_iis_webapplication:
name: WebApp
physical_path: c:\webapp
site: Default Web Site
state: present
- name: Deploy binaries
hosts: webservers
vars:
myapp_artifacts: files/MyAppService.zip
myapp_workdir: C:\myapp
tasks:
- name: Get arifacts checksum
stat:
path: "{{ myapp_artifacts }}"
delegate_to: localhost
register: myapp_artifacts_stat
- name: Get remote artifacts checksum
win_stat:
path: "{{ myapp_workdir }}\\MyAppService.zip"
register: myapp_remote_artifacts_stat
- name: Stop play if checksums match
meta: end_play
when:
- myapp_artifacts_stat.stat.checksum is defined
- myapp_remote_artifacts_stat.stat.checksum is defined
- myapp_artifacts_stat.stat.checksum == myapp_remote_artifacts_stat.stat.checksum
- name: Remove Service if exists
win_service:
name: MyAppService
state: absent
path: "{{ myapp_workdir }}\\MyAppService.exe"
- name: Delete old files
win_file:
path: "{{ myapp_workdir }}\\"
state: absent
- name: Copy artifacts to remote machine
win_copy:
src: "{{ myapp_artifacts }}"
dest: "{{ myapp_workdir }}\\"
- name: Unzip build artifacts
win_unzip:
src: "{{ myapp_workdir }}\\MyAppService.zip"
dest: "{{ myapp_workdir }}"
- name: Register and start the service
win_service:
name: ReporterService
start_mode: auto
state: started
path: "{{ myapp_workdir }}\\MyAppService.exe"