Compare commits

..

4 commits

Author SHA1 Message Date
Jérémy Lecour d62f39576f
Amélioration de la partie Vagrant 2024-05-03 15:09:08 +02:00
Jérémy Lecour b8d0a571a7
amélioration des définitions de VM dans Vagrant
* on fait un "apt update" systématique, au cas où on ne jouerait pas le rôle "evolinux-base"
* configuration en ELTS pour Jessie et Stretch
* suppression de Squeeze (plus de box Vagrant dispo)
2024-01-18 10:11:18 +01:00
Jérémy Lecour 014bdd2a65
Improve support for old versions of Debian 2023-12-09 14:23:25 +01:00
Jérémy Lecour 5265709704
Add support for Bookworm 2023-12-09 14:23:12 +01:00
3 changed files with 163 additions and 133 deletions

70
Vagrantfile vendored
View file

@ -1,70 +0,0 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
config.vm.box = "base"
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# NOTE: This will enable public access to the opened port
# config.vm.network "forwarded_port", guest: 80, host: 8080
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine and only allow access
# via 127.0.0.1 to disable public access
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
# Create a private network, which allows host-only access to the machine
# using a specific IP.
# config.vm.network "private_network", ip: "192.168.33.10"
# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network "public_network"
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder "../data", "/vagrant_data"
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
# config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
# vb.memory = "1024"
# end
#
# View the documentation for the provider you are using for more
# information on available options.
# Enable provisioning with a shell script. Additional provisioners such as
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
# documentation for more information about their specific syntax and use.
# config.vm.provision "shell", inline: <<-SHELL
# apt-get update
# apt-get install -y apache2
# SHELL
end

156
test/Vagrantfile vendored
View file

@ -5,8 +5,7 @@ VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.synced_folder "./vagrant_share/", "/vagrant", disabled: true
config.vm.network "forwarded_port", guest: 80, host: 8081, auto_correct: true
config.vm.network "forwarded_port", guest: 53, host: 53, auto_correct: true
config.vm.network "forwarded_port", guest: 80, host: 8080, auto_correct: true
# config.vm.provider :virtualbox do |v|
# v.memory = 1024
@ -20,17 +19,84 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
libvirt.cpus = 1
end
# Jessie
config.vm.define :jessie do |node|
node.vm.hostname = "jessie"
node.vm.box = "debian/jessie64"
elts_script = <<~SCRIPT
echo "" > /etc/apt/sources.list
echo "" > /etc/apt/sources.list.d/extended-lts.list
echo "deb http://elts.evolix.org/extended-lts $(lsb_release --codename --short) main" >> /etc/apt/sources.list.d/extended-lts.list
echo "deb http://elts.evolix.org/extended-lts $(lsb_release --codename --short)-lts main" >> /etc/apt/sources.list.d/extended-lts.list
wget --no-check-certificate https://deb.freexian.com/extended-lts/archive-key.gpg -O /etc/apt/trusted.gpg.d/freexian-archive-extended-lts.gpg
chmod 644 /etc/apt/trusted.gpg.d/freexian-archive-extended-lts.gpg
DEBIAN_FRONTEND=noninteractive apt-get --quiet update
SCRIPT
# Bookworm
config.vm.define :bookworm do |node|
node.vm.hostname = "bookworm.evolix.net"
node.vm.box = "debian/bookworm64"
node.vm.provision "apt update", type: "shell", inline: "DEBIAN_FRONTEND=noninteractive apt-get --quiet update"
node.vm.provision :ansible do |ansible|
ansible.limit = "jessie"
ansible.limit = "bookworm"
ansible.playbook = "vagrant.yml"
# ansible.tags = "mysql"
ansible.raw_arguments = [
"-b",
"--ask-vault-pass",
# "--ask-vault-pass",
# "--diff",
# "--step",
# "--syntax",
# "-vvv",
]
ansible.extra_vars = {
ansible_python_interpreter: "/usr/bin/python3"
}
end
end
# Bullseye
config.vm.define :bullseye do |node|
node.vm.hostname = "bullseye.evolix.net"
node.vm.box = "debian/bullseye64"
node.vm.provision "apt update", type: "shell", inline: "DEBIAN_FRONTEND=noninteractive apt-get --quiet update"
node.vm.provision :ansible do |ansible|
ansible.limit = "bullseye"
ansible.playbook = "vagrant.yml"
# ansible.tags = "mysql"
ansible.raw_arguments = [
"-b",
# "--ask-vault-pass",
# "--diff",
# "--step",
# "--syntax",
# "-vvv",
]
ansible.extra_vars = {
ansible_python_interpreter: "/usr/bin/python3"
}
end
end
# Buster
config.vm.define :buster do |node|
node.vm.hostname = "buster"
node.vm.box = "debian/buster64"
clean_backports_script = <<~SCRIPT
sed -i '/backports/d' /etc/apt/sources.list
DEBIAN_FRONTEND=noninteractive apt-get --quiet update
SCRIPT
node.vm.provision "backports", type: "shell", inline: clean_backports_script
node.vm.provision :ansible do |ansible|
ansible.limit = "buster"
ansible.playbook = "vagrant.yml"
# ansible.tags = "mysql"
ansible.raw_arguments = [
"-b",
# "--ask-vault-pass",
# "--diff",
# "--step",
# "--syntax",
@ -38,4 +104,78 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
]
end
end
# Stretch
config.vm.define :stretch do |node|
node.vm.hostname = "stretch"
node.vm.box = "debian/stretch64"
node.vm.provision "elts", type: "shell", inline: elts_script
node.vm.provision :ansible do |ansible|
ansible.limit = "stretch"
ansible.playbook = "vagrant.yml"
# ansible.tags = "mysql"
ansible.raw_arguments = [
"-b",
# "--ask-vault-pass",
# "--diff",
# "--step",
# "--syntax",
# "-vvv",
]
end
end
old_ssh_options = [
"-o HostKeyAlgorithms=+ssh-rsa",
"-o PubkeyAcceptedKeyTypes=+ssh-rsa"
]
# Jessie
config.vm.define :jessie do |node|
node.vm.hostname = "jessie"
node.vm.box = "debian/jessie64"
node.ssh.extra_args = old_ssh_options
node.vm.provision "elts", type: "shell", inline: elts_script
node.vm.provision :ansible do |ansible|
ansible.limit = "jessie"
ansible.playbook = "vagrant.yml"
# ansible.tags = "mysql"
ansible.raw_ssh_args = old_ssh_options
ansible.raw_arguments = [
"-b",
# "--ask-vault-pass",
# "--diff",
# "--step",
# "--syntax",
# "-vvv",
]
end
end
# # Squeeze
# config.vm.define :squeeze do |node|
# node.vm.hostname = "squeeze"
# node.vm.box = "debian/squeeze64"
# node.ssh.extra_args = old_ssh_options
# node.vm.provision :ansible do |ansible|
# ansible.limit = "squeeze"
# ansible.playbook = "vagrant.yml"
# # ansible.tags = "mysql"
# ansible.raw_ssh_args = old_ssh_options
# ansible.raw_arguments = [
# "-b",
# "--ask-vault-pass",
# # "--diff",
# # "--step",
# # "--syntax",
# # "-vvv",
# ]
# end
# end
end

