Skip to content

Commit c26bcbc

Browse files
authored
Rename project and fix ansible script (#30)
* 重命名專案相關的變數和配置,新增 a11yvillage-server 和 a11yvillage-web 的 playbook,並更新 coseeing 的配置文件 * 新增檢查 Docker 和 Docker Compose 的存在性,並安裝相關 Python 套件及 Docker 組件 * 調整部署選項順序,將 a11yvillage-server 移至選項列表中 * 更新 pre-common.yml,將 Docker 和 Docker Compose 的檢查改為使用 shell 指令,並新增安裝 Docker 的相關步驟及服務啟動設定 * 移除 Docker 相關的安裝和配置步驟,簡化 pre-common.yml * 新增 Docker 安裝和配置步驟,移除舊有的 Docker 相關包,確保服務啟動並驗證 Docker 運行狀態
1 parent 9cd81da commit c26bcbc

11 files changed

Lines changed: 140 additions & 16 deletions

.github/workflows/ansible.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ on:
1919
required: true
2020
type: choice
2121
options:
22-
- a11yvillage-be
23-
- a11yvillage-fe
24-
- coseeing-fe
25-
- coseeing-be
22+
- a11yvillage-web
23+
- a11yvillage-server
24+
- coseeing-web
25+
- coseeing-server
2626

2727
jobs:
2828
deploy:

.github/workflows/config/domain.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
{
2-
"a11yvillage-be": {
2+
"a11yvillage-server": {
33
"prod": {
44
"domain": "api.a11yvillage.coseeing.org"
55
},
66
"dev": {
77
"domain": "api.a11yvillage.dev.coseeing.org"
88
}
99
},
10-
"a11yvillage-fe": {
10+
"a11yvillage-web": {
1111
"prod": {
1212
"domain": "a11yvillage.coseeing.org"
1313
},
1414
"dev": {
1515
"domain": "a11yvillage.dev.coseeing.org"
1616
}
1717
},
18-
"coseeing-fe": {
18+
"coseeing-web": {
1919
"prod": {
2020
"domain": "coseeing.org"
2121
},
2222
"dev": {
2323
"domain": "dev.coseeing.org"
2424
}
2525
},
26-
"coseeing-be": {
26+
"coseeing-server": {
2727
"prod": {
2828
"domain": "api.coseeing.org"
2929
},

ansible_yaml/a11yvillage-be-playbook.yml renamed to ansible_yaml/a11yvillage-server-playbook.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
vars:
88
docker_compose_dir: "/data/a11yvillage-server{{ project_postfix }}"
99
secret_name: prod/rdsuser/a11yvillage
10-
traefik_certresolver: "a11yvillage-api{{ project_postfix }}"
11-
traefik_router_prefix: "a11yvillage-api-service{{ project_postfix }}--"
10+
traefik_certresolver: "a11yvillage-server{{ project_postfix }}"
11+
traefik_router_prefix: "a11yvillage-server-service{{ project_postfix }}--"
1212
image_name: "{{ ecr_location }}/a11yvillage-be:{{ deploy_tag }}"
13-
project_name: a11yvillage-be
13+
project_name: a11yvillage-server
1414
collections:
1515
- community.docker
1616
- community.aws
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
traefik_certresolver: "a11yvillage-web{{ project_postfix }}"
1111
traefik_router_prefix: "a11yvillage-web-service{{ project_postfix }}--"
1212
image_name: "{{ ecr_location }}/a11yvillage-fe:{{ deploy_tag }}"
13-
project_name: a11yvillage-fe
13+
project_name: a11yvillage-web
1414
collections:
1515
- community.docker
1616
- community.aws

ansible_yaml/common/pre-common.yml

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,130 @@
22
set_fact:
33
ansible_python_interpreter: /usr/bin/python3
44

5+
- name: Check if docker binary exists
6+
shell: "command -v docker"
7+
register: docker_bin
8+
ignore_errors: true
9+
changed_when: false
10+
11+
- name: Check if docker-compose binary exists
12+
shell: "command -v docker-compose"
13+
register: docker_compose_bin
14+
ignore_errors: true
15+
changed_when: false
16+
17+
- name: Check if docker compose plugin is available
18+
shell: "docker compose version"
19+
register: docker_compose_plugin
20+
ignore_errors: true
21+
changed_when: false
22+
23+
- name: Set compose_present fact
24+
set_fact:
25+
compose_present: "{{ (docker_compose_bin.rc == 0) or (docker_compose_plugin.rc == 0) }}"
26+
27+
- block:
28+
- name: Update apt repo and cache on all Debian/Ubuntu boxes
29+
apt: update_cache=yes force_apt_get=yes cache_valid_time=3600
30+
31+
- name: Upgrade all apt packages
32+
apt: upgrade=yes force_apt_get=yes
33+
34+
- name: Install Python pip
35+
apt: name={{ item }} update_cache=true state=present force_apt_get=yes
36+
with_items:
37+
- python3-pip
38+
39+
- name: Install Python packages using apt
40+
apt:
41+
name:
42+
- python3-docker
43+
- python3-boto3
44+
- python3-botocore
45+
- python3-venv
46+
- gcc
47+
- libaugeas0
48+
- libssl-dev
49+
- libffi-dev
50+
- ca-certificates
51+
- openssl
52+
- git
53+
state: present
54+
update_cache: yes
55+
56+
- name: Remove old Docker packages that may conflict
57+
apt:
58+
name:
59+
- docker
60+
- docker-engine
61+
- docker.io
62+
- containerd
63+
- runc
64+
state: absent
65+
purge: yes
66+
autoremove: yes
67+
68+
- name: Attempt to fix broken deps (apt-get -f install)
69+
shell: apt-get -f install -y
70+
register: apt_fix
71+
changed_when: apt_fix.rc == 0 and ('is already the newest version' not in apt_fix.stdout)
72+
73+
- name: Ensure prerequisites for apt over HTTPS are present
74+
apt:
75+
name:
76+
- apt-transport-https
77+
- ca-certificates
78+
- curl
79+
- gnupg
80+
- lsb-release
81+
state: present
82+
update_cache: yes
83+
84+
- name: Add Docker GPG key
85+
ansible.builtin.apt_key:
86+
url: https://download.docker.com/linux/ubuntu/gpg
87+
state: present
88+
89+
- name: Add Docker apt repository
90+
ansible.builtin.apt_repository:
91+
repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_lsb.codename }} stable"
92+
state: present
93+
filename: docker
94+
95+
- name: Update apt cache after adding docker repo
96+
apt: update_cache=yes cache_valid_time=3600
97+
98+
- name: Install Docker Engine and Compose plugin from Docker repo
99+
apt:
100+
name:
101+
- docker-ce
102+
- docker-ce-cli
103+
- containerd.io
104+
- docker-buildx-plugin
105+
- docker-compose-plugin
106+
state: present
107+
update_cache: yes
108+
109+
- name: Ensure containerd is started and enabled
110+
service:
111+
name: containerd
112+
state: started
113+
enabled: yes
114+
115+
- name: Ensure docker is started and enabled
116+
service:
117+
name: docker
118+
state: started
119+
enabled: yes
120+
121+
- name: Verify docker is running
122+
shell: docker --version
123+
register: docker_version
124+
failed_when: docker_version.rc != 0
125+
changed_when: false
126+
become: true
127+
when: "(docker_bin.rc != 0) or (not compose_present)"
128+
5129
- name: Load Traefik source config
6130
set_fact:
7131
traefik_source_config: "{{ lookup('file', playbook_dir + '/extra/{{ project_name }}.yml') | from_yaml }}"
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
vars:
88
docker_compose_dir: "/data/coseeing-server{{ project_postfix }}"
99
secret_name: prod/rdsuser/coseeing
10-
traefik_certresolver: "coseeing-api{{ project_postfix }}"
11-
traefik_router_prefix: "coseeing-api-service{{ project_postfix }}--"
10+
traefik_certresolver: "coseeing-server{{ project_postfix }}"
11+
traefik_router_prefix: "coseeing-server-service{{ project_postfix }}--"
1212
image_name: "{{ ecr_location }}/coseeing-be:{{ deploy_tag }}"
13-
project_name: coseeing-be
13+
project_name: coseeing-server
1414
collections:
1515
- community.docker
1616
- community.aws
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
traefik_certresolver: "coseeing-web{{ project_postfix }}"
1111
traefik_router_prefix: "coseeing-web-service{{ project_postfix }}--"
1212
image_name: "{{ ecr_location }}/coseeing-fe:{{ deploy_tag }}"
13-
project_name: coseeing-fe
13+
project_name: coseeing-web
1414
collections:
1515
- community.docker
1616
- community.aws

0 commit comments

Comments
 (0)