8 Commits

Author SHA1 Message Date
thienqb123456 0375ab6efb Thienvv - update net core envg 2025-03-07 20:29:15 +07:00
thienqb123456 4aeacb1d82 upda 2025-03-05 18:44:14 +07:00
thienqb123456 8fc17fc09f Thienvv - new ansible part5 2025-03-05 18:19:08 +07:00
thienqb123456 f61855de2f Thienvv - fix4 2025-03-05 17:45:42 +07:00
thienqb123456 3f94dfe6f1 Thienvv - fix3 2025-03-05 17:14:55 +07:00
thienqb123456 689dcb50a5 Thienvv -deploy_ktdt_resource_backend.yml 2025-03-05 17:12:16 +07:00
thienqb123456 fd2771e574 thay đổi ansible sang ver3 new 2025-03-05 16:41:40 +07:00
thienqb123456 d6d726e48d ansible v3 2025-03-05 11:58:28 +07:00
53 changed files with 194 additions and 335 deletions
-11
View File
@@ -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"
@@ -2,3 +2,5 @@ temp_dir: "C:\\deploy\\vpress\\temp"
iis_site_name: "acp-api.kinhtedothi.vn"
blue_path: "C:\\deploy\\acp\\be\\blue"
green_path: "C:\\deploy\\acp\\be\\green"
aspnetcore_environment: "Ktdt_Production"
@@ -3,4 +3,4 @@ iis_site_name: "portal-api.hanoitimes.vn"
blue_path: "C:\\deploy\\portal\\be\\hnt\\blue"
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"
@@ -3,4 +3,4 @@ iis_site_name: "portal-api.kinhtedothi.vn"
blue_path: "C:\\deploy\\portal\\be\\ktdt\\blue"
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"
+25
View File
@@ -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
-14
View File
@@ -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
View File
View File
View File
@@ -2,3 +2,5 @@ temp_dir: "C:\\deploy\\vpress\\temp"
iis_site_name: "api-acp-2025"
blue_path: "C:\\deploy\\vpress\\acp\\be\\blue"
green_path: "C:\\deploy\\vpress\\acp\\be\\green"
aspnetcore_environment: "Uat"
+28
View File
@@ -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
+5
View File
@@ -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
-5
View File
@@ -1,5 +0,0 @@
- name: Deploy Backend for Project Acp, Portal
hosts: "{{ deploy_env }}-{{project_name}}-backend"
roles:
- deploy
-10
View File
@@ -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
-10
View File
@@ -1,10 +0,0 @@
- 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
-4
View File
@@ -1,4 +0,0 @@
- name: Deploy Frontend for Project Acp, Portal
hosts: "{{ deploy_env }}-{{project_name}}-frontend"
roles:
- deploy
-9
View File
@@ -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
+32
View File
@@ -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
+28
View File
@@ -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
-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
-45
View File
@@ -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
+21 -8
View File
@@ -1,13 +1,26 @@
- 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: Switch
import_tasks: switch.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
-47
View File
@@ -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
-10
View File
@@ -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
-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
-25
View File
@@ -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
-45
View File
@@ -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
-16
View File
@@ -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
-47
View File
@@ -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
-10
View File
@@ -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