Skip to content

Commit 500242b

Browse files
committed
feat(kuber config): add kuberconfig dir in media
1 parent ecddfa6 commit 500242b

10 files changed

Lines changed: 163 additions & 2 deletions

File tree

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
import os
2+
3+
project_name = "app/media/MyAnsible"
4+
5+
ansible_dir = project_name
6+
group_vars_dir = os.path.join(ansible_dir, "group_vars")
7+
host_vars_dir = os.path.join(ansible_dir, "host_vars")
8+
roles_dir = os.path.join(ansible_dir, "roles")
9+
install_docker_dir = os.path.join(roles_dir, "install_docker")
10+
tasks_dir = os.path.join(install_docker_dir, "tasks")
11+
vars_dir = os.path.join(install_docker_dir, "vars")
12+
files_dir = os.path.join(install_docker_dir, "files")
13+
handlers_dir = os.path.join(install_docker_dir, "handlers")
14+
templates_dir = os.path.join(install_docker_dir, "templates")
15+
16+
# Create project directories
17+
os.makedirs(ansible_dir, exist_ok=True)
18+
os.makedirs(group_vars_dir, exist_ok=True)
19+
os.makedirs(host_vars_dir, exist_ok=True)
20+
os.makedirs(roles_dir, exist_ok=True)
21+
os.makedirs(install_docker_dir, exist_ok=True)
22+
os.makedirs(tasks_dir, exist_ok=True)
23+
os.makedirs(vars_dir, exist_ok=True)
24+
os.makedirs(files_dir, exist_ok=True)
25+
os.makedirs(handlers_dir, exist_ok=True)
26+
os.makedirs(templates_dir, exist_ok=True)
27+
28+
# Create ansible.cfg
29+
with open(os.path.join(ansible_dir, "ansible.cfg"), "w") as ansible_cfg:
30+
ansible_cfg.write("[defaults]\n")
31+
ansible_cfg.write("host_key_checking=false\n")
32+
33+
# Create group_vars/docker_nodes
34+
with open(os.path.join(group_vars_dir, "docker_nodes"), "w") as docker_nodes:
35+
docker_nodes.write("ansible_port: 22\n")
36+
docker_nodes.write("ansible_user: root\n")
37+
38+
# Create hosts
39+
with open(os.path.join(ansible_dir, "hosts"), "w") as hosts_file:
40+
hosts_file.write("[docker_nodes]\n")
41+
hosts_file.write("www.example.com\n")
42+
43+
# Create empty host_vars directory
44+
open(os.path.join(host_vars_dir, ".gitkeep"), 'a').close()
45+
46+
# Create docker_playbook.yml
47+
with open(os.path.join(ansible_dir, "docker_playbook.yml"), "w") as playbook:
48+
playbook.write("- hosts: all\n")
49+
playbook.write(" roles:\n")
50+
playbook.write(" - install_docker\n")
51+
52+
# Create install_docker/tasks/main.yml
53+
with open(os.path.join(tasks_dir, "main.yml"), "w") as tasks_file:
54+
tasks_file.write("---\n")
55+
tasks_file.write("- name: Install prerequisite packages\n")
56+
tasks_file.write(" apt:\n")
57+
tasks_file.write(" name: \"{{ item }}\"\n")
58+
tasks_file.write(" state: present\n")
59+
tasks_file.write(" loop: \"{{ prerequisite_packages }}\"\n")
60+
tasks_file.write("- name: Create directory for Docker keyrings\n")
61+
tasks_file.write(" file:\n")
62+
tasks_file.write(" path: /etc/apt/keyrings\n")
63+
tasks_file.write(" state: directory\n")
64+
tasks_file.write(" mode: '0755'\n")
65+
tasks_file.write("- name: Download Docker's official GPG key\n")
66+
tasks_file.write(" get_url:\n")
67+
tasks_file.write(" url: https://download.docker.com/linux/ubuntu/gpg\n")
68+
tasks_file.write(" dest: /etc/apt/keyrings/docker.asc\n")
69+
tasks_file.write(" mode: '0644'\n")
70+
tasks_file.write("- name: Add Docker repository to apt sources\n")
71+
tasks_file.write(" copy:\n")
72+
tasks_file.write(" content: |\n")
73+
tasks_file.write(" deb [arch={{ ansible_architecture }} signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable\n")
74+
tasks_file.write(" dest: /etc/apt/sources.list.d/docker.list\n")
75+
tasks_file.write("- name: Update apt cache after adding Docker repo\n")
76+
tasks_file.write(" apt:\n")
77+
tasks_file.write(" update_cache: yes\n")
78+
tasks_file.write("- name: Install Docker packages\n")
79+
tasks_file.write(" apt:\n")
80+
tasks_file.write(" name: \"{{ item }}\"\n")
81+
tasks_file.write(" state: present\n")
82+
tasks_file.write(" loop: \"{{ docker_packages }}\"\n")
83+
tasks_file.write("- name: Ensure Docker and containerd services are started and enabled\n")
84+
tasks_file.write(" service:\n")
85+
tasks_file.write(" name: \"{{ item }}\"\n")
86+
tasks_file.write(" state: started\n")
87+
tasks_file.write(" enabled: yes\n")
88+
tasks_file.write(" loop: \"{{ docker_services }}\"\n")
89+
90+
# Create install_docker/vars/main.yml
91+
with open(os.path.join(vars_dir, "main.yml"), "w") as vars_file:
92+
vars_file.write("prerequisite_packages:\n")
93+
vars_file.write(" - ca-certificates\n")
94+
vars_file.write(" - curl\n\n")
95+
vars_file.write("docker_services:\n")
96+
vars_file.write(" - docker\n")
97+
vars_file.write(" - containerd\n\n")
98+
vars_file.write("docker_packages:\n")
99+
vars_file.write(" - docker-ce\n")
100+
vars_file.write(" - docker-ce-cli\n")
101+
vars_file.write(" - containerd.io\n")
102+
vars_file.write(" - docker-buildx-plugin\n")
103+
vars_file.write(" - docker-compose-plugin\n")

