7 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
thienqb123456 a999f635ad new format ansible-playhook, role 2025-03-04 17:16:35 +07:00
thienqb123456 c7500c16ef tang --maxmemory cua portal 2025-03-04 17:13:09 +07:00
16 changed files with 193 additions and 99 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"
+10
View File
@@ -0,0 +1,10 @@
- name: Deploy Backend for Project Resource
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
-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
+27 -8
View File
@@ -1,13 +1,32 @@
- name: Setup environment
import_tasks: setup.yml
- name: get_site_current_active_path.yml
import_role:
name: iis_utils
tasks_from: get_site_current_active_path.yml
- name: Deploy application
import_tasks: deploy.yml
- name: set_target_path
import_role:
name: iis_utils
tasks_from: set_target_path.yml
- name: Clean up temporary files
import_tasks: cleanup.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
+34
View File
@@ -0,0 +1,34 @@
- 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
+14
View File
@@ -0,0 +1,14 @@
- name: Validate variables
assert:
that:
- artifact_name is defined and artifact_name | length > 0
- target_path is defined and target_path | length > 0
- temp_dir is defined and temp_dir | length > 0
fail_msg: "Thiếu hoặc rỗng biến cần thiết để deploy artifact!"
# 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,3 +1,13 @@
- name: Validate variables
assert:
that:
- nexus_url is defined and nexus_url | length > 0
- temp_dir is defined and temp_dir | length > 0
- artifact_name is defined and artifact_name | length > 0
- nexus_username is defined and nexus_username | length > 0
- nexus_password is defined and nexus_password | length > 0
fail_msg: "Thiếu hoặc rỗng biến cần thiết để download artifact!"
# Tải artifact từ Nexus Repository
- name: Download artifact from Nexus
win_get_url:
@@ -36,11 +46,3 @@
- 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
@@ -0,0 +1,12 @@
- name: Validate variables
assert:
that:
- temp_dir is defined and temp_dir | length > 0
- artifact_name is defined and artifact_name | length > 0
fail_msg: "Thiếu hoặc rỗng biến cần thiết để cleanup_temp_artifact!"
# Xóa file tạm
- name: Clean up temporary files
win_file:
path: "{{ temp_dir }}\\{{ artifact_name }}"
state: absent
@@ -0,0 +1,26 @@
- name: Validate variables
assert:
that:
- iis_site_name is defined and iis_site_name | length > 0
fail_msg: "Thiếu hoặc rỗng biến cần thiết để get_site_current_active_path!"
#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"
@@ -0,0 +1,11 @@
- name: Validate variables
assert:
that:
- iis_site_name is defined and iis_site_name | length > 0
fail_msg: "Thiếu hoặc rỗng biến cần thiết để restart_iis_site.yml!"
# Restart IIS site
- name: Restart IIS site
win_iis_website:
name: "{{ iis_site_name }}"
state: restarted
@@ -1,8 +1,9 @@
# 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 }}"
- name: Validate variables
assert:
that:
- iis_site_name is defined and iis_site_name | length > 0
- aspnetcore_environment is defined and aspnetcore_environment | length > 0
fail_msg: "Thiếu hoặc rỗng biến cần thiết để set_site_aspnetcore_environment!"
# Set ASPNETCORE_ENVIRONMENT cho site IIS
- name: Set ASPNETCORE_ENVIRONMENT for IIS site
@@ -12,9 +13,3 @@
-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
+16
View File
@@ -0,0 +1,16 @@
- name: Validate variables
assert:
that:
- green_path is defined and green_path | length > 0
- blue_path is defined and blue_path | length > 0
- active_path is defined and active_path | length > 0
fail_msg: "Thiếu hoặc rỗng biến cần thiết để set_target_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
@@ -0,0 +1,12 @@
- name: Validate variables
assert:
that:
- iis_site_name is defined and iis_site_name | length > 0
- target_path is defined and target_path | length > 0
fail_msg: "Thiếu hoặc rỗng biến cần thiết để set_target_path!"
# 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 }}"