Skip to content

Commit 96c4a25

Browse files
committed
fix(docker version): remove docker version
1 parent da3ea77 commit 96c4a25

19 files changed

Lines changed: 371 additions & 341 deletions

File tree

Lines changed: 86 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,111 @@
11
import os
22

33
project_name = "app/media/MyAnsible"
4-
5-
# Define directory structure
64
ansible_dir = project_name
75
group_vars_dir = os.path.join(ansible_dir, "group_vars")
8-
hosts_file = os.path.join(ansible_dir, "hosts")
96
host_vars_dir = os.path.join(ansible_dir, "host_vars")
10-
nginx_playbook_file = os.path.join(ansible_dir, "nginx_playbook.yml")
117
roles_dir = os.path.join(ansible_dir, "roles")
12-
install_nginx_dir = os.path.join(roles_dir, "install_nginx")
13-
defaults_dir = os.path.join(install_nginx_dir, "defaults")
14-
handlers_dir = os.path.join(install_nginx_dir, "handlers")
15-
tasks_dir = os.path.join(install_nginx_dir, "tasks")
16-
templates_dir = os.path.join(install_nginx_dir, "templates")
17-
vars_dir = os.path.join(install_nginx_dir, "vars")
8+
install_docker_dir = os.path.join(roles_dir, "install_docker")
9+
tasks_dir = os.path.join(install_docker_dir, "tasks")
10+
vars_dir = os.path.join(install_docker_dir, "vars")
11+
files_dir = os.path.join(install_docker_dir, "files")
12+
handlers_dir = os.path.join(install_docker_dir, "handlers")
13+
templates_dir = os.path.join(install_docker_dir, "templates")
1814

1915
# Create project directories
16+
os.makedirs(ansible_dir, exist_ok=True)
2017
os.makedirs(group_vars_dir, exist_ok=True)
2118
os.makedirs(host_vars_dir, exist_ok=True)
19+
os.makedirs(roles_dir, exist_ok=True)
20+
os.makedirs(install_docker_dir, exist_ok=True)
2221
os.makedirs(tasks_dir, exist_ok=True)
23-
os.makedirs(defaults_dir, exist_ok=True)
22+
os.makedirs(vars_dir, exist_ok=True)
23+
os.makedirs(files_dir, exist_ok=True)
2424
os.makedirs(handlers_dir, exist_ok=True)
2525
os.makedirs(templates_dir, exist_ok=True)
26-
os.makedirs(vars_dir, exist_ok=True)
27-
os.makedirs(roles_dir, exist_ok=True)
28-
os.makedirs(install_nginx_dir, exist_ok=True)
2926

3027
# Create ansible.cfg
31-
with open(os.path.join(ansible_dir, "ansible.cfg"), "w") as ansible_config:
32-
ansible_config.write("[defaults]\n")
33-
ansible_config.write("host_key_checking=false\n")
28+
with open(os.path.join(ansible_dir, "ansible.cfg"), "w") as cfg_file:
29+
cfg_file.write("[defaults]\n")
30+
cfg_file.write("host_key_checking=false\n")
3431

35-
# Create group_vars/nginx_nodes
36-
with open(os.path.join(group_vars_dir, "nginx_nodes"), "w") as nginx_nodes:
37-
nginx_nodes.write("ansible_port: 22\n")
38-
nginx_nodes.write("ansible_user: root\n")
32+
# Create group_vars/docker_nodes
33+
with open(os.path.join(group_vars_dir, "docker_nodes"), "w") as gv_file:
34+
gv_file.write("ansible_port: 28\n")
35+
gv_file.write("ansible_user: root\n")
3936

40-
# Create hosts file
41-
with open(hosts_file, "w") as hosts:
42-
hosts.write("[nginx_nodes]\n")
43-
hosts.write("www.examppple.com\n")
37+
# Create hosts
38+
with open(os.path.join(ansible_dir, "hosts"), "w") as hosts_file:
39+
hosts_file.write("[docker_nodes]\n")
40+
hosts_file.write("www.example.com\n")
4441

45-
# Create nginx_playbook.yml
46-
with open(nginx_playbook_file, "w") as playbook:
47-
playbook.write("- hosts: all\n")
48-
playbook.write(" roles:\n")
49-
playbook.write(" - install_nginx\n")
42+
# Create docker_playbook.yml
43+
with open(os.path.join(ansible_dir, "docker_playbook.yml"), "w") as playbook_file:
44+
playbook_file.write("- hosts: all\n")
45+
playbook_file.write(" roles:\n")
46+
playbook_file.write(" - install_docker\n")
5047