app/media/MyAnsible/ansible.cfg

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[defaults]
2+
host_key_checking=false
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
- hosts: all
2+
roles:
3+
- install_docker
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ansible_port: 22
2+
ansible_user: root

app/media/MyAnsible/host_vars/.gitkeep

Whitespace-only changes.

app/media/MyAnsible/hosts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[docker_nodes]
2+
www.example.com
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
- name: Install prerequisite packages
3+
apt:
4+
name: "{{ item }}"
5+
state: present
6+
loop: "{{ prerequisite_packages }}"
7+
- name: Create directory for Docker keyrings
8+
file:
9+
path: /etc/apt/keyrings
10+
state: directory
11+
mode: '0755'
12+
- name: Download Docker's official GPG key
13+
get_url:
14+
url: https://download.docker.com/linux/ubuntu/gpg
15+
dest: /etc/apt/keyrings/docker.asc
16+
mode: '0644'
17+
- name: Add Docker repository to apt sources
18+
copy:
19+
content: |
20+
deb [arch={{ ansible_architecture }} signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable
21+
dest: /etc/apt/sources.list.d/docker.list
22+
- name: Update apt cache after adding Docker repo
23+
apt:
24+
update_cache: yes
25+
- name: Install Docker packages
26+
apt:
27+
name: "{{ item }}"
28+
state: present
29+
loop: "{{ docker_packages }}"
30+
- name: Ensure Docker and containerd services are started and enabled
31+
service:
32+
name: "{{ item }}"
33+
state: started
34+
enabled: yes
35+
loop: "{{ docker_services }}"
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
prerequisite_packages:
2+
- ca-certificates
3+
- curl
4+
5+
docker_services:
6+
- docker
7+
- containerd
8+
9+
docker_packages:
10+
- docker-ce
11+
- docker-ce-cli
12+
- containerd.io
13+
- docker-buildx-plugin
14+
- docker-compose-plugin

app/models/ansible_models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class AnsibleInstallKuber(AnsibleBase):
3838
k8s_worker_nodes: List[str]
3939
k8s_master_nodes: List[str]
4040
lb_nodes: List[str]
41-
version:str = 1.31.2
41+
version:str = "1.31.2"
4242

4343

4444
@validator("os")

app/routes/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def zip_folder(folder_path: str, output_zip_path: str):
1414
# Add file to the zip file
1515
zip_file.write(file_path, os.path.relpath(file_path, folder_path))
1616

17-
def add_files_to_folder(files:list,folder:str = 'MyAnsible'):
17+
def add_files_to_folder(files:list,folder:str = 'MyAnsible/roles'):
1818
folder_path = f"app/media/{folder}"
1919
os.makedirs(folder_path, exist_ok=True)
2020

0 commit comments

Comments
 (0)