5 Commits

Author SHA1 Message Date
thienqb123456 da179bd1c3 quite-good 2025-03-04 18:17:07 +07:00
thienqb123456 87eef3e85b deploy-fe-portal new 2025-03-04 18:06:31 +07:00
thienqb123456 3c083c6dba fix 22 2025-03-04 17:33:51 +07:00
thienqb123456 26f8e27b5f fix 21 2025-03-04 17:31:13 +07:00
thienqb123456 26f303c862 fix 20 2025-03-04 17:21:15 +07:00
10 changed files with 70 additions and 175 deletions
@@ -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"
@@ -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"
+1 -1
View File
@@ -1,4 +1,4 @@
- name: Deploy Backend for Project Portal
- name: Deploy Backend for Project Resource
hosts: "{{ deploy_env }}-{{project_name}}-backend"
vars:
portal_name: "{{ portal_name }}"
-5
View File
@@ -1,5 +0,0 @@
# Xóa file tạm
- name: Clean up temporary files
win_file:
path: "{{ temp_dir }}\\{{ artifact_name }}"
state: absent
-46
View File
@@ -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
+28 -9
View File
@@ -1,13 +1,32 @@
- name: Setup environment
import_tasks: setup.yml
- name: Deploy application
import_tasks: deploy.yml
- name: get_site_current_active_path.yml
import_role:
name: iis_utils
tasks_from: get_site_current_active_path.yml
- name: Clean up temporary files
import_tasks: cleanup.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: Switch
import_tasks: switch.yml
-60
View File
@@ -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
-20
View File
@@ -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
+29 -30
View File
@@ -1,35 +1,34 @@
tasks:
- name: get_site_current_active_path.yml
import_role:
name: iis_utils
tasks_from: get_site_current_active_path.yml
- 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
- 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