51-
# Create install_nginx/tasks/main.yml
52-
with open(os.path.join(tasks_dir, "main.yml"), "w") as tasks:
53-
tasks.write("---\n")
54-
tasks.write("- name: Install CA certificates to ensure HTTPS connections work\n")
55-
tasks.write(" apt:\n")
56-
tasks.write(" name: ca-certificates\n")
57-
tasks.write(" state: present\n\n")
58-
59-
tasks.write("- name: Add Nginx signing key\n")
60-
tasks.write(" apt_key:\n")
61-
tasks.write(" url: \"{ nginx_repo_key_url }\"\n")
62-
tasks.write(" state: present\n\n")
48+
# Create tasks/main.yml
49+
with open(os.path.join(tasks_dir, "main.yml"), "w") as tasks_file:
50+
tasks_file.write("---\n")
51+
tasks_file.write("- name: Install prerequisite packages\n")
52+
tasks_file.write(" apt:\n")
53+
tasks_file.write(" name: \"{{ item }}\"\n")
54+
tasks_file.write(" state: present\n")
55+
tasks_file.write(" loop: \"{{ prerequisite_packages }}\"\n")
56+
tasks_file.write("- name: Create directory for Docker keyrings\n")
57+
tasks_file.write(" file:\n")
58+
tasks_file.write(" path: /etc/apt/keyrings\n")
59+
tasks_file.write(" state: directory\n")
60+
tasks_file.write(" mode: '0755'\n")
61+
tasks_file.write("- name: Download Docker's official GPG key\n")
62+
tasks_file.write(" get_url:\n")
63+
tasks_file.write(" url: https://download.docker.com/linux/ubuntu/gpg\n")
64+
tasks_file.write(" dest: /etc/apt/keyrings/docker.asc\n")
65+
tasks_file.write(" mode: '0644'\n")
66+
tasks_file.write("- name: Add Docker repository to apt sources\n")
67+
tasks_file.write(" copy:\n")
68+
tasks_file.write(" content: |\n")
69+
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")
70+
tasks_file.write(" dest: /etc/apt/sources.list.d/docker.list\n")
71+
tasks_file.write("- name: Update apt cache after adding Docker repo\n")
72+
tasks_file.write(" apt:\n")
73+
tasks_file.write(" update_cache: yes\n")
74+
tasks_file.write("- name: Install Docker packages\n")
75+
tasks_file.write(" apt:\n")
76+
tasks_file.write(" name: \"{{ item }}\"\n")
77+
tasks_file.write(" state: present\n")
78+
tasks_file.write(" loop: \"{{ docker_packages }}\"\n")
79+
tasks_file.write("- name: Ensure Docker and containerd services are started and enabled\n")
80+
tasks_file.write(" service:\n")
81+
tasks_file.write(" name: \"{{ item }}\"\n")
82+
tasks_file.write(" state: started\n")
83+
tasks_file.write(" enabled: yes\n")
84+
tasks_file.write(" loop: \"{{ docker_services }}\"\n")
6385

64-
tasks.write("- name: Add Nginx repository\n")
65-
tasks.write(" apt_repository:\n")
66-
tasks.write(" repo: \"deb { nginx_repo_url } { ansible_distribution_release } nginx\"\n")
67-
tasks.write(" state: present\n")
68-
tasks.write(" filename: nginx\n\n")
86+
# Create vars/main.yml
87+
with open(os.path.join(vars_dir, "main.yml"), "w") as vars_file:
88+
vars_file.write("prerequisite_packages:\n")
89+
vars_file.write(" - ca-certificates\n")
90+
vars_file.write(" - curl\n\n")
91+
vars_file.write("docker_services:\n")
92+
vars_file.write(" - docker\n")
93+
vars_file.write(" - containerd\n\n")
94+
vars_file.write("docker_packages:\n")
95+
vars_file.write(" - docker-ce\n")
96+
vars_file.write(" - docker-ce-cli\n")
97+
vars_file.write(" - containerd.io\n")
98+
vars_file.write(" - docker-buildx-plugin\n")
99+
vars_file.write(" - docker-compose-plugin\n")
69100

70-
tasks.write("- name: Update apt cache\n")
71-
tasks.write(" apt:\n")
72-
tasks.write(" update_cache: yes\n\n")
101+
# Create empty host_vars directory
102+
os.makedirs(host_vars_dir, exist_ok=True)
73103

74-
tasks.write("- name: Install specific version of Nginx\n")
75-
tasks.write(" apt:\n")
76-
tasks.write(" name: \"nginx={ nginx_version }~{ ansible_distribution_release }\"\n")
77-
tasks.write(" state: present\n\n")
104+
# Create empty files directory
105+
os.makedirs(files_dir, exist_ok=True)
78106

79-
tasks.write("- name: Ensure Nginx service is running and enabled\n")
80-
tasks.write(" service:\n")
81-
tasks.write(" name: nginx\n")
82-
tasks.write(" state: started\n")
83-
tasks.write(" enabled: yes\n")
107+
# Create empty handlers directory
108+
os.makedirs(handlers_dir, exist_ok=True)
84109

85-
# Create install_nginx/vars/main.yml
86-
with open(os.path.join(vars_dir, "main.yml"), "w") as vars_file:
87-
vars_file.write("nginx_repo_key_url: \"https://nginx.org/keys/nginx_signing.key\"\n")
88-
vars_file.write("nginx_repo_url: \"http://nginx.org/packages/mainline/ubuntu/\"\n")
89-
vars_file.write("nginx_version: \"1.23.4-1\"\n")
110+
# Create empty templates directory
111+
os.makedirs(templates_dir, exist_ok=True)

0 commit comments

Comments
 (0)