Main target is now Debian 13 instead of Ubuntu 24.04
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -7,15 +7,21 @@ vms = {
|
||||
},
|
||||
waf2 = {
|
||||
cpus = 4
|
||||
image = "22.04"
|
||||
},
|
||||
waf3 = {
|
||||
cpus = 4
|
||||
image = "24.04"
|
||||
},
|
||||
bdd1 = {},
|
||||
nfs1 = {},
|
||||
www1 = {},
|
||||
www2 = {},
|
||||
www3 = {},
|
||||
www4 = {},
|
||||
www5 = {},
|
||||
www4 = {
|
||||
image = "22.04"
|
||||
},
|
||||
www5 = {
|
||||
image = "24.04"
|
||||
},
|
||||
}
|
||||
|
||||
@@ -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"),
|
||||
}))
|
||||
}
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
common_search_strings: []
|
||||
common_default_packages: []
|
||||
common_proxy_server: null
|
||||
|
||||
4
seb4itik/byow/roles/common/handlers/main.yml
Normal file
4
seb4itik/byow/roles/common/handlers/main.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
- name: Restart systemd-resolved
|
||||
ansible.builtin.service:
|
||||
name: "systemd-resolved"
|
||||
state: "restarted"
|
||||
@@ -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"
|
||||
|
||||
25
seb4itik/byow/roles/common/tasks/setup_hosts.yml
Normal file
25
seb4itik/byow/roles/common/tasks/setup_hosts.yml
Normal file
@@ -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"
|
||||
@@ -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
|
||||
|
||||
@@ -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 }}='
|
||||
|
||||
8
seb4itik/byow/roles/common/tasks/setup_resolved.yml
Normal file
8
seb4itik/byow/roles/common/tasks/setup_resolved.yml
Normal file
@@ -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"
|
||||
9
seb4itik/byow/roles/common/templates/hosts
Normal file
9
seb4itik/byow/roles/common/templates/hosts
Normal file
@@ -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
|
||||
@@ -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:
|
||||
|
||||
7
seb4itik/byow/roles/mysql/vars/main.yml
Normal file
7
seb4itik/byow/roles/mysql/vars/main.yml
Normal file
@@ -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"
|
||||
Reference in New Issue
Block a user