27 Commits

Author SHA1 Message Date
thienqb123456 94386913d3 xxx 2025-02-22 19:30:31 +07:00
thienqb123456 13bd8782bc x 2025-02-22 16:34:36 +07:00
thienqb123456 318578a0d0 Thienvv 2025-02-22 12:21:09 +07:00
thienqb123456 27eb7651c9 thienvv 2025-01-15 15:21:31 +07:00
thienqb123456 83c973eecc thiem host vao file ini 2025-01-15 15:02:52 +07:00
thienqb123456 00cb30ee81 portal beta 2025-01-15 14:58:12 +07:00
thienqb123456 5dc1d2bfcd Thienvv - host_vars cho cd mt beta 2025-01-15 14:57:03 +07:00
thienqb123456 6451f8467c beta env 2025-01-15 14:41:03 +07:00
thienqb123456 b53189c5e5 Thienvv - host prod resource 2025-01-13 10:19:35 +07:00
thienqb123456 bd41a70979 Thienvv - ansible , thêm host cho resource api 2025-01-11 19:50:57 +07:00
thienqb123456 d3eb6b9351 Thienvv - them playbook cho deploy_fe_portal, roles,... 2025-01-09 18:35:25 +07:00
thienqb123456 88a3e6bf5b Thienvv - 2025-01-09 16:50:25 +07:00
thienqb123456 e28200ad70 portal fe uat 2025-01-09 16:34:07 +07:00
thienqb123456 6531a9baa3 Thienvv - 2024-12-23 01:32:23 +07:00
thienqb123456 89a9cc4500 Thienvv - 2024-12-23 01:28:28 +07:00
thienqb123456 37af3c17eb t 2024-12-23 01:19:02 +07:00
thienqb123456 01c6239bfe Thienvv- 2024-12-23 01:12:01 +07:00
thienqb123456 d6788d42f8 Thienvv - 2024-12-23 01:09:53 +07:00
thienqb123456 d789cc9843 Thienvv 2024-12-23 01:02:43 +07:00
thienqb123456 df12bcec3e Thienvv 2024-12-23 00:55:04 +07:00
thienqb123456 f71122991f Thienvv - 2024-12-23 00:50:18 +07:00
thienqb123456 46b517894e Thienvv - 2024-12-23 00:48:32 +07:00
thienqb123456 63f40a088e Thienvv 2024-12-23 00:35:23 +07:00
thienqb123456 7664002bea Thienvv - 2024-12-23 00:27:39 +07:00
thienqb123456 267a77cc08 Thienvv - 2024-12-23 00:23:40 +07:00
thienqb123456 fbefb3750d Thienvv - 2024-12-23 00:12:58 +07:00
thienqb123456 52dc8e68e6 v2 ngay 19/12/24 2024-12-19 00:40:20 +07:00
26 changed files with 243 additions and 73 deletions
+11
View File
@@ -0,0 +1,11 @@
[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
+4
View File
@@ -0,0 +1,4 @@
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"
@@ -0,0 +1,4 @@
temp_dir: "C:\\deploy\\vpress\\temp"
iis_site_name: "tsht.kinhtedothi.vn"
blue_path: "C:\\deploy\\acp\\fe\\blue"
green_path: "C:\\deploy\\acp\\fe\\green"
@@ -0,0 +1,4 @@
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"
@@ -0,0 +1,10 @@
temp_dir: "C:\\deploy\\vpress\\temp"
iis_site_name_1: "beta.kinhtedothi.vn"
iis_site_name_2: "beta.hanoitimes.vn"
blue_path: "C:\\deploy\\portal\\fe\\blue"
green_path: "C:\\deploy\\portal\\fe\\green"
# iis_site_name_1: "kinhtedothi.vn"
# iis_site_name_2: "hanoitimes.vn"
# blue_path: "C:\\deploy\\portal\\fe2\\blue"
# green_path: "C:\\deploy\\portal\\fe2\\green"
-4
View File
@@ -1,4 +0,0 @@
temp_dir: "C:\\deploy\\vpress\\temp"
iis_site_name: "api-acp.kinhtedothi.vn"
blue_path: "C:\\deploy\\vpress\\acp\\be\\blue"
green_path: "C:\\deploy\\vpress\\acp\\be\\green"
-4
View File
@@ -1,4 +0,0 @@
temp_dir: "C:\\deploy\\vpress\\temp"
iis_site_name: "api-portal.kinhtedothi.vn"
blue_path: "C:\\deploy\\vpress\\portal\\be\\blue"
green_path: "C:\\deploy\\vpress\\portal\\be\\green"
-4
View File
@@ -1,4 +0,0 @@
temp_dir: "C:\\deploy\\vpress\\temp"
iis_site_name: "acp.kinhtedothi.vn"
blue_path: "C:\\deploy\\vpress\\acp\\fe\\blue"
green_path: "C:\\deploy\\vpress\\acp\\fe\\green"
-4
View File
@@ -1,4 +0,0 @@
temp_dir: "C:\\deploy\\vpress\\temp"
iis_site_name: "demo.kinhtedothi.vn"
blue_path: "C:\\deploy\\vpress\\portal\\fe\\blue"
green_path: "C:\\deploy\\vpress\\portal\\fe\\green"
@@ -1,4 +1,5 @@
temp_dir: "C:\\deploy\\vpress\\temp" temp_dir: "C:\\deploy\\vpress\\temp"
iis_site_name: "uat_be_acp_TEST" iis_site_name_1: "uat-portal.vpress.vn"
iis_site_name_2: "uat-portal2"
blue_path: "C:\\deploy\\vpress\\portal\\fe\\blue" blue_path: "C:\\deploy\\vpress\\portal\\fe\\blue"
green_path: "C:\\deploy\\vpress\\portal\\fe\\green" green_path: "C:\\deploy\\vpress\\portal\\fe\\green"
@@ -0,0 +1,4 @@
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"
-11
View File
@@ -1,11 +0,0 @@
[prod_be_acp_webservers]
prod_be_acp ansible_host=123.30.186.68 ansible_user=jenkins_cicd_ktdt ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
[prod_be_portal_webservers]
prod_be_portal ansible_host=123.30.186.68 ansible_user=jenkins_cicd_ktdt ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
[prod_fe_acp_webservers]
prod_fe_acp ansible_host=123.30.186.68 ansible_user=jenkins_cicd_ktdt ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
[prod_be_portal_webservers]
prod_fe_portal ansible_host=123.30.186.68 ansible_user=jenkins_cicd_ktdt ansible_password=Thienthien123@ ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore
+11 -8
View File
@@ -1,11 +1,14 @@
[uat_be_acp_webservers] [uat-acp-backend-webservers]
uat_be_acp 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-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_be_portal_webservers] [uat-portal-backend-webservers]
uat_be_portal 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 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_fe_acp_webservers] [uat-resource-backend-webservers]
uat_fe_acp 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 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_be_portal_webservers] [uat-acp-frontend-webservers]
uat_fe_portal 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 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 -1
View File
@@ -1,5 +1,5 @@
- name: Deploy Backend for Project Acp, Portal - name: Deploy Backend for Project Acp, Portal
hosts: "{{ target_host }}" hosts: "{{ deploy_env }}-{{project_name}}-backend"
roles: roles:
- deploy - deploy
+1 -1
View File
@@ -1,4 +1,4 @@
- name: Deploy Frontend for Project Acp, Portal - name: Deploy Frontend for Project Acp, Portal
hosts: "{{ target_host }}" hosts: "{{ deploy_env }}-{{project_name}}-frontend"
roles: roles:
- deploy - deploy
+4
View File
@@ -0,0 +1,4 @@
- name: Deploy Frontend for Project Portal
hosts: "{{ deploy_env }}-{{project_name}}-frontend"
roles:
- deploy-fe-portal
+5
View File
@@ -0,0 +1,5 @@
# Xóa file tạm
- name: Clean up temporary files
win_file:
path: "{{ temp_dir }}\\{{ artifact_name }}"
state: absent
+45
View File
@@ -0,0 +1,45 @@
# 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
+13
View File
@@ -0,0 +1,13 @@
- name: Setup environment
import_tasks: setup.yml
- name: Deploy application
import_tasks: deploy.yml
- name: Clean up temporary files
import_tasks: cleanup.yml
- name: Switch
import_tasks: switch.yml
+51
View File
@@ -0,0 +1,51 @@
#Debug
- name: Debug iis_site_name_1
debug:
var: iis_site_name_1
- name: Debug iis_site_name_2
debug:
var: iis_site_name_2
- 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_1 }}"
$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
+15
View File
@@ -0,0 +1,15 @@
- name: Update site 1 IIS web application
win_iis_website:
name: "{{ iis_site_name_1 }}"
physical_path: "{{ target_path }}"
- name: Update site 2 IIS web application
win_iis_website:
name: "{{ iis_site_name_2 }}"
physical_path: "{{ target_path }}"
# - name: Restart IIS site to apply changes
# win_iis_website:
# name: "{{ iis_site_name }}"
# state: restarted
+23 -6
View File
@@ -13,14 +13,31 @@
nexus_username: "{{ nexus_username }}" nexus_username: "{{ nexus_username }}"
nexus_password: "{{ nexus_password }}" nexus_password: "{{ nexus_password }}"
# Kiểm tra xem artifact đã được tải thành công chưa # Debug download_status
- name: Verify artifact download - name: Debug download_status
fail: debug:
msg: "Failed to download artifact from Nexus." var: download_status
when: download_status is failed
- 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 # Giải nén artifact vào thư mục target
- name: Deploy Backend to target environment - name: Deploy to target environment
win_unzip: win_unzip:
src: "{{ temp_dir }}\\{{ artifact_name }}" src: "{{ temp_dir }}\\{{ artifact_name }}"
dest: "{{ target_path }}" dest: "{{ target_path }}"
+35 -29
View File
@@ -1,38 +1,12 @@
#Debug
- name: Debug iis_site_name - name: Debug iis_site_name
debug: debug:
var: iis_site_name var: iis_site_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
# Chuẩn hóa giá trị của active_path
- name: Normalize active_path
set_fact:
active_path: "{{ active_path.stdout | trim }}"
# Debug các biến quan trọng
- name: Debug active_path
debug:
var: active_path
- name: Debug blue_path - name: Debug blue_path
debug: debug:
var: blue_path var: blue_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
- name: Debug target_path
debug:
var: target_path
# Kiểm tra các thông số Nexus # Kiểm tra các thông số Nexus
- name: Debug Nexus URL - name: Debug Nexus URL
debug: debug:
@@ -40,4 +14,36 @@
- name: Debug artifact name - name: Debug artifact name
debug: debug:
var: artifact_name 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