Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0375ab6efb | |||
| 4aeacb1d82 | |||
| 8fc17fc09f | |||
| f61855de2f | |||
| 3f94dfe6f1 | |||
| 689dcb50a5 | |||
| fd2771e574 | |||
| d6d726e48d | |||
| da179bd1c3 | |||
| 87eef3e85b | |||
| 3c083c6dba | |||
| 26f8e27b5f | |||
| 26f303c862 |
@@ -1,11 +0,0 @@
|
|||||||
[beta-acp-backend-webservers]
|
|
||||||
beta-acp-backend ansible_host=123.30.238.12 ansible_user=jenkins_cicd_beta ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
|
||||||
|
|
||||||
[beta-portal-backend-webservers]
|
|
||||||
beta-portal-backend ansible_host=123.30.238.12 ansible_user=jenkins_cicd_beta ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
|
||||||
|
|
||||||
[beta-acp-frontend-webservers]
|
|
||||||
beta-acp-frontend ansible_host=123.30.238.12 ansible_user=jenkins_cicd_beta ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
|
||||||
|
|
||||||
[beta-portal-frontend-webservers]
|
|
||||||
beta-portal-frontend ansible_host=123.30.238.12 ansible_user=jenkins_cicd_beta ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
temp_dir: "C:\\deploy\\vpress\\temp"
|
|
||||||
iis_site_name: "portal-api.kinhtedothi.vn"
|
|
||||||
blue_path: "C:\\deploy\\portal\\be\\blue"
|
|
||||||
green_path: "C:\\deploy\\portal\\be\\green"
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
temp_dir: "C:\\deploy\\vpress\\temp"
|
|
||||||
iis_site_name: "resource.vpress.vn"
|
|
||||||
blue_path: "C:\\deploy\\vpress\\resource\\blue"
|
|
||||||
green_path: "C:\\deploy\\vpress\\resource\\green"
|
|
||||||
+3
-1
@@ -1,4 +1,6 @@
|
|||||||
temp_dir: "C:\\deploy\\vpress\\temp"
|
temp_dir: "C:\\deploy\\vpress\\temp"
|
||||||
iis_site_name: "acp-api.kinhtedothi.vn"
|
iis_site_name: "acp-api.kinhtedothi.vn"
|
||||||
blue_path: "C:\\deploy\\acp\\be\\blue"
|
blue_path: "C:\\deploy\\acp\\be\\blue"
|
||||||
green_path: "C:\\deploy\\acp\\be\\green"
|
green_path: "C:\\deploy\\acp\\be\\green"
|
||||||
|
|
||||||
|
aspnetcore_environment: "Ktdt_Production"
|
||||||
+1
-1
@@ -3,4 +3,4 @@ iis_site_name: "portal-api.hanoitimes.vn"
|
|||||||
blue_path: "C:\\deploy\\portal\\be\\hnt\\blue"
|
blue_path: "C:\\deploy\\portal\\be\\hnt\\blue"
|
||||||
green_path: "C:\\deploy\\portal\\be\\hnt\\green"
|
green_path: "C:\\deploy\\portal\\be\\hnt\\green"
|
||||||
|
|
||||||
aspnetcore_environment: "Hnt_Beta"
|
aspnetcore_environment: "Hnt_Production"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# temp_dir: "C:\\deploy\\vpress\\temp"
|
||||||
|
# iis_site_name: "cdn-media.hanoitimes.vn"
|
||||||
|
# blue_path: "C:\\deploy\\resource\\hnt\\blue"
|
||||||
|
# green_path: "C:\\deploy\\resource\\hnt\\green"
|
||||||
|
|
||||||
|
# aspnetcore_environment: "Hnt_Production"
|
||||||
+1
-1
@@ -3,4 +3,4 @@ iis_site_name: "portal-api.kinhtedothi.vn"
|
|||||||
blue_path: "C:\\deploy\\portal\\be\\ktdt\\blue"
|
blue_path: "C:\\deploy\\portal\\be\\ktdt\\blue"
|
||||||
green_path: "C:\\deploy\\portal\\be\\ktdt\\green"
|
green_path: "C:\\deploy\\portal\\be\\ktdt\\green"
|
||||||
|
|
||||||
aspnetcore_environment: "Ktdt_Beta"
|
aspnetcore_environment: "Ktdt_Production"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# temp_dir: "C:\\deploy\\vpress\\temp"
|
||||||
|
# iis_site_name: "resource.kinhtedothi.vn"
|
||||||
|
# blue_path: "C:\\deploy\\resource\\ktdt\\blue"
|
||||||
|
# green_path: "C:\\deploy\\resource\\ktdt\\green"
|
||||||
|
|
||||||
|
# aspnetcore_environment: "Ktdt_Production"
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
[ktdt_portal_backend]
|
||||||
|
ktdt-portal-backend ansible_host=123.30.238.12 ansible_user=jenkins_cicd_beta ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
[hnt_portal_backend]
|
||||||
|
hnt-portal-backend ansible_host=123.30.238.12 ansible_user=jenkins_cicd_beta ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
[ktdt_portal_frontend]
|
||||||
|
ktdt-portal-frontend ansible_host=123.30.238.12 ansible_user=jenkins_cicd_beta ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
[hnt_portal_frontend]
|
||||||
|
hnt-portal-frontend ansible_host=123.30.238.12 ansible_user=jenkins_cicd_beta ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
[acp_backend]
|
||||||
|
acp-backend ansible_host=123.30.238.12 ansible_user=jenkins_cicd_beta ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
[acp_frontend]
|
||||||
|
acp-frontend ansible_host=123.30.238.12 ansible_user=jenkins_cicd_beta ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
[ktdt_resource_backend]
|
||||||
|
ktdt-resource-backend
|
||||||
|
|
||||||
|
[hnt_resource_backend]
|
||||||
|
hnt-resource-backend
|
||||||
|
|
||||||
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
[uat-acp-backend-webservers]
|
|
||||||
uat-acp-backend ansible_host=123.30.172.34 ansible_user=jenkins_cicd ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
|
||||||
|
|
||||||
[uat-portal-backend-webservers]
|
|
||||||
uat-portal-backend ansible_host=123.30.172.34 ansible_user=jenkins_cicd ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
|
||||||
|
|
||||||
[uat-resource-backend-webservers]
|
|
||||||
uat-resource-backend ansible_host=123.30.172.34 ansible_user=jenkins_cicd ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
|
||||||
|
|
||||||
[uat-acp-frontend-webservers]
|
|
||||||
uat-acp-frontend ansible_host=123.30.172.34 ansible_user=jenkins_cicd ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
|
||||||
|
|
||||||
[uat-portal-frontend-webservers]
|
|
||||||
uat-portal-frontend ansible_host=123.30.172.34 ansible_user=jenkins_cicd ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
temp_dir: "C:\\deploy\\vpress\\temp"
|
temp_dir: "C:\\deploy\\vpress\\temp"
|
||||||
iis_site_name: "api-acp-2025"
|
iis_site_name: "api-acp-2025"
|
||||||
blue_path: "C:\\deploy\\vpress\\acp\\be\\blue"
|
blue_path: "C:\\deploy\\vpress\\acp\\be\\blue"
|
||||||
green_path: "C:\\deploy\\vpress\\acp\\be\\green"
|
green_path: "C:\\deploy\\vpress\\acp\\be\\green"
|
||||||
|
|
||||||
|
aspnetcore_environment: "Uat"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
temp_dir: "C:\\deploy\\vpress\\temp"
|
||||||
|
iis_site_name: "resource.vpress.vn"
|
||||||
|
blue_path: "C:\\deploy\\vpress\\resource\\hnt\\blue"
|
||||||
|
green_path: "C:\\deploy\\vpress\\resource\\hnt\\green"
|
||||||
|
|
||||||
|
aspnetcore_environment: "Uat"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
temp_dir: "C:\\deploy\\vpress\\temp"
|
||||||
|
iis_site_name: "resource.vpress.vn"
|
||||||
|
blue_path: "C:\\deploy\\vpress\\resource\\ktdt\\blue"
|
||||||
|
green_path: "C:\\deploy\\vpress\\resource\\ktdt\\green"
|
||||||
|
|
||||||
|
aspnetcore_environment: "Uat"
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
[ktdt_portal_backend]
|
||||||
|
ktdt-portal-backend ansible_host=123.30.172.34 ansible_user=jenkins_cicd ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
[hnt_portal_backend]
|
||||||
|
ktdt-portal-backend ansible_host=123.30.172.34 ansible_user=jenkins_cicd ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
[ktdt_portal_frontend]
|
||||||
|
ktdt-portal-backend ansible_host=123.30.172.34 ansible_user=jenkins_cicd ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
[hnt_portal_frontend]
|
||||||
|
hnt-portal-frontend ansible_host=123.30.172.34 ansible_user=jenkins_cicd ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
[acp_backend]
|
||||||
|
acp-backend ansible_host=123.30.172.34 ansible_user=jenkins_cicd ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
[acp_frontend]
|
||||||
|
acp-frontend ansible_host=123.30.172.34 ansible_user=jenkins_cicd ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
[ktdt_resource_backend]
|
||||||
|
ktdt-resource-backend ansible_host=123.30.172.34 ansible_user=jenkins_cicd ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
[hnt_resource_backend]
|
||||||
|
hnt-resource-backend ansible_host=123.30.172.34 ansible_user=jenkins_cicd ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- name: Deploy Backend for Project ACP
|
||||||
|
hosts: acp-backend
|
||||||
|
roles:
|
||||||
|
- deploy-be-acp
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
- name: Deploy Backend for Project Portal
|
||||||
|
hosts: ktdt-portal-backend
|
||||||
|
roles:
|
||||||
|
- deploy-be-portal
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- name: Deploy Backend for Project Resource
|
||||||
|
hosts: hnt-resource-backend
|
||||||
|
roles:
|
||||||
|
- deploy-be-resource
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- name: Deploy Backend for Project Portal
|
||||||
|
hosts: ktdt-portal-backend
|
||||||
|
roles:
|
||||||
|
- deploy-be-portal
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- name: Deploy Backend for Project Resource
|
||||||
|
hosts: ktdt-resource-backend
|
||||||
|
roles:
|
||||||
|
- deploy-be-resource
|
||||||
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
- name: Deploy Backend for Project Acp, Portal
|
|
||||||
hosts: "{{ deploy_env }}-{{project_name}}-backend"
|
|
||||||
roles:
|
|
||||||
- deploy
|
|
||||||
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
- name: Deploy Backend for Project Portal
|
|
||||||
hosts: "{{ deploy_env }}-{{project_name}}-backend"
|
|
||||||
vars:
|
|
||||||
portal_name: "{{ portal_name }}"
|
|
||||||
pre_tasks:
|
|
||||||
- name: Include portal-specific variables
|
|
||||||
include_vars: "../inventory/host_vars/{{ deploy_env }}-{{ project_name }}-{{ portal_name }}-backend.yml"
|
|
||||||
roles:
|
|
||||||
- deploy-be-portal
|
|
||||||
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
- name: Deploy Backend for Project Portal
|
|
||||||
hosts: "{{ deploy_env }}-{{project_name}}-backend"
|
|
||||||
vars:
|
|
||||||
portal_name: "{{ portal_name }}"
|
|
||||||
pre_tasks:
|
|
||||||
- name: Include portal-specific variables
|
|
||||||
include_vars: "../inventory/host_vars/{{ deploy_env }}-{{ project_name }}-{{ portal_name }}-backend.yml"
|
|
||||||
roles:
|
|
||||||
- deploy-be-resource
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
- name: Deploy Frontend for Project Acp, Portal
|
|
||||||
hosts: "{{ deploy_env }}-{{project_name}}-frontend"
|
|
||||||
roles:
|
|
||||||
- deploy
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
- name: Deploy Frontend for Project Portal
|
|
||||||
hosts: "{{ deploy_env }}-{{project_name}}-frontend"
|
|
||||||
vars:
|
|
||||||
portal_name: "{{ portal_name }}"
|
|
||||||
pre_tasks:
|
|
||||||
- name: Include portal-specific variables
|
|
||||||
include_vars: "../inventory/host_vars/{{ deploy_env }}-{{ project_name }}-{{ portal_name }}-frontend.yml"
|
|
||||||
roles:
|
|
||||||
- deploy-fe-portal
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- name: Deploy FE for Project ACP
|
||||||
|
hosts: acp-frontend
|
||||||
|
roles:
|
||||||
|
- deploy-fe-acp
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- name: Deploy FE for Project Portal ktdt
|
||||||
|
hosts: hnt-portal-frontend
|
||||||
|
roles:
|
||||||
|
- deploy-fe-portal
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- name: Deploy FE for Project Portal ktdt
|
||||||
|
hosts: ktdt-portal-frontend
|
||||||
|
roles:
|
||||||
|
- deploy-fe-portal
|
||||||
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
- name: get_site_current_active_path.yml
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: get_site_current_active_path.yml
|
||||||
|
|
||||||
|
- name: set_target_path
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: set_target_path.yml
|
||||||
|
|
||||||
|
- name: artifact_download
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: artifact_download.yml
|
||||||
|
|
||||||
|
- name: artifact_deploy
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: artifact_deploy.yml
|
||||||
|
|
||||||
|
- name: update_iis_physical_path
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: update_iis_physical_path.yml
|
||||||
|
|
||||||
|
- name: set_site_aspnetcore_environment
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: set_site_aspnetcore_environment.yml
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
# Xóa file tạm
|
|
||||||
- name: Clean up temporary files
|
|
||||||
win_file:
|
|
||||||
path: "{{ temp_dir }}\\{{ artifact_name }}"
|
|
||||||
state: absent
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
# Tải artifact từ Nexus Repository
|
|
||||||
- name: Download artifact from Nexus
|
|
||||||
win_get_url:
|
|
||||||
url: "{{ nexus_url }}/{{ artifact_name }}"
|
|
||||||
dest: "{{ temp_dir }}\\{{ artifact_name }}"
|
|
||||||
validate_certs: no
|
|
||||||
url_username: "{{ nexus_username }}"
|
|
||||||
url_password: "{{ nexus_password }}"
|
|
||||||
register: download_status
|
|
||||||
vars:
|
|
||||||
nexus_url: "{{ nexus_url }}"
|
|
||||||
artifact_name: "{{ artifact_name }}"
|
|
||||||
nexus_username: "{{ nexus_username }}"
|
|
||||||
nexus_password: "{{ nexus_password }}"
|
|
||||||
|
|
||||||
# Debug download_status
|
|
||||||
- name: Debug download_status
|
|
||||||
debug:
|
|
||||||
var: download_status
|
|
||||||
|
|
||||||
# Lỗi khi tải artifact từ nexus thất bại
|
|
||||||
- name: Fail if download artifact from Nexus Repository fail
|
|
||||||
fail:
|
|
||||||
msg: "Download artifact from nexus fail"
|
|
||||||
when: download_status.status_code != 200
|
|
||||||
|
|
||||||
# Kiểm tra ở trên server đã tồn tại file vùa tải xuống không
|
|
||||||
- name: Check if the artifact file exists
|
|
||||||
stat:
|
|
||||||
path: "{{ temp_dir }}/{{ artifact_name }}"
|
|
||||||
register: file_status
|
|
||||||
changed_when: false
|
|
||||||
failed_when: false
|
|
||||||
|
|
||||||
# Debug file_status
|
|
||||||
- name: Debug file_status
|
|
||||||
debug:
|
|
||||||
var: file_status
|
|
||||||
|
|
||||||
# Giải nén artifact vào thư mục target
|
|
||||||
- name: Deploy to target environment
|
|
||||||
win_unzip:
|
|
||||||
src: "{{ temp_dir }}\\{{ artifact_name }}"
|
|
||||||
dest: "{{ target_path }}"
|
|
||||||
overwrite: yes
|
|
||||||
|
|
||||||
@@ -1,13 +1,32 @@
|
|||||||
- name: Setup environment
|
- name: get_site_current_active_path.yml
|
||||||
import_tasks: setup.yml
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
- name: Deploy application
|
tasks_from: get_site_current_active_path.yml
|
||||||
import_tasks: deploy.yml
|
|
||||||
|
|
||||||
- name: Clean up temporary files
|
- name: set_target_path
|
||||||
import_tasks: cleanup.yml
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: set_target_path.yml
|
||||||
|
|
||||||
|
- name: artifact_download
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: artifact_download.yml
|
||||||
|
|
||||||
|
- name: artifact_deploy
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: artifact_deploy.yml
|
||||||
|
|
||||||
|
- name: update_iis_physical_path
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: update_iis_physical_path.yml
|
||||||
|
|
||||||
|
- name: set_site_aspnetcore_environment
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: set_site_aspnetcore_environment.yml
|
||||||
|
|
||||||
- name: Switch
|
|
||||||
import_tasks: switch.yml
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
#Debug
|
|
||||||
- name: Debug iis_site_name
|
|
||||||
debug:
|
|
||||||
var: iis_site_name
|
|
||||||
|
|
||||||
- name: Debug aspnetcore_environment
|
|
||||||
debug:
|
|
||||||
var: aspnetcore_environment
|
|
||||||
|
|
||||||
- name: Debug blue_path
|
|
||||||
debug:
|
|
||||||
var: blue_path
|
|
||||||
|
|
||||||
# Kiểm tra các thông số Nexus
|
|
||||||
- name: Debug Nexus URL
|
|
||||||
debug:
|
|
||||||
var: nexus_url
|
|
||||||
|
|
||||||
- name: Debug artifact name
|
|
||||||
debug:
|
|
||||||
var: artifact_name
|
|
||||||
|
|
||||||
# Validate các biến var truyền vào
|
|
||||||
- name: Validate required variables
|
|
||||||
assert:
|
|
||||||
that:
|
|
||||||
- iis_site_name is defined and iis_site_name | length > 0
|
|
||||||
- aspnetcore_environment is defined and aspnetcore_environment | length > 0
|
|
||||||
- blue_path is defined and blue_path | length > 0
|
|
||||||
- nexus_url is defined and nexus_url | length > 0
|
|
||||||
- artifact_name is defined and artifact_name | length > 0
|
|
||||||
fail_msg: "One or more required variables are missing or empty!"
|
|
||||||
|
|
||||||
#Lấy đường dẫn vật lý của iis site/kiểm tra sự tồn tại của site
|
|
||||||
- name: Get the physical path of the current IIS site
|
|
||||||
win_shell: |
|
|
||||||
Import-Module WebAdministration
|
|
||||||
$site = Get-Website -Name "{{ iis_site_name}}"
|
|
||||||
if ($site) {
|
|
||||||
Write-Output $site.PhysicalPath
|
|
||||||
} else {
|
|
||||||
Write-Output "NOT_FOUND"
|
|
||||||
}
|
|
||||||
register: site_path
|
|
||||||
|
|
||||||
- name: Set fact for site path
|
|
||||||
set_fact:
|
|
||||||
active_path: "{{ site_path.stdout_lines[0] }}"
|
|
||||||
|
|
||||||
- name: Fail if site does not exist
|
|
||||||
fail:
|
|
||||||
msg: "IIS site {{ iis_site_name }} not found!"
|
|
||||||
when: active_path == "NOT_FOUND"
|
|
||||||
|
|
||||||
# Chọn môi trường Blue hoặc Green để deploy
|
|
||||||
- name: Set target deployment environment
|
|
||||||
set_fact:
|
|
||||||
target_path: "{{ green_path if active_path == blue_path else blue_path }}" #lấy ra đường dẫn thư mục cần deploy
|
|
||||||
- debug:
|
|
||||||
var: target_path
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
# Cập nhật PhysicalPath mới cho site IIS (green/blue)
|
|
||||||
- name: Update site IIS web application
|
|
||||||
win_iis_website:
|
|
||||||
name: "{{ iis_site_name }}"
|
|
||||||
physical_path: "{{ target_path }}"
|
|
||||||
|
|
||||||
# Set ASPNETCORE_ENVIRONMENT cho site IIS
|
|
||||||
- name: Set ASPNETCORE_ENVIRONMENT for IIS site
|
|
||||||
win_shell: |
|
|
||||||
Import-Module WebAdministration
|
|
||||||
Add-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST/{{ iis_site_name }}" `
|
|
||||||
-filter "system.webServer/aspNetCore/environmentVariables" `
|
|
||||||
-name "." `
|
|
||||||
-value @{name="ASPNETCORE_ENVIRONMENT"; value="{{ aspnetcore_environment }}"}
|
|
||||||
|
|
||||||
# - name: Restart IIS site to apply changes
|
|
||||||
# win_iis_website:
|
|
||||||
# name: "{{ iis_site_name }}"
|
|
||||||
# state: restarted
|
|
||||||
|
|
||||||
@@ -1,35 +1,34 @@
|
|||||||
tasks:
|
- name: get_site_current_active_path.yml
|
||||||
- name: get_site_current_active_path.yml
|
import_role:
|
||||||
import_role:
|
name: iis_utils
|
||||||
name: iis_utils
|
tasks_from: get_site_current_active_path.yml
|
||||||
tasks_from: get_site_current_active_path.yml
|
|
||||||
|
- name: set_target_path
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: set_target_path.yml
|
||||||
|
|
||||||
|
- name: artifact_download
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: artifact_download.yml
|
||||||
|
|
||||||
|
- name: artifact_deploy
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: artifact_deploy.yml
|
||||||
|
|
||||||
|
- name: update_iis_physical_path
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: update_iis_physical_path.yml
|
||||||
|
|
||||||
|
- name: set_site_aspnetcore_environment
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: set_site_aspnetcore_environment.yml
|
||||||
|
|
||||||
- name: set_target_path
|
|
||||||
import_role:
|
|
||||||
name: iis_utils
|
|
||||||
tasks_from: set_target_path.yml
|
|
||||||
|
|
||||||
- name: artifact_download
|
|
||||||
import_role:
|
|
||||||
name: iis_utils
|
|
||||||
tasks_from: artifact_download.yml
|
|
||||||
|
|
||||||
- name: artifact_deploy
|
|
||||||
import_role:
|
|
||||||
name: iis_utils
|
|
||||||
tasks_from: artifact_deploy.yml
|
|
||||||
|
|
||||||
- name: update_iis_physical_path
|
|
||||||
import_role:
|
|
||||||
name: iis_utils
|
|
||||||
tasks_from: update_iis_physical_path.yml
|
|
||||||
|
|
||||||
- name: set_site_aspnetcore_environment
|
|
||||||
import_role:
|
|
||||||
name: iis_utils
|
|
||||||
tasks_from: set_site_aspnetcore_environment.yml
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
- name: get_site_current_active_path.yml
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: get_site_current_active_path.yml
|
||||||
|
|
||||||
|
- name: set_target_path
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: set_target_path.yml
|
||||||
|
|
||||||
|
- name: artifact_download
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: artifact_download.yml
|
||||||
|
|
||||||
|
- name: artifact_deploy
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: artifact_deploy.yml
|
||||||
|
|
||||||
|
- name: update_iis_physical_path
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: update_iis_physical_path.yml
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
# Xóa file tạm
|
|
||||||
- name: Clean up temporary files
|
|
||||||
win_file:
|
|
||||||
path: "{{ temp_dir }}\\{{ artifact_name }}"
|
|
||||||
state: absent
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
# Tải artifact từ Nexus
|
|
||||||
- name: Download artifact from Nexus
|
|
||||||
win_get_url:
|
|
||||||
url: "{{ nexus_url }}/{{ artifact_name }}"
|
|
||||||
dest: "{{ temp_dir }}\\{{ artifact_name }}"
|
|
||||||
validate_certs: no
|
|
||||||
url_username: "{{ nexus_username }}"
|
|
||||||
url_password: "{{ nexus_password }}"
|
|
||||||
register: download_status
|
|
||||||
vars:
|
|
||||||
nexus_url: "{{ nexus_url }}"
|
|
||||||
artifact_name: "{{ artifact_name }}"
|
|
||||||
nexus_username: "{{ nexus_username }}"
|
|
||||||
nexus_password: "{{ nexus_password }}"
|
|
||||||
|
|
||||||
# Debug download_status
|
|
||||||
- name: Debug download_status
|
|
||||||
debug:
|
|
||||||
var: download_status
|
|
||||||
|
|
||||||
- name: Check if the download was successful
|
|
||||||
debug:
|
|
||||||
msg: "Download successful: {{ download_status.msg }}"
|
|
||||||
|
|
||||||
# Kiểm tra ở trên server đã tồn tại file vùa tải xuống không
|
|
||||||
- name: Check if the artifact file exists
|
|
||||||
stat:
|
|
||||||
path: "{{ temp_dir }}/{{ artifact_name }}"
|
|
||||||
register: file_status
|
|
||||||
changed_when: false
|
|
||||||
failed_when: false
|
|
||||||
|
|
||||||
# Debug file_status
|
|
||||||
- name: Debug file_status
|
|
||||||
debug:
|
|
||||||
var: file_status
|
|
||||||
|
|
||||||
|
|
||||||
# Giải nén artifact vào thư mục target
|
|
||||||
- name: Deploy to target environment
|
|
||||||
win_unzip:
|
|
||||||
src: "{{ temp_dir }}\\{{ artifact_name }}"
|
|
||||||
dest: "{{ target_path }}"
|
|
||||||
overwrite: yes
|
|
||||||
|
|
||||||
@@ -1,13 +1,26 @@
|
|||||||
- name: Setup environment
|
- name: get_site_current_active_path.yml
|
||||||
import_tasks: setup.yml
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
- name: Deploy application
|
tasks_from: get_site_current_active_path.yml
|
||||||
import_tasks: deploy.yml
|
|
||||||
|
|
||||||
- name: Clean up temporary files
|
- name: set_target_path
|
||||||
import_tasks: cleanup.yml
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: set_target_path.yml
|
||||||
|
|
||||||
- name: Switch
|
- name: artifact_download
|
||||||
import_tasks: switch.yml
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: artifact_download.yml
|
||||||
|
|
||||||
|
- name: artifact_deploy
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: artifact_deploy.yml
|
||||||
|
|
||||||
|
- name: update_iis_physical_path
|
||||||
|
import_role:
|
||||||
|
name: iis_utils
|
||||||
|
tasks_from: update_iis_physical_path.yml
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,47 +0,0 @@
|
|||||||
#Debug
|
|
||||||
- name: Debug iis_site_name
|
|
||||||
debug:
|
|
||||||
var: iis_site_name
|
|
||||||
|
|
||||||
- name: Debug blue_path
|
|
||||||
debug:
|
|
||||||
var: blue_path
|
|
||||||
|
|
||||||
# Kiểm tra các thông số Nexus
|
|
||||||
- name: Debug Nexus URL
|
|
||||||
debug:
|
|
||||||
var: nexus_url
|
|
||||||
|
|
||||||
- name: Debug artifact name
|
|
||||||
debug:
|
|
||||||
var: artifact_name
|
|
||||||
|
|
||||||
#Lấy đường dẫn vật lý của iis site
|
|
||||||
- name: Get the physical path of the current IIS site
|
|
||||||
win_shell: |
|
|
||||||
Import-Module WebAdministration
|
|
||||||
$site = Get-Website -Name "{{ iis_site_name}}"
|
|
||||||
$site.PhysicalPath
|
|
||||||
register: active_path
|
|
||||||
- debug:
|
|
||||||
var: active_path
|
|
||||||
|
|
||||||
- name: Handle error if active_path is null
|
|
||||||
fail:
|
|
||||||
msg: "The IIS site active path could not be determined."
|
|
||||||
when: active_path.stdout is not defined or active_path.stdout == ''
|
|
||||||
|
|
||||||
|
|
||||||
# Chuẩn hóa giá trị của active_path
|
|
||||||
- name: Normalize active_path
|
|
||||||
set_fact:
|
|
||||||
active_path: "{{ active_path.stdout | trim }}"
|
|
||||||
- debug:
|
|
||||||
var: active_path
|
|
||||||
|
|
||||||
# Chọn môi trường Blue hoặc Green để deploy
|
|
||||||
- name: Set target deployment environment
|
|
||||||
set_fact:
|
|
||||||
target_path: "{{ green_path if active_path == blue_path else blue_path }}" #lấy ra đường dẫn thư mục cần deploy
|
|
||||||
- debug:
|
|
||||||
var: target_path
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
- name: Update site IIS web application
|
|
||||||
win_iis_website:
|
|
||||||
name: "{{ iis_site_name }}"
|
|
||||||
physical_path: "{{ target_path }}"
|
|
||||||
|
|
||||||
# - name: Restart IIS site to apply changes
|
|
||||||
# win_iis_website:
|
|
||||||
# name: "{{ iis_site_name }}"
|
|
||||||
# state: restarted
|
|
||||||
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
# Xóa file tạm
|
|
||||||
- name: Clean up temporary files
|
|
||||||
win_file:
|
|
||||||
path: "{{ temp_dir }}\\{{ artifact_name }}"
|
|
||||||
state: absent
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
# Kiểm tra kết nối Nexus
|
|
||||||
- name: Check Nexus connectivity
|
|
||||||
uri:
|
|
||||||
url: "{{ nexus_url }}"
|
|
||||||
method: GET
|
|
||||||
return_content: yes
|
|
||||||
status_code: 200
|
|
||||||
register: nexus_response
|
|
||||||
|
|
||||||
- name: Verify Nexus response
|
|
||||||
fail:
|
|
||||||
msg: "Unable to connect to Nexus at {{ nexus_url }}"
|
|
||||||
when: nexus_response.status != 200
|
|
||||||
|
|
||||||
# Kiểm tra quyền ghi trên thư mục target
|
|
||||||
- name: Verify write access to target path
|
|
||||||
win_acl:
|
|
||||||
path: "{{ target_path }}"
|
|
||||||
state: query
|
|
||||||
register: acl_status
|
|
||||||
|
|
||||||
- name: Ensure target path is writable
|
|
||||||
fail:
|
|
||||||
msg: "No write permissions for target path: {{ target_path }}"
|
|
||||||
when: acl_status.permissions | length == 0
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
# Tải artifact từ Nexus
|
|
||||||
- name: Download artifact from Nexus
|
|
||||||
win_get_url:
|
|
||||||
url: "{{ nexus_url }}/{{ artifact_name }}"
|
|
||||||
dest: "{{ temp_dir }}\\{{ artifact_name }}"
|
|
||||||
validate_certs: no
|
|
||||||
url_username: "{{ nexus_username }}"
|
|
||||||
url_password: "{{ nexus_password }}"
|
|
||||||
register: download_status
|
|
||||||
vars:
|
|
||||||
nexus_url: "{{ nexus_url }}"
|
|
||||||
artifact_name: "{{ artifact_name }}"
|
|
||||||
nexus_username: "{{ nexus_username }}"
|
|
||||||
nexus_password: "{{ nexus_password }}"
|
|
||||||
|
|
||||||
# Debug download_status
|
|
||||||
- name: Debug download_status
|
|
||||||
debug:
|
|
||||||
var: download_status
|
|
||||||
|
|
||||||
- name: Check if the download was successful
|
|
||||||
debug:
|
|
||||||
msg: "Download successful: {{ download_status.msg }}"
|
|
||||||
|
|
||||||
# Kiểm tra ở trên server đã tồn tại file vùa tải xuống không
|
|
||||||
- name: Check if the artifact file exists
|
|
||||||
stat:
|
|
||||||
path: "{{ temp_dir }}/{{ artifact_name }}"
|
|
||||||
register: file_status
|
|
||||||
changed_when: false
|
|
||||||
failed_when: false
|
|
||||||
|
|
||||||
# Debug file_status
|
|
||||||
- name: Debug file_status
|
|
||||||
debug:
|
|
||||||
var: file_status
|
|
||||||
|
|
||||||
|
|
||||||
# Giải nén artifact vào thư mục target
|
|
||||||
- name: Deploy to target environment
|
|
||||||
win_unzip:
|
|
||||||
src: "{{ temp_dir }}\\{{ artifact_name }}"
|
|
||||||
dest: "{{ target_path }}"
|
|
||||||
overwrite: yes
|
|
||||||
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
- name: Setup environment
|
|
||||||
import_tasks: setup.yml
|
|
||||||
|
|
||||||
# - name: Run common checks
|
|
||||||
# import_tasks: common.yml
|
|
||||||
|
|
||||||
- name: Deploy application
|
|
||||||
import_tasks: deploy.yml
|
|
||||||
|
|
||||||
- name: Clean up temporary files
|
|
||||||
import_tasks: cleanup.yml
|
|
||||||
|
|
||||||
- name: Switch
|
|
||||||
import_tasks: switch.yml
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
#Debug
|
|
||||||
- name: Debug iis_site_name
|
|
||||||
debug:
|
|
||||||
var: iis_site_name
|
|
||||||
|
|
||||||
- name: Debug blue_path
|
|
||||||
debug:
|
|
||||||
var: blue_path
|
|
||||||
|
|
||||||
# Kiểm tra các thông số Nexus
|
|
||||||
- name: Debug Nexus URL
|
|
||||||
debug:
|
|
||||||
var: nexus_url
|
|
||||||
|
|
||||||
- name: Debug artifact name
|
|
||||||
debug:
|
|
||||||
var: artifact_name
|
|
||||||
|
|
||||||
#Lấy đường dẫn vật lý của iis site
|
|
||||||
- name: Get the physical path of the current IIS site
|
|
||||||
win_shell: |
|
|
||||||
Import-Module WebAdministration
|
|
||||||
$site = Get-Website -Name "{{ iis_site_name }}"
|
|
||||||
$site.PhysicalPath
|
|
||||||
register: active_path
|
|
||||||
- debug:
|
|
||||||
var: active_path
|
|
||||||
|
|
||||||
- name: Handle error if active_path is null
|
|
||||||
fail:
|
|
||||||
msg: "The IIS site active path could not be determined."
|
|
||||||
when: active_path.stdout is not defined or active_path.stdout == ''
|
|
||||||
|
|
||||||
|
|
||||||
# Chuẩn hóa giá trị của active_path
|
|
||||||
- name: Normalize active_path
|
|
||||||
set_fact:
|
|
||||||
active_path: "{{ active_path.stdout | trim }}"
|
|
||||||
- debug:
|
|
||||||
var: active_path
|
|
||||||
|
|
||||||
# Chọn môi trường Blue hoặc Green để deploy
|
|
||||||
- name: Set target deployment environment
|
|
||||||
set_fact:
|
|
||||||
target_path: "{{ green_path if active_path == blue_path else blue_path }}" #lấy ra đường dẫn thư mục cần deploy
|
|
||||||
- debug:
|
|
||||||
var: target_path
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
- name: Update IIS web application path
|
|
||||||
win_iis_website:
|
|
||||||
name: "{{ iis_site_name }}"
|
|
||||||
physical_path: "{{ target_path }}"
|
|
||||||
|
|
||||||
# - name: Restart IIS site to apply changes
|
|
||||||
# win_iis_website:
|
|
||||||
# name: "{{ iis_site_name }}"
|
|
||||||
# state: restarted
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user