francois.lesueur
1 year ago
7 changed files with 120 additions and 337 deletions
@ -1,10 +1,11 @@ |
|||
.apt-mirror-config |
|||
.customDocker.sh |
|||
.customVM.sh |
|||
.proxy-config |
|||
.vagrant |
|||
DEADJOE |
|||
Vagrantfile |
|||
/files/log |
|||
/files/kaz/download |
|||
/files/kaz/git |
|||
/files/kaz/log |
|||
/files/customVM.sh |
|||
|
@ -0,0 +1,50 @@ |
|||
# coding: utf-8 |
|||
# -*- mode: ruby -*- |
|||
# vi: set ft=ruby : |
|||
|
|||
unless Vagrant.has_plugin?("vagrant-disksize") |
|||
raise Vagrant::Errors::VagrantError.new, "vagrant-disksize plugin is missing. Please install it using 'vagrant plugin install vagrant-disksize' and rerun 'vagrant up'" |
|||
end |
|||
|
|||
# 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| |
|||
|
|||
required_plugins = %w( vagrant-vbguest vagrant-disksize ) |
|||
_retry = false |
|||
required_plugins.each do |plugin| |
|||
unless Vagrant.has_plugin? plugin |
|||
system "vagrant plugin install #{plugin}" |
|||
_retry=true |
|||
end |
|||
end |
|||
|
|||
if (_retry) |
|||
exec "vagrant " + ARGV.join(' ') |
|||
end |
|||
|
|||
config.vm.box = "debian/bullseye64" |
|||
config.vm.hostname = 'kaz-vm' |
|||
config.disksize.size = '32GB' |
|||
|
|||
config.vm.provider "virtualbox" do |vb| |
|||
vb.memory = "4096" |
|||
vb.cpus = "2" |
|||
vb.name = "kaz-vm" |
|||
vb.customize ["modifyvm", :id, "--vram", "64", "--clipboard-mode", "bidirectional", '--graphicscontroller', 'vmsvga', '--natnet1', '192.168.64.0/24'] |
|||
vb.gui = true |
|||
end |
|||
|
|||
|
|||
|
|||
#permet d'avoir un répertoire partagé entre la VM et le host |
|||
config.vm.synced_folder "/tmp/", "/tmp_host" |
|||
config.vm.synced_folder "files/", "/root/kaz-vagrant" |
|||
|
|||
config.vm.provision "shell" do |s| |
|||
s.inline = "/vagrant/files/vm-provision.sh" |
|||
s.env = {"KAZGUARD" => "true", "HOSTLANG" => ENV['LANG'], "NOKAZ" => ENV['NOKAZ'], "KAZBRANCH" => ENV['KAZBRANCH']} |
|||
end |
|||
end |
@ -1,95 +0,0 @@ |
|||
# coding: utf-8 |
|||
# -*- mode: ruby -*- |
|||
# vi: set ft=ruby : |
|||
|
|||
unless Vagrant.has_plugin?("vagrant-disksize") |
|||
raise Vagrant::Errors::VagrantError.new, "vagrant-disksize plugin is missing. Please install it using 'vagrant plugin install vagrant-disksize' and rerun 'vagrant up'" |
|||
end |
|||
|
|||
# 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| |
|||
|
|||
required_plugins = %w( vagrant-vbguest vagrant-disksize ) |
|||
_retry = false |
|||
required_plugins.each do |plugin| |
|||
unless Vagrant.has_plugin? plugin |
|||
system "vagrant plugin install #{plugin}" |
|||
_retry=true |
|||
end |
|||
end |
|||
|
|||
if (_retry) |
|||
exec "vagrant " + ARGV.join(' ') |
|||
end |
|||
|
|||
config.vm.box = "debian/bullseye64" |
|||
config.vm.hostname = 'kaz-vm' |
|||
config.disksize.size = '32GB' |
|||
|
|||
# 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. |
|||
# config.vm.network "forwarded_port", guest: 80, host: 8080 |
|||
|
|||
# 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" |
|||
# config.vm.synced_folder "..", "/root/mi-lxc", create:true, type:"rsync", |
|||
# rsync__exclude: [".git/", "zzlocal/", "vagrant/"] |
|||
|
|||
# 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 = "4096" |
|||
vb.cpus="2" |
|||
vb.name = "kaz-vm" |
|||
vb.customize ["modifyvm", :id, "--vram", "64", "--clipboard-mode", "bidirectional", '--graphicscontroller', 'vmsvga', '--natnet1', '192.168.64.0/24'] |
|||
vb.gui = true |
|||
|
|||
end |
|||
|
|||
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies |
|||
# such as FTP and Heroku are also available. See the documentation at |
|||
# https://docs.vagrantup.com/v2/push/atlas.html for more information. |
|||
# config.push.define "atlas" do |push| |
|||
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" |
|||
# end |
|||
|
|||
# Enable provisioning with a shell script. Additional provisioners such as |
|||
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the |
|||
# documentation for more information about their specific syntax and use. |
|||
|
|||
#permet d'avoir un répertoire partagé entre la VM et le host |
|||
config.vm.synced_folder "/tmp/", "/tmp_host" |
|||
config.vm.synced_folder "files/", "/root/kaz-vagrant" |
|||
|
|||
config.vm.provision "shell" do |s| |
|||
s.inline = "/vagrant/files/vm-provision.sh" |
|||
s.env = {"KAZGUARD" => "true", "HOSTLANG" => ENV['LANG'], "NOKAZ" => ENV['NOKAZ'], "KAZBRANCH" => ENV['KAZBRANCH']} |
|||
end |
|||
end |
@ -1,162 +0,0 @@ |
|||
#!/bin/bash |
|||
|
|||
### Personalisation de la VM |
|||
|
|||
cd "$(dirname $0)" |
|||
|
|||
BOLD='[1m' |
|||
RED='[0;31m' |
|||
GREEN='[0;32m' |
|||
YELLOW='[0;33m' |
|||
BLUE='[0;34m' |
|||
MAGENTA='[0;35m' |
|||
CYAN='[0;36m' |
|||
NC='[0m' # No Color |
|||
NL=' |
|||
' |
|||
|
|||
mkdir -p ./files/kaz/log/ ./files/kaz/download/ ./files/kaz/git/ |
|||
chmod a+rxw ./files/kaz/log/ ./files/kaz/download/ ./files/kaz/git/ |
|||
|
|||
cp Vagrantfile.dist Vagrantfile |
|||
|
|||
OLD_MEN=$(grep vb.memory Vagrantfile | sed -e 's%.*vb.memory\s*=\s*"\([^"]*\)".*%\1%') |
|||
OLD_CUPS=$(grep vb.cpus Vagrantfile | sed -e 's%.*vb.cpus\s*=\s*"\([^"]*\)".*%\1%') |
|||
MEM=$(expr $(head -1 /proc/meminfo | awk '{print $2}') / 4096) |
|||
CUP=$(expr $(nproc) / 2) |
|||
|
|||
cat <<EOF |
|||
${GREEN}${BOLD} |
|||
MEM: ${OLD_MEN} => ${MEM} |
|||
CUP: ${OLD_CUPS} => ${CUP} |
|||
${NC} |
|||
Update './Vagrantfile' |
|||
EOF |
|||
|
|||
sed -i Vagrantfile \ |
|||
-e 's%vb.memory\s*=\s*"[^"]*"%vb.memory = "'${MEM}'"%' \ |
|||
-e 's%vb.cpus\s*=\s*"[^"]*"%vb.cpus = "'${CUP}'"%' |
|||
|
|||
|
|||
APT_CONF="files/.apt-mirror-config" |
|||
if [ -f "${APT_CONF}" ]; then |
|||
. "${APT_CONF}" |
|||
fi |
|||
|
|||
### Personalisation d'un cache apt |
|||
if [ -z "${APT_MIRROR_DEBIAN}" ]; then |
|||
APT_MIRROR_DEBIAN=$(grep "deb\s.*/debian[^-]" /etc/apt/sources.list | head -1 | sed -e "s%.*deb\s.*://\([^/]*\)/debian.*%\1%") |
|||
fi |
|||
if [ -z "${APT_MIRROR_DEBIAN_SECURITY}" ]; then |
|||
APT_MIRROR_DEBIAN_SECURITY=$(grep "deb\s.*/debian-security" /etc/apt/sources.list | head -1 | sed -e "s%.*deb\s.*://\([^/]*\)/debian-security.*%\1%") |
|||
fi |
|||
if [ -z "${APT_MIRROR_UBUNTU}" ]; then |
|||
APT_MIRROR_UBUNTU=$(grep "deb\s.*://\([^/]*\)/ubuntu" /etc/apt/sources.list | head -1 | sed -e "s%.*deb\s.*://\([^/]*\)/ubuntu.*%\1%") |
|||
fi |
|||
if [ -z "${APT_MIRROR_UBUNTU_SECURITY}" ]; then |
|||
APT_MIRROR_UBUNTU_SECURITY=$(grep "deb\s.*://\([^/]*\)/ubuntu.*-security" /etc/apt/sources.list | head -1 | sed -e "s%.*deb\s.*://\([^/]*\)/ubuntu.*%\1%") |
|||
fi |
|||
|
|||
if [ -z "${APT_MIRROR_UBUNTU}" ]; then |
|||
APT_MIRROR_UBUNTU="${APT_MIRROR_DEBIAN}" |
|||
fi |
|||
if [ -z "${APT_MIRROR_UBUNTU_SECURITY}" ]; then |
|||
APT_MIRROR_UBUNTU_SECURITY="${APT_MIRROR_DEBIAN_SECURITY}" |
|||
fi |
|||
|
|||
while : ; do |
|||
cat <<EOF |
|||
${GREEN}${BOLD} |
|||
APT_MIRROR_DEBIAN=${APT_MIRROR_DEBIAN} |
|||
APT_MIRROR_DEBIAN_SECURITY=${APT_MIRROR_DEBIAN_SECURITY} |
|||
APT_MIRROR_UBUNTU=${APT_MIRROR_UBUNTU} |
|||
APT_MIRROR_UBUNTU_SECURITY=${APT_MIRROR_UBUNTU_SECURITY} |
|||
${NC} |
|||
EOF |
|||
|
|||
read -p "Update '${APT_CONF}' (ip:port or y/n)? [no] " proxy |
|||
case "${proxy}" in |
|||
*:* ) |
|||
APT_MIRROR_DEBIAN=${proxy} |
|||
APT_MIRROR_DEBIAN_SECURITY=${proxy} |
|||
APT_MIRROR_UBUNTU=${proxy} |
|||
APT_MIRROR_UBUNTU_SECURITY=${proxy} |
|||
;; |
|||
[YyOo]* ) |
|||
cat > "${APT_CONF}" <<EOF |
|||
# Generated by $(pwd)$(basename $0) |
|||
# $(date "+%x %X") |
|||
|
|||
APT_MIRROR_DEBIAN=${APT_MIRROR_DEBIAN} |
|||
APT_MIRROR_DEBIAN_SECURITY=${APT_MIRROR_DEBIAN_SECURITY} |
|||
APT_MIRROR_UBUNTU=${APT_MIRROR_UBUNTU} |
|||
APT_MIRROR_UBUNTU_SECURITY=${APT_MIRROR_UBUNTU_SECURITY} |
|||
EOF |
|||
break;; |
|||
""|[Nn]* ) break;; |
|||
* ) echo "Please answer ip:port, yes or no.";; |
|||
|
|||
esac |
|||
done |
|||
|
|||
|
|||
PROXY_CONF="files/.proxy-config" |
|||
if [ -f "${PROXY_CONF}" ]; then |
|||
FTP_PROXY=$(grep "ftp_proxy" "${PROXY_CONF}" | head -1 | sed -e "s%.*ftp_proxy\s*=\s*.*://\(.*\)%\1%") |
|||
HTTP_PROXY=$(grep "http_proxy" "${PROXY_CONF}" | head -1 | sed -e "s%.*http_proxy\s*=\s*.*://\(.*\)%\1%") |
|||
HTTPS_PROXY=$(grep "https_proxy" "${PROXY_CONF}" | head -1 | sed -e "s%.*https_proxy\s*=\s*.*://\(.*\)%\1%") |
|||
fi |
|||
|
|||
while : ; do |
|||
cat <<EOF |
|||
${GREEN}${BOLD} |
|||
export ftp_proxy=ftp://${FTP_PROXY} |
|||
export http_proxy=http://${HTTP_PROXY} |
|||
export https_proxy=https://${HTTPS_PROXY} |
|||
${NC} |
|||
EOF |
|||
read -p "proxy in '${PROXY_CONF}' (ip:port, yes or no)? [no] " proxy |
|||
case "${proxy}" in |
|||
*:* ) |
|||
FTP_PROXY=${proxy} |
|||
HTTP_PROXY=${proxy} |
|||
HTTPS_PROXY=${proxy} |
|||
;; |
|||
[yY]*|[Oo]* ) |
|||
cat > "${PROXY_CONF}" <<EOF |
|||
# Generated by $(pwd)$(basename $0) |
|||
# $(date "+%x %X") |
|||
|
|||
export ftp_proxy=ftp://${FTP_PROXY} |
|||
export http_proxy=http://${HTTP_PROXY} |
|||
export https_proxy=https://${HTTPS_PROXY} |
|||
EOF |
|||
break;; |
|||
""|[Nn]* ) break;; |
|||
* ) echo "Please answer ip:port, yes or no.";; |
|||
|
|||
esac |
|||
done |
|||
|
|||
CUSTOM_CONF=files/.customDocker.sh |
|||
echo |
|||
if [ -f "${CUSTOM_CONF}" ]; then |
|||
OLD_EDITOR=$(grep install "${CUSTOM_CONF}" | grep "\(joe\|emacs\|vim\)" | head -1 | sed -e "s%.*\(joe\|emacs\|vim\).*%\1%") |
|||
fi |
|||
while : ; do |
|||
read -p "Choose editor in '${CUSTOM_CONF}' (joe, emacs, vim or no)? [${GREEN}${BOLD}${OLD_EDITOR}${NC}] " editor |
|||
case "${editor}" in |
|||
joe|emacs|vim ) |
|||
if [ ! -f "${CUSTOM_CONF}" ]; then |
|||
echo "#!/bin/bash" > "${CUSTOM_CONF}" |
|||
fi |
|||
chmod a+x "${CUSTOM_CONF}" |
|||
if ! grep -qw "${editor}" "${CUSTOM_CONF}" 2> /dev/null ; then |
|||
echo "DEBIAN_FRONTEND=noninteractive apt-get install -y ${editor}" >> "${CUSTOM_CONF}" |
|||
echo "rsync -a /vagrant/files/.emacs* /root/" >> "${CUSTOM_CONF}" |
|||
fi |
|||
break;; |
|||
""|[Nn]* ) break;; |
|||
* ) echo "Please answer joe, emacs, vim or no.";; |
|||
esac |
|||
done |
Loading…
Reference in new issue