Vagrant centos7
This commit is contained in:
parent
bc15b0969a
commit
76759c3127
|
@ -0,0 +1,110 @@
|
|||
# coding: utf-8
|
||||
# copyright Utrecht University
|
||||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
# GS: run script after install:
|
||||
$post_script = <<SCRIPT
|
||||
yum install epel-release -y
|
||||
yum install htop -y
|
||||
yum install net-tools -y
|
||||
useradd ger
|
||||
mkdir /home/ger/.ssh
|
||||
chown ger:ger /home/ger/.ssh/
|
||||
chmod 700 /home/ger/.ssh/
|
||||
cat /tmp/ger.pubkey >> /home/ger/.ssh/authorized_keys
|
||||
mkdir /root/.ssh
|
||||
chown root:root /root/.ssh/
|
||||
chmod 700 /root/.ssh/
|
||||
cat /tmp/ger.pubkey >> /root/.ssh/authorized_keys
|
||||
cp /tmp/hosts /etc/hosts
|
||||
cp /tmp/fire_stop.sh /root/fire_stop.sh
|
||||
SCRIPT
|
||||
|
||||
# Retrieve instance from command line.
|
||||
require 'getoptlong'
|
||||
|
||||
opts = GetoptLong.new(
|
||||
[ '--instance', GetoptLong::OPTIONAL_ARGUMENT ]
|
||||
)
|
||||
|
||||
instance='combined'
|
||||
opts.each do |opt, arg|
|
||||
case opt
|
||||
when '--instance'
|
||||
instance=arg
|
||||
end
|
||||
end
|
||||
|
||||
# Configuration variables.
|
||||
VAGRANTFILE_API_VERSION = "2"
|
||||
|
||||
BOX = 'centos/7'
|
||||
GUI = false
|
||||
CPU = 1
|
||||
RAM = 1024
|
||||
|
||||
DOMAIN = ".ger.test"
|
||||
NETWORK = "192.168.50."
|
||||
NETMASK = "255.255.255.0"
|
||||
|
||||
if instance == "scoop" then
|
||||
HOSTS = {
|
||||
"portal" => [NETWORK+"11", CPU, RAM, GUI, BOX],
|
||||
"icat" => [NETWORK+"12", CPU, RAM, GUI, BOX],
|
||||
"resc1" => [NETWORK+"13", CPU, RAM, GUI, BOX],
|
||||
"resc2" => [NETWORK+"14", CPU, RAM, GUI, BOX],
|
||||
}
|
||||
else
|
||||
HOSTS = {
|
||||
"combined" => [NETWORK+"10", 2, 4096, GUI, BOX],
|
||||
}
|
||||
end
|
||||
|
||||
if instance == "irods" then
|
||||
HOSTS = {
|
||||
"irods02" => [NETWORK+"16", CPU, RAM, GUI, BOX],
|
||||
}
|
||||
end
|
||||
|
||||
if instance == "kubernetes" then
|
||||
HOSTS = {
|
||||
"master" => [NETWORK+"21", CPU, RAM, GUI, BOX],
|
||||
"worker1" => [NETWORK+"22", CPU, RAM, GUI, BOX],
|
||||
"worker2" => [NETWORK+"23", CPU, RAM, GUI, BOX],
|
||||
}
|
||||
end
|
||||
|
||||
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||
#config.ssh.insert_key ='true'
|
||||
config.vm.provision "file", source: "/home/ger/.ssh/id_ecdsa.pub", destination: "/tmp/ger.pubkey"
|
||||
config.vm.provision "file", source: "/etc/hosts", destination: "/tmp/hosts"
|
||||
config.vm.provision "file", source: "/home/ger/fire_stop.sh", destination: "/tmp/fire_stop.sh"
|
||||
|
||||
HOSTS.each do | (name, cfg) |
|
||||
ipaddr, cpu, ram, gui, box = cfg
|
||||
|
||||
config.vm.define name do |machine|
|
||||
machine.vm.box = box
|
||||
|
||||
machine.vm.provider "virtualbox" do |vbox|
|
||||
vbox.gui = gui
|
||||
vbox.cpus = cpu
|
||||
vbox.memory = ram
|
||||
vbox.name = name
|
||||
vbox.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 10000]
|
||||
end
|
||||
|
||||
machine.vm.hostname = name + DOMAIN
|
||||
machine.vm.network 'private_network', ip: ipaddr, netmask: NETMASK
|
||||
machine.vm.synced_folder ".", "/vagrant", disabled: true
|
||||
machine.vm.provision "shell",
|
||||
inline: "sudo timedatectl set-timezone Europe/Amsterdam"
|
||||
machine.vm.provision "shell",
|
||||
inline: "cat /tmp/ger.pubkey >> /home/vagrant/.ssh/authorized_keys"
|
||||
machine.vm.provision "shell",
|
||||
inline: $post_script
|
||||
end
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in New Issue