View file

@ -56,15 +56,19 @@
mysql_custom_logdir: '/home/mysql-logs'
# evolinux_apt_public_sources: False
apt_upgrade: True
# lxc_containers:
# - name: php56
# release: jessie
# - name: php70
# release: stretch
# - name: php73
# release: buster
# - name: php74
# release: bullseye
lxc_containers:
- name: php56
release: jessie
- name: php70
release: stretch
- name: php73
release: buster
- name: php74
release: bullseye
- name: php82
release: bookworm
- name: php83
release: bookworm
# evolinux_apt_public_sources: False
# pre_tasks:
@ -73,53 +77,9 @@
# var: hostvars[inventory_hostname]
roles:
# - bullseye-detect
# - aws-tuning
# - apt
# - evolinux-base
# - evolinux-users
# - { role: del-user, username: "gcolpart" }
# - metricbeat
# - { role: squid, squid_localproxy_enable: True }
# - apache
# - nginx
# - mysql
# - mysql-oracle
# - percona
# - postgresql
# - packweb-apache
# - { role: packweb-apache, packweb_mysql_variant: "oracle" }
# - { role: memcached, memcached_instance_name: "instance1" }
# - { role: memcached, memcached_instance_name: "instance2", memcached_port: 11212 }
# - { role: redis }
# - { role: redis, redis_instance_name: "instance1", redis_port: 6380 }
# - { role: redis, redis_instance_name: "instance2", redis_port: 6381 }
# - evoacme
# - etc-git
# - kvm-host
# - mongodb
# - mysql
# - proftpd
# - haproxy
# - varnish
# - supervisord
# - elasticsearch
# - kibana
# - evoacme
# - lxc
# - { role: lxc-php, lxc_php_version: "php56" }
# - { role: lxc-php, lxc_php_version: "php70" }
# - { role: lxc-php, lxc_php_version: "php73" }
# - { role: lxc-php, lxc_php_version: "php74" }
# - evocheck
# - tomcat
# - redis
# - unbound
# - php
# - ldap
- evolinux-base
- evolinux-users
# - { role: postfix, postfix_packmail: True, postfix_force_main_cf: True }
# - apache
# - php
# - { role: webapps/evoadmin-mail }
# - { role: webapps/roundcube }