From 63ed3058529588155caaa424a30a59e3470b7e68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=2E=20Nam=C3=A8che?= Date: Wed, 18 Mar 2026 09:53:24 +0300 Subject: [PATCH] Main target is now Debian 13 instead of Ubuntu 24.04 --- example/ansible/inventory/groups.yml | 19 ++++++++++ example/ansible/play-main.yml | 38 ++++++++++--------- example/tofu/infra.auto.tfvars | 12 ++++-- example/tofu/variables.tf | 2 +- seb4itik/byow/roles/common/defaults/main.yml | 1 + seb4itik/byow/roles/common/handlers/main.yml | 4 ++ seb4itik/byow/roles/common/tasks/main.yml | 8 +++- .../byow/roles/common/tasks/setup_hosts.yml | 25 ++++++++++++ .../roles/common/tasks/setup_packages.yml | 1 + .../roles/common/tasks/setup_proxy_client.yml | 2 + .../roles/common/tasks/setup_resolved.yml | 8 ++++ seb4itik/byow/roles/common/templates/hosts | 9 +++++ seb4itik/byow/roles/mysql/tasks/main.yml | 4 +- seb4itik/byow/roles/mysql/vars/main.yml | 7 ++++ 14 files changed, 114 insertions(+), 26 deletions(-) create mode 100644 seb4itik/byow/roles/common/handlers/main.yml create mode 100644 seb4itik/byow/roles/common/tasks/setup_hosts.yml create mode 100644 seb4itik/byow/roles/common/tasks/setup_resolved.yml create mode 100644 seb4itik/byow/roles/common/templates/hosts create mode 100644 seb4itik/byow/roles/mysql/vars/main.yml diff --git a/example/ansible/inventory/groups.yml b/example/ansible/inventory/groups.yml index 709e60f..276ea00 100644 --- a/example/ansible/inventory/groups.yml +++ b/example/ansible/inventory/groups.yml @@ -2,6 +2,25 @@ linux: vars: ansible_user: "root" +debian13: + hosts: + bdd1: + nfs1: + waf1: +# waf2: +# waf3: + www1: + www2: + www3: +# www4: +# www5: + vars: + ansible_python_interpreter: "/usr/bin/python3.13" + +ubuntu2204lts: + vars: + ansible_python_interpreter: "/usr/bin/python3.10" + ubuntu2404lts: vars: ansible_python_interpreter: "/usr/bin/python3.12" diff --git a/example/ansible/play-main.yml b/example/ansible/play-main.yml index c68fce3..61ec480 100644 --- a/example/ansible/play-main.yml +++ b/example/ansible/play-main.yml @@ -24,19 +24,19 @@ tags: - "local_ca" -# - name: Proxy server -# hosts: proxy -# gather_facts: false -# vars_files: -# - "vars/common.yml" -# - "vars/secrets.yml" -# vars: -# squid_authorized_networks: -# - "{{ ansible_default_ipv4.network }}/24" -# roles: -# - "squid" -# tags: -# - "proxy" +- name: Proxy server + hosts: proxy + gather_facts: false + vars_files: + - "vars/common.yml" + - "vars/secrets.yml" + vars: + squid_authorized_networks: + - "{{ ansible_default_ipv4.network }}/24" + roles: + - "squid" + tags: + - "proxy" - name: Common hosts: all @@ -46,6 +46,8 @@ - "vars/secrets.yml" vars: # common_proxy_server: "{{ hostvars['proxy1'].ansible_default_ipv4.address }}:3128" + common_search_domains: + - "multipass" common_default_packages: - "net-tools" - "htop" @@ -183,11 +185,11 @@ owner: 1001 group: 33 clients: - - address: "www1" + - address: "www1.multipass" options: "rw,no_root_squash" - - address: "www2" + - address: "www2.multipass" options: "rw,no_root_squash" - - address: "www3" + - address: "www3.multipass" options: "rw,no_root_squash" roles: - "nfs_server" @@ -203,7 +205,7 @@ vars: nfs_client_mounts: - mount_point: "/var/www/wordpress" - server: "nfs1:/srv/wordpress" + server: "nfs1.multipass:/srv/wordpress" owner: 1001 group: 33 wordpress_create_master: "www1" @@ -215,7 +217,7 @@ wordpress_admin_email: "seb@itik.fr" wordpress_themes: ["twentytwentyfive"] wordpress_active_theme: "twentytwentyfive" - wordpress_db_host: "bdd1" + wordpress_db_host: "bdd1.multipass" wordpress_db_pass: "{{ secrets.wordpress.mysql_password }}" roles: - "nfs_client" diff --git a/example/tofu/infra.auto.tfvars b/example/tofu/infra.auto.tfvars index a5e6618..aa2f2b6 100644 --- a/example/tofu/infra.auto.tfvars +++ b/example/tofu/infra.auto.tfvars @@ -7,15 +7,21 @@ vms = { }, waf2 = { cpus = 4 + image = "22.04" }, waf3 = { - cpus = 4 + cpus = 4 + image = "24.04" }, bdd1 = {}, nfs1 = {}, www1 = {}, www2 = {}, www3 = {}, - www4 = {}, - www5 = {}, + www4 = { + image = "22.04" + }, + www5 = { + image = "24.04" + }, } diff --git a/example/tofu/variables.tf b/example/tofu/variables.tf index 02998be..bbdff46 100644 --- a/example/tofu/variables.tf +++ b/example/tofu/variables.tf @@ -4,6 +4,6 @@ variable "vms" { cpus = optional(number, 2), memory = optional(string, "3g"), disk = optional(string, "12g"), - image = optional(string, "24.04"), + image = optional(string, "https://cloud.debian.org/images/cloud/trixie/latest/debian-13-generic-amd64.qcow2"), })) } diff --git a/seb4itik/byow/roles/common/defaults/main.yml b/seb4itik/byow/roles/common/defaults/main.yml index 942ab60..821fc8f 100644 --- a/seb4itik/byow/roles/common/defaults/main.yml +++ b/seb4itik/byow/roles/common/defaults/main.yml @@ -1,2 +1,3 @@ +common_search_strings: [] common_default_packages: [] common_proxy_server: null diff --git a/seb4itik/byow/roles/common/handlers/main.yml b/seb4itik/byow/roles/common/handlers/main.yml new file mode 100644 index 0000000..91bb39f --- /dev/null +++ b/seb4itik/byow/roles/common/handlers/main.yml @@ -0,0 +1,4 @@ +- name: Restart systemd-resolved + ansible.builtin.service: + name: "systemd-resolved" + state: "restarted" diff --git a/seb4itik/byow/roles/common/tasks/main.yml b/seb4itik/byow/roles/common/tasks/main.yml index 5c1c745..d5f51e2 100644 --- a/seb4itik/byow/roles/common/tasks/main.yml +++ b/seb4itik/byow/roles/common/tasks/main.yml @@ -1,7 +1,11 @@ +- name: Setup hosts file + ansible.builtin.include_tasks: "setup_hosts.yml" + +- name: Setup resolved + ansible.builtin.include_tasks: "setup_resolved.yml" + - name: Setup proxy client - when: "common_proxy_server != None" ansible.builtin.include_tasks: "setup_proxy_client.yml" - name: Setup packages - when: "common_default_packages | length > 0" ansible.builtin.include_tasks: "setup_packages.yml" diff --git a/seb4itik/byow/roles/common/tasks/setup_hosts.yml b/seb4itik/byow/roles/common/tasks/setup_hosts.yml new file mode 100644 index 0000000..d76b202 --- /dev/null +++ b/seb4itik/byow/roles/common/tasks/setup_hosts.yml @@ -0,0 +1,25 @@ +- name: Check if /etc/cloud/cloud.cfg exists + ansible.builtin.stat: + path: "/etc/cloud/cloud.cfg" + register: common_out_cloud_cfg + +- name: Disable /etc/hosts management by cloud-init + when: "common_out_cloud_cfg.stat.exists" + block: + - name: Disable /etc/hosts management by cloud-init (manage_etc_hosts) + ansible.builtin.lineinfile: + path: "/etc/cloud/cloud.cfg" + search_string: 'manage_etc_hosts:' + line: "manage_etc_hosts: false" + insertafter: "preserve_hostname:" + - name: Disable /etc/hosts management by cloud-init (update_etc_hosts) + ansible.builtin.replace: + path: "/etc/cloud/cloud.cfg" + regexp: '^([^#]*update_etc_hosts.*)$' + replace: '# \\1' + +- name: Configure /etc/hosts file + ansible.builtin.template: + src: "templates/hosts" + dest: "/etc/hosts" + mode: "0644" diff --git a/seb4itik/byow/roles/common/tasks/setup_packages.yml b/seb4itik/byow/roles/common/tasks/setup_packages.yml index 248b200..7d3fc7e 100644 --- a/seb4itik/byow/roles/common/tasks/setup_packages.yml +++ b/seb4itik/byow/roles/common/tasks/setup_packages.yml @@ -4,6 +4,7 @@ upgrade: "safe" - name: Install default packages + when: "common_default_packages | length > 0" ansible.builtin.apt: name: "{{ common_default_packages }}" autoclean: true diff --git a/seb4itik/byow/roles/common/tasks/setup_proxy_client.yml b/seb4itik/byow/roles/common/tasks/setup_proxy_client.yml index 6ce754f..b470317 100644 --- a/seb4itik/byow/roles/common/tasks/setup_proxy_client.yml +++ b/seb4itik/byow/roles/common/tasks/setup_proxy_client.yml @@ -1,4 +1,5 @@ - name: Create 00proxy.conf file + when: "common_proxy_server != None" ansible.builtin.template: src: "templates/apt_proxy.conf" dest: "/etc/apt/apt.conf.d/00proxy.conf" @@ -7,6 +8,7 @@ group: "root" - name: Add http_proxy and https_proxy variable to file /etc/environment + when: "common_proxy_server != None" ansible.builtin.lineinfile: path: "/etc/environment" regexp: '^{{ item.key }}=' diff --git a/seb4itik/byow/roles/common/tasks/setup_resolved.yml b/seb4itik/byow/roles/common/tasks/setup_resolved.yml new file mode 100644 index 0000000..79f0bc0 --- /dev/null +++ b/seb4itik/byow/roles/common/tasks/setup_resolved.yml @@ -0,0 +1,8 @@ +- name: Add multipass in search domains + when: "common_search_domains | length > 0" + ansible.builtin.lineinfile: + path: "/etc/systemd/resolved.conf" + search_string: 'Domains=' + line: "Domains={{ common_search_domains | join(' ') }}" + notify: + - "Restart systemd-resolved" diff --git a/seb4itik/byow/roles/common/templates/hosts b/seb4itik/byow/roles/common/templates/hosts new file mode 100644 index 0000000..e3de63f --- /dev/null +++ b/seb4itik/byow/roles/common/templates/hosts @@ -0,0 +1,9 @@ +127.0.0.1 localhost +{{ ansible_default_ipv4.address }} {{ ansible_fqdn }} {{ ansible_hostname }} + +# The following lines are desirable for IPv6 capable hosts +::1 ip6-localhost ip6-loopback +fe00::0 ip6-localnet +ff00::0 ip6-mcastprefix +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters diff --git a/seb4itik/byow/roles/mysql/tasks/main.yml b/seb4itik/byow/roles/mysql/tasks/main.yml index 3ea3b7a..f6f8536 100644 --- a/seb4itik/byow/roles/mysql/tasks/main.yml +++ b/seb4itik/byow/roles/mysql/tasks/main.yml @@ -1,14 +1,14 @@ - name: Installation de MySQL ansible.builtin.apt: name: - - "mysql-server" + - "{{ mysql_distros[ansible_distribution].mysql_package }}" - "python3-pymysql" notify: - "Restart MySQL" - name: Set MySQL bind_address parameter ansible.builtin.lineinfile: - path: "/etc/mysql/mysql.conf.d/mysqld.cnf" + path: "{{ mysql_distros[ansible_distribution].mysql_config_file }}" regexp: "^bind-address\\s+=" line: "bind-address = *" notify: diff --git a/seb4itik/byow/roles/mysql/vars/main.yml b/seb4itik/byow/roles/mysql/vars/main.yml new file mode 100644 index 0000000..3708923 --- /dev/null +++ b/seb4itik/byow/roles/mysql/vars/main.yml @@ -0,0 +1,7 @@ +mysql_distros: + Debian: + mysql_package: "default-mysql-server" + mysql_config_file: "/etc/mysql/mariadb.conf.d/50-server.cnf" + Ubuntu: + mysql_package: "mysql-server" + mysql_config_file: "/etc/mysql/mysql.conf.d/mysqld.cnf"