diff --git a/vagrant-env/.gitignore b/vagrant-env/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..63b17d85e607d30c37ae16f5492b965204e40018 --- /dev/null +++ b/vagrant-env/.gitignore @@ -0,0 +1,4 @@ +.vagrant +/envs/*.tgz +/envs/*.img +/envs/*.vmlinuz diff --git a/vagrant-env/README.md b/vagrant-env/README.md new file mode 100644 index 0000000000000000000000000000000000000000..619ad027394a55fad7f4ad8b725e3da890cc32d5 --- /dev/null +++ b/vagrant-env/README.md @@ -0,0 +1,34 @@ +Vagrant +======= + +On your host you need: +* To be inside g5k vpn (to get deb from packages.grid5000.fr) +* To get an environment from g5k +``` +* rsync nancy.g5kadmin:/grid5000/images/debian9-x64-min-2020090209.tgz envs/ +``` +* To start ncat to allow the kadeploy from vagrant to reboot a virtual machine. +You will need ncat from nmap. (apt install ncat) +* In a separate terminal: +``` + cd vagrant-env + ncat -k -l --allow localhost --sh-exec $(readlink -f vbhelper.sh) +``` +* vagrant up kadeploy +* vagrant up knode-1 #Fail to connect ssh is expected +* vagrant ssh kadeploy +``` +vagrant@kadeploy> kadeploy3d -d +vagrant@kadeploy> karights3 -o -a -m node-1 -u vagrant +vagrant@kadeploy> kaenv3 -a /vagrant/envs/debian9-x64-min.dsc +vagrant@kadeploy> kadeploy3 -m node-1 -e debian9-x64-min -V5 -r ext4 +``` + +How to debug +============ + +Server side using byebug +------------------------ + +* Add `require byebug` and `byebug` to the line you whish to debug +* start the deamon in foreground without any std fd redirection: `kadeploy3d -IOE` diff --git a/vagrant-env/Vagrantfile b/vagrant-env/Vagrantfile new file mode 100644 index 0000000000000000000000000000000000000000..08ed8cc7f63368360dc4007e9b95951f06af57a5 --- /dev/null +++ b/vagrant-env/Vagrantfile @@ -0,0 +1,51 @@ +require 'yaml' + + +Vagrant.configure("2") do |config| + config.vm.define :kadeploy do |server| + server.vm.box = 'debian/contrib-jessie64' + server.vm.hostname = 'kadeploy' + server.vm.synced_folder '.', '/vagrant' + server.vm.synced_folder '..', '/kadeploy' + server.vm.network "private_network", ip: "10.0.10.100", libvirt__network_name: "pxe_network", :libvirt__dhcp_enabled => false, virtualbox__intnet: "pxe_network" + server.ssh.insert_key = false + server.vm.provision 'shell', path: "kadeploy_provision.sh" + end + + nodes = {} + (ENV['NODES'] || 1).to_i.times do |i| + nodes["knode-#{i+1}"] = { + 'mac' => "00:09:3d:00:11:%02x"%(i+1), + 'ip' => "10.0.10.#{i+1}" # The first IP of the network is used by the host + } + end + nodes.each_pair do |name,node| + config.vm.define name do |agent| + # Vagrant want a box even if we don't use it + agent.vm.box = "olbat/tiny-core-micro" + agent.vm.box_version = "0.1.0" + + agent.vm.provider :virtualbox do |vb| + vb.memory = '1024' + vb.cpus = '1' + vb.gui = 'true' + + vb.customize [ + 'modifyvm', :id, + '--nic1', 'intnet', + '--intnet1', 'pxe_network', + '--boot1', 'net', + '--boot2', 'none', + '--boot3', 'none', + '--boot4', 'none', + '--macaddress1', node['mac'].delete(':'), + '--ioapic', 'on', + '--uart1', '0x3f8', '4', + "--uartmode1", "tcpserver", "2323" + ] + agent.ssh.host = node['ip'] + agent.vm.boot_timeout = 20 + end + end + end +end diff --git a/vagrant-env/db_creation.sql b/vagrant-env/db_creation.sql new file mode 100644 index 0000000000000000000000000000000000000000..24ac349b8e01f317259a50f238fd3007605b42fa --- /dev/null +++ b/vagrant-env/db_creation.sql @@ -0,0 +1,97 @@ +-- Kadeploy 3.1 +-- Copyright (c) by INRIA, Emmanuel Jeanvoine - 2008-2010 +-- CECILL License V2 - http://www.cecill.info +-- For details on use and redistribution please refer to License.txt + + +-- +-- Table `environments` +-- + +DROP TABLE IF EXISTS `environments`; +CREATE TABLE IF NOT EXISTS `environments` ( + `id` int(10) unsigned NOT NULL auto_increment, + `name` varchar(255) NOT NULL default '', + `version` int(10) unsigned NOT NULL default '0', + `description` text, + `author` varchar(56) NOT NULL default '', + `tarball` varchar(512) NOT NULL, + `preinstall` varchar(512) NOT NULL, + `postinstall` varchar(512) NOT NULL, + `hypervisor` varchar(255) NOT NULL, + `hypervisor_params` varchar(255) NOT NULL, + `initrd` varchar(255) NOT NULL, + `kernel` varchar(255) NOT NULL, + `kernel_params` varchar(255) NOT NULL, + `fdisk_type` varchar(2) default NULL, + `filesystem` varchar(9) default NULL, + `user` varchar(255) default 'nobody', + `allowed_users` varchar(512) NOT NULL, + `environment_kind` varchar(10) NOT NULL, + `visibility` varchar(8) NOT NULL, + `demolishing_env` boolean NOT NULL default FALSE, + `multipart` boolean NOT NULL default FALSE, + `options` text NULL default NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table `log` +-- + +DROP TABLE IF EXISTS `log`; +CREATE TABLE IF NOT EXISTS `log` ( + `wid` varchar(41) NOT NULL, + `hostname` varchar(256) NOT NULL, + `step1` varchar(45) NOT NULL, + `step2` varchar(45) NOT NULL, + `step3` varchar(45) NOT NULL, + `timeout_step1` smallint(5) unsigned NOT NULL, + `timeout_step2` smallint(5) unsigned NOT NULL, + `timeout_step3` smallint(5) unsigned NOT NULL, + `retry_step1` tinyint(1) unsigned NOT NULL, + `retry_step2` tinyint(1) unsigned NOT NULL, + `retry_step3` tinyint(1) unsigned NOT NULL, + `start` int(10) unsigned NOT NULL, + `step1_duration` int(10) unsigned NOT NULL, + `step2_duration` int(10) unsigned NOT NULL, + `step3_duration` int(10) unsigned NOT NULL, + `env` varchar(64) NOT NULL, + `anonymous_env` varchar(6) NOT NULL, + `md5` varchar(35) NOT NULL, + `success` varchar(6) NOT NULL, + `error` varchar(255) NOT NULL, + `user` varchar(16) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table `nodes` +-- + +DROP TABLE IF EXISTS `nodes`; +CREATE TABLE IF NOT EXISTS `nodes` ( + `hostname` varchar(256) NOT NULL, + `state` varchar(16) NOT NULL, + `env_id` int(10) NOT NULL, + `date` int(10) unsigned NOT NULL, + `user` varchar(16) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + + +-- -------------------------------------------------------- + +-- +-- Table `rights` +-- + +DROP TABLE IF EXISTS `rights`; +CREATE TABLE IF NOT EXISTS `rights` ( + `user` varchar(30) NOT NULL, + `node` varchar(256) NOT NULL, + `part` varchar(50) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + diff --git a/vagrant-env/envs/debian9-x64-min.dsc b/vagrant-env/envs/debian9-x64-min.dsc new file mode 100644 index 0000000000000000000000000000000000000000..9a706c335ead948dffed6dfec69dfb2cef57f8c7 --- /dev/null +++ b/vagrant-env/envs/debian9-x64-min.dsc @@ -0,0 +1,22 @@ +--- +name: debian9-x64-min +version: 2020090209 +description: debian 9 (stretch) - min +author: support-staff@lists.grid5000.fr +visibility: public +destructive: false +os: linux +image: + file: server:///vagrant/envs/debian9-x64-min-2020090209.tgz + kind: tar + compression: gzip +postinstalls: +- archive: server:///grid5000/postinstalls/g5k-postinstall.tgz + compression: gzip + script: "g5k-postinstall --net debian --net traditional-names -d --no-ref-api" +boot: + kernel: "/vmlinuz" + initrd: "/initrd.img" +filesystem: ext4 +partition_type: 131 +multipart: false diff --git a/vagrant-env/kadeploy_conf/client.conf b/vagrant-env/kadeploy_conf/client.conf new file mode 100644 index 0000000000000000000000000000000000000000..4affeba8f6debe530192a7899bbc0c22e6e2c841 --- /dev/null +++ b/vagrant-env/kadeploy_conf/client.conf @@ -0,0 +1,7 @@ +--- +default: site1 +servers: +- name: site1 + port: 25301 + hostname: 127.0.0.1 + secure: true diff --git a/vagrant-env/kadeploy_conf/clusters.conf b/vagrant-env/kadeploy_conf/clusters.conf new file mode 100644 index 0000000000000000000000000000000000000000..82b8d8fbe5538a5fc330350a9a2ad2a76e023109 --- /dev/null +++ b/vagrant-env/kadeploy_conf/clusters.conf @@ -0,0 +1,7 @@ +--- +clusters: +- name: A + conf_file: sample-cluster.conf + nodes: + - address: 10.0.10.2 + name: node-1 diff --git a/vagrant-env/kadeploy_conf/command.conf b/vagrant-env/kadeploy_conf/command.conf new file mode 100644 index 0000000000000000000000000000000000000000..5e0251e8b92d9e0ec6e381e7274761c985f8382c --- /dev/null +++ b/vagrant-env/kadeploy_conf/command.conf @@ -0,0 +1,7 @@ +#We can specify here specific commands for specific nodes +# +# node-1: +# soft_reboot: ssh root@node-1 reboot +# node-2: +# power_status: lanpower -s node-1 +# diff --git a/vagrant-env/kadeploy_conf/sample-cluster.conf b/vagrant-env/kadeploy_conf/sample-cluster.conf new file mode 100644 index 0000000000000000000000000000000000000000..501c13d7b9ec21b03b381720bf80c67d10dc0a43 --- /dev/null +++ b/vagrant-env/kadeploy_conf/sample-cluster.conf @@ -0,0 +1,67 @@ +--- +partitioning: + partitions: + tmp: 5 + prod: 2 + deploy: 3 + swap: 1 + disable_swap: false + block_device: /dev/sda + script: /vagrant/scripts/partitioning.sh +boot: + sleep_time_before_ping: 0 + install_bootloader: /vagrant/scripts/install_grub_g5k.sh + kernels: + deploy: + initrd: kernels/kadeploy3-deploy-kernel-buster.initrd.img + vmlinuz: kernels/kadeploy3-deploy-kernel-buster.vmlinuz + params: modprobe.blacklist=igb ETH_DEV=eth0 console=tty0 console=ttyS0,115200 ramdisk_size=260000 rw root=/root.tmp net.ifnames=0 biosdevname=0 + supported_fs: ext2, ext3, ext4 +timeouts: + reboot: 120 + kexec: 120 +remoteops: + console: + - name: soft + cmd: conman HOSTNAME_SHORT + reboot: + - name: soft + cmd: ssh -o StrictHostKeyChecking=no HOSTNAME_SHORT sudo reboot + - name: hard + cmd: echo restart | ncat $(ip route get 8.8.8.8 | head -n 1 | sed 's/.*via \([0-9.]*\) dev.*/\1/g') + - name: very_hard + cmd: echo restart | ncat $(ip route get 8.8.8.8 | head -n 1 | sed 's/.*via \([0-9.]*\) dev.*/\1/g') + power_on: + - name: hard + cmd: echo poweron | ncat $(ip route get 8.8.8.8 | head -n 1 | sed 's/.*via \([0-9.]*\) dev.*/\1/g') + power_off: + - name: soft + cmd: ssh -o StrictHostKeyChecking=no HOSTNAME_SHORT sudo poweroff + - name: hard + cmd: echo poweroff | ncat $(ip route get 8.8.8.8 | head -n 1 | sed 's/.*via \([0-9.]*\) dev.*/\1/g') + power_status: + - name: soft + cmd: ping -c 2 HOSTNAME_SHORT +pxe: + headers: + dhcp: &id001 |- + PROMPT 0 + SERIAL 0 38400 + networkboot: *id001 + localboot: *id001 +automata: + macrosteps: + BootNewEnv: + - timeout: 150 + type: Classical +# type: Kexec + retries: 1 + BroadcastEnv: + - timeout: 300 + type: Kascade + retries: 2 + SetDeploymentEnv: + - timeout: 200 + type: Untrusted +# type: Kexec + retries: 2 diff --git a/vagrant-env/kadeploy_conf/server.conf b/vagrant-env/kadeploy_conf/server.conf new file mode 100644 index 0000000000000000000000000000000000000000..b2326bb022e6370f9a7e3d3b77ee916ff62e58b7 --- /dev/null +++ b/vagrant-env/kadeploy_conf/server.conf @@ -0,0 +1,88 @@ +--- +database: + name: deploy3 + kind: mysql + host: localhost + login: deploy + passwd: deploy-password +rights: + purge_deployment_timer: 900 + kind: db + almighty_users: root,deploy,vagrant +authentication: + acl: + whitelist: + - localhost + certificate: + ca_cert: /vagrant/ssl/test.cert + whitelist: + - localhost + - 127.0.0.1 + ident: + whitelist: + - localhost + - 127.0.0.1 +security: + secure_server: true + certificate: /vagrant/ssl/test2.cert + private_key: + algorithm: RSA + file: /vagrant/ssl/test2.key +logs: + database: true + logfile: /var/log/kadeploy3/kadeploy.log + debugfile: /var/log/kadeploy3/kadeploy.debug +verbosity: + logs: 3 + clients: 3 +ssh_private_key: /home/vagrant/.ssh/deploy_id_rsa +cache: + size: 5000 + directory: /tmp/kadeploy_cache +network: + vlan: + hostname_suffix: -kavlan-VLAN_ID + set_cmd: kavlan NODES -s -i VLAN_ID -u USER + server_hostname: wheezy_mock + ports: + test_deploy_env: 25300 + kadeploy_server: 25301 +windows: + reboot: + sleep_time: 1 + size: 50 + check: + size: 100 +environments: + max_postinstall_size: 10 + max_preinstall_size: 10 + deployment: + rambin_dir: /rambin + extraction_dir: /mnt/dest + tarball_dir: /tmp +pxe: + dhcp: + method: PXElinux + repository: /srv/tftp + export: + kind: tftp + server: kadeploy-server + profiles: + directory: pxelinux.cfg + filename: ip_hex + userfiles: + directory: userfiles + max_size: 200 +autoclean_threshold: 360 +external: + mkfs: + - args: -F -b 4096 -O sparse_super,filetype,resize_inode,dir_index + fstype: ext3 + - args: -F -b 4096 -O sparse_super,filetype,resize_inode,dir_index + fstype: ext4 + kascade: + binary: /kadeploy/addons/kascade/kascade + taktuk: + auto_propagate: false + tree_arity: 3 + connector: ssh -A -l root -q -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o PreferredAuthentications=publickey -o BatchMode=yes diff --git a/vagrant-env/kadeploy_conf/version b/vagrant-env/kadeploy_conf/version new file mode 100644 index 0000000000000000000000000000000000000000..e80871977d49607069d17bdb132986509d85edc1 --- /dev/null +++ b/vagrant-env/kadeploy_conf/version @@ -0,0 +1 @@ +3.3.10.stable diff --git a/vagrant-env/kadeploy_provision.sh b/vagrant-env/kadeploy_provision.sh new file mode 100644 index 0000000000000000000000000000000000000000..3c29cb3588a4f5338402a07e509f13ed67d9291a --- /dev/null +++ b/vagrant-env/kadeploy_provision.sh @@ -0,0 +1,70 @@ +#!/bin/bash +set -xe + +install_package() { +wget http://packages.grid5000.fr/grid5000-archive-key.asc -q -O- | apt-key add - +echo deb http://packages.grid5000.fr/deb/g5k-postinstall/ ./ > /etc/apt/sources.list.d/postinstall.list +echo deb http://packages.grid5000.fr/deb/kadeploy-kernels/ ./ > /etc/apt/sources.list.d/kadeploykernel.list +DEBIAN_FRONTEND=noninteractive apt-get update +DEBIAN_FRONTEND=noninteractive apt-get install -y ruby rubygems lsb-release git taktuk rake help2man mysql-server ruby-dev libmysqlclient-dev ident2 syslinux nmap dnsmasq isc-dhcp-server tftpd-hpa pxelinux +DEBIAN_FRONTEND=noninteractive apt-get install -y g5k-postinstall kadeploy3-deploy-kernel-buster +# Not necessary: +DEBIAN_FRONTEND=noninteractive apt-get install -y vim tcpdump +gem install --conservative --no-ri --no-rdoc mysql +gem install --conservative --no-ri --no-rdoc net-ssh -v 4.2.0 +gem install --conservative --no-ri --no-rdoc net-ssh-multi +} + +setup_tftp() { +mkdir -p /srv/tftp/{pxelinux.cfg,userfiles,kernels} +chmod -R 777 /srv/tftp +cp /vagrant/other_conf/tftpd-hpa /etc/default/tftpd-hpa +cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/ +cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp/ +cp /grid5000/kadeploy-kernels/kadeploy3-deploy-kernel-buster.{vmlinuz,initrd.img} /srv/tftp/kernels +cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp/ +cp /usr/lib/syslinux/modules/bios/chain.c32 /srv/tftp/ +cp /usr/lib/syslinux/modules/bios/libcom32.c32 /srv/tftp/ +cp /usr/lib/syslinux/modules/bios/libutil.c32 /srv/tftp/ +systemctl restart tftpd-hpa +} + +setup_dhcp() { +sudo cp /vagrant/other_conf/dhcpd.conf /etc/dhcp/dhcpd.conf +sudo cp /vagrant/other_conf/isc-dhcp-server /etc/default/isc-dhcp-server +systemctl restart isc-dhcp-server.service +} + +setup_dns() { +sed -i -E "s/^.*\s+kadeploy\s+kadeploy$/10.0.10.100\tkadeploy\tkadeploy/g" /etc/hosts +echo "10.0.10.2 node-1 node-1" >> /etc/hosts +systemctl restart dnsmasq +} + +setup_kadeploy() { +mysql <<< "DROP DATABASE IF EXISTS deploy3;\nCREATE DATABASE deploy3;\nGRANT select, insert, update, delete, create, drop, alter, create temporary tables, lock tables ON deploy3.* TO 'deploy'@'localhost';\nSET PASSWORD FOR 'deploy'@'localhost' = PASSWORD('deploy-password');\nuse deploy3;\nsource /vagrant/db_creation.sql;" +cp /vagrant/keys/id_deploy /home/vagrant/.ssh/deploy_id_rsa +chown vagrant /home/vagrant/.ssh/deploy_id_rsa +chmod og-r /home/vagrant/.ssh/deploy_id_rsa +mkdir -p /var/lib/deploy/bin +sudo ln -fs /vagrant/kalogger /var/lib/deploy/bin/lanpower +sudo ln -fs /vagrant/kalogger /var/lib/deploy/bin/partition +mkdir -p /etc/kadeploy3 +sudo ln -fs /vagrant/kadeploy_conf/client.conf /etc/kadeploy3/client.conf +sudo ln -fs /vagrant/kadeploy_conf/clusters.conf /etc/kadeploy3/clusters.conf +sudo ln -fs /vagrant/kadeploy_conf/command.conf /etc/kadeploy3/command.conf +sudo ln -fs /vagrant/kadeploy_conf/sample-cluster.conf /etc/kadeploy3/sample-cluster.conf +sudo ln -fs /vagrant/kadeploy_conf/server.conf /etc/kadeploy3/server.conf +cat /kadeploy/conf/version <(echo -n vagrant) | tr '\n' '.' > /etc/kadeploy3/version +mkdir -p /var/log/kadeploy3 +chown vagrant:vagrant /var/log/kadeploy3 +ident2 +echo "export KADEPLOY3_LIBS=/kadeploy/lib/" > /home/vagrant/.bashrc +echo "export PATH=$PATH:/kadeploy/bin:/kadeploy/sbin" > /etc/profile.d/kadeploy.sh +} + +install_package +setup_tftp +setup_dhcp +setup_dns +setup_kadeploy diff --git a/vagrant-env/kalogger b/vagrant-env/kalogger new file mode 100755 index 0000000000000000000000000000000000000000..0fff225ec029eba27e870a85ea1fac9e9f76a383 --- /dev/null +++ b/vagrant-env/kalogger @@ -0,0 +1,66 @@ +#!/usr/bin/ruby + +require 'socket' +require 'pp' +$more = nil + +TFTP="/var/lib/deploy/tftp/pxelinux.cfg" +CommandLogger="/var/log/kadeploy3/command.log" + +def convert_to_filename(ip) + hexa=ip.split('.').map do |p| + i=p.to_i.to_s(16) + i='0'+i if i.size == 1 + i + end + hexa.join('').upcase +end + +def check_chainc32(ip) + f=File.join(TFTP,convert_to_filename(ip)) + system("sync") + out=`grep chain.c32 #{f} 2> /dev/null` + $?.exitstatus != 0 +end +def connect_openport(ip,open) + cmd = 'stop' + cmd = 'start' if open + t=TCPSocket.new('127.0.0.1',25000) + t.puts("#{cmd} #{ip}") + t.close +end + +def update_port(ip) + connect_openport(ip,check_chainc32(ip)) +end + +date=`date`.strip +connection_ssh = 'kadeploy' +connection_ssh_ip = '127.0.0.1' +if (ENV['SSH_CONNECTION']) + connection_ssh = ENV['SSH_CONNECTION'].split(' ')[2] + connection_ssh_ip = connection_ssh.clone + connection_ssh.gsub!('127.0.2.','node-') +end + +case File.basename($0) +when 'reboot' + update_port(connection_ssh_ip) +when 'kexec' + test = ARGV.join(' ') + if test.include? "-l" + if test.include? "/dev/shm/kexec_repository" + connect_openport(connection_ssh_ip,true) + else + connect_openport(connection_ssh_ip,false) + end + end +when 'lanpower' + name = ARGV[-1].gsub('node-','127.0.2.') + update_port(name) +end + +open(CommandLogger, 'a') do |f| + f.puts("#{date} #{connection_ssh} #{$0} #{ARGV.join(' ')}") + f.puts("#{date} #{connection_ssh} #{$more}") if $more +end diff --git a/vagrant-env/keys/id_deploy b/vagrant-env/keys/id_deploy new file mode 100644 index 0000000000000000000000000000000000000000..a05f9d809d4cd4943c5c72b41d0c2c757b471bd2 --- /dev/null +++ b/vagrant-env/keys/id_deploy @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIJKQIBAAKCAgEAxSy394QxrVuejjDMOLioP+TaNjX5rDTLQkdtdpIibm7hjAvi +fMlBS2TonFtGPoWOREi3ElZpqCeW3S8q7QWQQfRLktfGSGt3OC4J7G9xwZcLIC5Q +XJdJAliAqgbN87AMHiFFvVf7wHwkm0Xhkf7yqjsFXR6/Spnd4uOjChGYfw6OY4DY +h7RfneiByzoKKu9SlvbpQHQlelWYnNUvdmw++ui0HY44Ikr7DAU8Xjd3qBcxFrRp +pw/6tlKyL+BjmY6JN0PZxghSueqFbLAWqWZnjuwayQ4dPFqApw1DGVG+03s1htqv +NbdK1XIiKLAfI4xNQTq7cit3elHFMBX5GwPHJZhtR1PbUlEVZsMaAim8QmMMMiUp +lTCFd2nrc1dYn4/OffRMsa4oYzAhcqHU4SH63yfd7JJLZWKJiPqlZX6RY3r9AfVA +XieUlZiqmatoOmJS2EMHdq4uJBgOuqrQ9ZLXZX1SX8aBJIqozzABh+Y6dKMY+HNf +G9a1aocuZcUnGyBWz3W7DIWgdpXhH2oLpgP7lBYKvtB2xihRmL5giNiewhcT75np +qzKYzo+BkaUarnG94FBiY97aWsVHkyuQCINUBT7xhyCuuu6WwFbFNGFvR6htGOxt +PQjamPXoLn7UOMGOqJ9PuyaWoWoRykbqctANx3s7+mMhooe47p1yCAef77ECAwEA +AQKCAgAdfYS+Zm0vqoZaaf4BdczkUYw5k3UWRocoEJrUoyK3NapSUey8ETXM2vjX +eedVrpAKsn1/JqGC3vj3d/iJns1mr+0lt1QWvMwGAQzG6hwvgjHNzF+EmbP3v9ju +lTn0ep41W3Cc0y36KhcnihokxebxgwZYWSLvO3guWTGnbd5LEphFVZ4NHfM3IPFY +vgOLTGQj5CYa18RLOcYrns8MfUAmMuvNh9npdyF5OMdAqDcjUuSqqq0qqX8sCc5Q +ztTWwLTRKTrHHbORzvvJt8SL7Z8Lh1CyRYQl5LtdQOSKQumxo7nrw4V1GUb+CaYG +Q+FEZdWgLfKfLtUd3GELwh2R5szAFRyF4WsZruIBMRozDQTG+KkSHR0w2n4SHAds +zXF5a/z2ulNPPsaGkUTlrfBcH1tKmVcU/0fAUIOaOP5QIL50RQLL447yMjTZ2wYQ +ukrF+xJ/6589TPqU5nluEZVihRu/yW4xb87x/mO/T4Wk4Q12YfGQWaGAsI+KVaWc +nMaS/f0vR3gGf7kRp7bd33zR3k7+cHXpB1dtqSThsE1t9sbNMfDwijasoPFMUVw4 +7ksifLI4qUNUiK//DzW2nNg2zudnjTc1mk8IqFOcJszj8Mv0ah0MlTyekhBydLVM +cKkHNldjgRvvGM17INCgTAkJoQF8TeCM783VB42Tp0yzYR5AgQKCAQEA+2d9EQCf +AxHhbpGKEjMZ8OH43o74hoKFd3jgzQrccfYaIyF541IU+3NLVukJ0LJ3Pkl1B2pc +hs2TFeBwMsgh+IEKSrWOFs+ivZ2dA2gkD9Qh7j5NRx2HKr294kws9SCuATI/xbwr +NnFAnuHJtewtP5e5fAV0+f2c+sp4t3XTEjTHUMECpt1jwaSvkBF7cda4hfP8oRRK +11kTWPMMtzPG46DnXSIgaM4AgOUC1USlzE/6qaeP3klewPLQ1KLXIVipA4jnovFs +zPe2jjWaLheG10D0FrdKSiykTbrkceTbP87p21gOSAbIWvoI+OUHs4uz8P6uklaX +ZIZ2eo+KzfZ1KQKCAQEAyMdy3/MDRprKCqM1g4Ioq2mdqkj4gAsT8u4ITkeGEZzF +nj1NXOPZ8A74kstm6rXJGpWAuewry84RCjUTaFfUMom72UUjgXal3Zy990CxnmD3 +C9Yk2j6VEHYcnqQfGmPMMOihLaDv/xT8VIHhbbltEKmq5zay39iVKBocu7S8KD7U +/XQcXh7QKF8u96DPceSXC7fcvVhtMraHCWn6bXNxphmYN5OZbID3CzPEtEEysv3f +FU9V2yccvH0kDiSEnWs772NTc2FmYn067NYmxWR3enpEo1NVw1qg5TFiwiZES04j +xgTv+JyYR+C5MPGuwOmSBAcA5wZcHdp5ri8muuYvSQKCAQAqQBwurVIL7Adc06zG +njvv1apDjPeLc4gGqhPtobOmm1uNJ+UaJQNNtvSkaImzvyp3F1VJp8BhD092z79L +aYL8BoO6RoTYpJCPGVv35Jqa5mXFakcGepnqvvSYgYDUuWdE4DMDgjoo7iOUEBIc +NtLr6w3LIAems86b/0cGXhDY8HHGyoktjetj8c9ngOikGxfruzNrxsNFKb0sp7wt +VdBJFROM/V1A/83p25L8UIskqRRRSs3M57u65ZPfCHbrLcFJzMpRAg3s7HyLrcp5 +kI6iwlHDN46OpK4AOjaGRZXrRVTb/hJ4XFtznq2/Vo5SyFm3WLXx9gd/Z3Gl61XC +g3bxAoIBAQCHHSliKgBvWCVVCUYu7L1/tQCEIr0QNeRD3Am83AcN/SlD9s8EDtWP +5hNDfhwRISpneGp7M8K5UUBIVTVtR4WmSOggK5XcPsMaIqv4IxIkme5GieKc9/aK +cGGMJLhFoxk7ZKFqul4nk7DHEexpUZpi1zsKg9XWK8McjI3/h34Du1zL/4JDmIrO +UFekDxTq+UDogt/KkCJUOV8gZ7A+Ta0ScTDtXaemzBbz8++QujtrFss0ZQJLC8Qb +2D8WQV75LLvVukrjX41uBAZOcUMAHT8GLhfYrXEOmQOjmRtzuhrFbp1GWfY/oOod +nM4jcNEAQ26exTPHRJFjCa5PGK4Aonz5AoIBAQDWJfevV8ynP5duFhLhrXnAasru +7QAp9OP++wuHNW8ouLon7geZb5QRwGM8H19YCrXRPJq4Nw4NaeUgbuUuWekSSJfp +L/63N3gTSMn2pLbuWcnfkrOQSyCa8roivxSsM+GfznE57O4RkhiqXuTWwXDnqNqD +vinD6S7aV1FVRF6km4t65fSg8S53rqcDoBsbLhYvhqXBOHGfRDjPkvnrnTcXO0Vg +7Zu9o8U4QvO1+7Zt7oPOnJaGi28YxAZfiVX1/0tKeOigVZ+OdjB2H1eteejNXrLk +gmaRTAYN87hvJ+oq5urr9GO3IqGFGZRfmTXdsopae5L/c8NUw0NspDGcdURu +-----END RSA PRIVATE KEY----- \ No newline at end of file diff --git a/vagrant-env/other_conf/dhcpd.conf b/vagrant-env/other_conf/dhcpd.conf new file mode 100644 index 0000000000000000000000000000000000000000..4674f562c30638b90b3783f84e3ec1e3ecae3af6 --- /dev/null +++ b/vagrant-env/other_conf/dhcpd.conf @@ -0,0 +1,22 @@ +default-lease-time 28800; +max-lease-time 86400; +allow booting; +allow bootp; +not-authoritative; +use-host-decl-names on; + +subnet 10.0.10.0 netmask 255.255.255.0 { + option subnet-mask 255.255.255.0; + option broadcast-address 10.0.10.255; + option routers 10.0.10.254; + option domain-name-servers 10.0.10.100; + option domain-name "testbed.lan"; + filename "pxelinux.0"; + + host node-1.testbed.lan { + hardware ethernet 00:09:3d:00:11:01; + fixed-address 10.0.10.2; + option host-name "node-1"; + next-server 10.0.10.100; + } +} diff --git a/vagrant-env/other_conf/isc-dhcp-server b/vagrant-env/other_conf/isc-dhcp-server new file mode 100644 index 0000000000000000000000000000000000000000..8650a9d69700d1b11933d8d10a2b416b7c6d8900 --- /dev/null +++ b/vagrant-env/other_conf/isc-dhcp-server @@ -0,0 +1 @@ +INTERFACES="eth1" diff --git a/vagrant-env/other_conf/tftpd-hpa b/vagrant-env/other_conf/tftpd-hpa new file mode 100644 index 0000000000000000000000000000000000000000..268ebe12aecde0dbb2bea9af916dda675806cff7 --- /dev/null +++ b/vagrant-env/other_conf/tftpd-hpa @@ -0,0 +1,4 @@ +TFTP_USERNAME="tftp" +TFTP_DIRECTORY="/srv/tftp" +TFTP_ADDRESS="0.0.0.0:69" +TFTP_OPTIONS="-v -l -c -s" diff --git a/vagrant-env/scripts/install_grub_g5k.sh b/vagrant-env/scripts/install_grub_g5k.sh new file mode 100755 index 0000000000000000000000000000000000000000..07e05a518fee63b1b443359881ff033307a1ef81 --- /dev/null +++ b/vagrant-env/scripts/install_grub_g5k.sh @@ -0,0 +1,104 @@ +#!/bin/bash -e + +## Test if Grub is already installed (g5k-postinstall) + +if [ -f $KADEPLOY_ENV_EXTRACTION_DIR/boot/grub/grub.cfg ] || + [ -f $KADEPLOY_ENV_EXTRACTION_DIR/boot/grub2/grub.cfg ]; then + echo "Grub is already installed, nothing to do" + exit +fi + +## Guess the Grub's disk number from the name of the block device ## +# Get the last character of the block device name ("/dev/sdb" -> 'b') +grubdisk=${KADEPLOY_BLOCK_DEVICE#${KADEPLOY_BLOCK_DEVICE%?}} +# Get a number based on this value, numbering starts at 'a' +let grubdisk=$(printf "%d" "'$grubdisk")-$(printf "%d" "'a") || test $grubdisk -eq 0 + +# Workaround for pyxis, grub detect the deployed disk as hd1 +if [ $KADEPLOY_CLUSTER == "pyxis" ]; then + grubdisk=1 +fi + +KADEPLOY_DEPLOY_DISK_NUM=$grubdisk + +# Get the Grub's disk identifier (so "/dev/sdb" -> "hd1") +grubdisk="hd${grubdisk}" + + + +if [ -d /sys/firmware/efi ]; +then + cpu_arch=$(uname -m) + if [[ $cpu_arch == "x86_64" ]]; then + grub_target="x86_64-efi" + elif [[ $cpu_arch == "aarch64" ]]; then + grub_target="arm64-efi" + else + echo "Unable to install grub2 on unknown CPU architecture : $cpu_arch" 1>&2 + exit 1 + fi + rm -f /etc/apt/sources.list.d/jessie-backports.list + mkdir -p $KADEPLOY_ENV_EXTRACTION_DIR/boot/efi + mount ${KADEPLOY_BLOCK_DEVICE}4 $KADEPLOY_ENV_EXTRACTION_DIR/boot/efi + mkdir -p $KADEPLOY_ENV_EXTRACTION_DIR/boot/efi/EFI/part$KADEPLOY_DEPLOY_PART_NUM + grub-install --target=$grub_target \ + --efi-directory=$KADEPLOY_ENV_EXTRACTION_DIR/boot/efi \ + --bootloader-id=part$KADEPLOY_DEPLOY_PART_NUM \ + --boot-directory=$KADEPLOY_ENV_EXTRACTION_DIR/boot + grub-mkimage \ + -o $KADEPLOY_ENV_EXTRACTION_DIR/boot/efi/EFI/part$KADEPLOY_DEPLOY_PART_NUM/boot.efi \ + --format=$grub_target "--prefix=(hd${KADEPLOY_DEPLOY_DISK_NUM},gpt${KADEPLOY_DEPLOY_PART_NUM})/boot/grub" ext2 part_gpt + +else + ### Install grub on the deployment partition ### + grub-install --no-floppy --root-directory=$KADEPLOY_ENV_EXTRACTION_DIR --force \ + $KADEPLOY_DEPLOY_PART + grub-install --no-floppy --root-directory=$KADEPLOY_ENV_EXTRACTION_DIR --force \ + --recheck $KADEPLOY_DEPLOY_PART +fi + + +### Generation of the menu file grub.cfg ### +MENUFILE=/boot/grub/grub.cfg + +## Generate the options considering on the operating system ## +case $KADEPLOY_OS_KIND in + "linux") + opts=" linux $KADEPLOY_ENV_KERNEL $KADEPLOY_ENV_KERNEL_PARAMS root=$KADEPLOY_DEPLOY_PART ro"$'\n' + [ -n "$KADEPLOY_ENV_INITRD" ] && opts+=" initrd $KADEPLOY_ENV_INITRD"$'\n' + ;; + + "xen") + opts=" multiboot $KADEPLOY_ENV_HYPERVISOR $KADEPLOY_ENV_HYPERVISOR_PARAMS"$'\n' + opts+=" module $KADEPLOY_ENV_KERNEL $KADEPLOY_ENV_KERNEL_PARAMS root=$KADEPLOY_DEPLOY_PART ro"$'\n' + [ -n "$KADEPLOY_ENV_INITRD" ] && opts+=" module $KADEPLOY_ENV_INITRD"$'\n' + ;; + + "bsd") + opts=" insmod ufs1"$'\n' + opts+=" insmod ufs2"$'\n' + opts+=" insmod zfs"$'\n' + opts+=" chainloader +1"$'\n' + ;; + + "windows") + opts=" insmod fat"$'\n' + opts+=" insmod ntfs"$'\n' + opts+=" ntldr /bootmgr"$'\n' + ;; + *) + echo "Unknown operating system '${KADEPLOY_OS_KIND}'" 1>&2 + exit 1 +esac + +## Write the menu file ## +IFS='' +cat <<EOF > $KADEPLOY_ENV_EXTRACTION_DIR/$MENUFILE +set default=1 +set timeout=0 + +menuentry "${KADEPLOY_OS_KIND}" { + set root=(${grubdisk},${KADEPLOY_DEPLOY_PART_NUM}) +${opts}} +EOF + diff --git a/vagrant-env/scripts/partitioning.sh b/vagrant-env/scripts/partitioning.sh new file mode 100644 index 0000000000000000000000000000000000000000..f4472649cc72c58fd3826bf8f416d801d6794e02 --- /dev/null +++ b/vagrant-env/scripts/partitioning.sh @@ -0,0 +1,69 @@ +#!/bin/bash + +PARTED_OPTS="--script -a optimal" +UNIT="GB" +env > /tmp/envatexecute +# Set the filesystem type of the deployment partition +# (in order for parted to write the corresponding MSDOS partition type +# in the partition table) +if [ $KADEPLOY_DEPLOY_PART_NUM -ne "5" ]; then + FSTYPE[$KADEPLOY_DEPLOY_PART_NUM]=$KADEPLOY_FS_TYPE + FSTYPE[5]="ext4" +else + FSTYPE[$KADEPLOY_DEPLOY_PART_NUM]=$KADEPLOY_FS_TYPE +fi + +function do_parted() +{ + echo /sbin/parted $PARTED_OPTS $KADEPLOY_BLOCK_DEVICE unit $UNIT $@ >> /tmp/log + /sbin/parted $PARTED_OPTS $KADEPLOY_BLOCK_DEVICE unit $UNIT $@ +} + +echo "Kadeploy starting partitionning..." > /dev/kmsg + +until stat $KADEPLOY_BLOCK_DEVICE +do + sleep 2 +done + +if [ -d /sys/firmware/efi ]; +then + echo "UEFI in use" > /dev/kmsg + do_parted "mklabel gpt" + do_parted "mkpart primary linux-swap 0% 4" + do_parted "mkpart primary ${FSTYPE[2]} 4 25" + do_parted "mkpart primary ${FSTYPE[3]} 25 49" + do_parted "mkpart efi 49 50" + do_parted "toggle 4 boot" + do_parted "mkpart primary ${FSTYPE[5]} 50 100%" +else + # Execution of several parted commands for debug purpose + # (identification of the line which is failing) + do_parted "mklabel msdos" + do_parted "mkpart primary linux-swap 0% 1%" + do_parted "mkpart primary ${FSTYPE[2]} 1% 2" + do_parted "mkpart primary ${FSTYPE[3]} 2 4" + do_parted "mkpart extended 4 100%" + do_parted "mkpart logical ${FSTYPE[5]} 4 100%" +fi + +# https://intranet.grid5000.fr/bugzilla/show_bug.cgi?id=5124 +#do_parted "toggle $KADEPLOY_DEPLOY_PART_NUM boot" +do_parted "align-check optimal 1" +do_parted "align-check optimal 2" +do_parted "align-check optimal 3" +do_parted "align-check optimal 4" +do_parted "align-check optimal 5" + +/sbin/partprobe $KADEPLOY_BLOCK_DEVICE + +if [ -d /sys/firmware/efi ]; +then + until stat ${KADEPLOY_BLOCK_DEVICE}4 + do + sleep 1 + done + if ! $(/sbin/parted $PARTED_OPTS -m ${KADEPLOY_BLOCK_DEVICE}4 print | grep -q fat32); then + mkdosfs -F 32 ${KADEPLOY_BLOCK_DEVICE}4 + fi +fi diff --git a/vagrant-env/ssl/test.cert b/vagrant-env/ssl/test.cert new file mode 100644 index 0000000000000000000000000000000000000000..dd5b46095baf323972b1e9e6167ed3d3dc032c30 --- /dev/null +++ b/vagrant-env/ssl/test.cert @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC+TCCAeGgAwIBAgIJAMUwu4634PcdMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV +BAMMCCouZGVwbG95MB4XDTE0MDUxMzA3MjgyN1oXDTE0MDYxMjA3MjgyN1owEzER +MA8GA1UEAwwIKi5kZXBsb3kwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +AQDVrOaMZz719bemVf6ZHhZdHAJGmtA36EdlwHYGrIOLX0Xa6SYAY2Wez6G32RDJ +ZVfio+bR0nV0+x2rNSrsyjP5Sw2IvTctIj6zJoMZJmOV0lU6yVQc+ifQ7ULPkqbt +lMlNOhkbm2SRSR+2/o89F7Fo7Vg1YMM949M/p2hubZ5rfVWodqS5nVKjMT2fRhC3 +NW7H50s2cXiaeC54H3OnjX0pAhBb71KA5niePF2u6LF2qSJYQuw51dkAxY6tL/JK +OJwCxJYgyb4Yqh7z5Jgfkp3KJ6UthK/0vmLbN3gYbgfMbCBtduwxa4feYJ/mPeVb +ZxwOAcUbU8uSgvmd9YWUPk1DAgMBAAGjUDBOMB0GA1UdDgQWBBRJB86me8fOeI6N +wKDg9gLDE7yEOjAfBgNVHSMEGDAWgBRJB86me8fOeI6NwKDg9gLDE7yEOjAMBgNV +HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQBQ1C5V5d+9+jpKw8BjBt282Ewl +7GTpLgTvkJu5eEy4O4EhZzSVy9WKCgajk344RdmxLgLNz0wU9jjOK8DiVNrB3AOH +bgBoiv99XiFUhBeIgpdsVWUAgPtVQXtRvgTizBdGPmMCgcjtWzHyUIwyLZBqhTU8 +Jo4eJMWwNYx95zXAGVa0jUFORenuriV2GuGonDIaxilLU6RtPMZ3+cbIcbxXtYS8 +/Uvj1L1llM5YxLzP25q9gF3tjY3aQnCEHWN9S3WQV6iPzHGk+MeLazFyGDchuOjC +4P31j0C9QcU2jzuke1185y4GMSglntRrMx9OG6EHYbU7qPqpLiYKrgRonl/F +-----END CERTIFICATE----- diff --git a/vagrant-env/ssl/test.csr b/vagrant-env/ssl/test.csr new file mode 100644 index 0000000000000000000000000000000000000000..97495ae6fd7bae84c37174bf763682a503d5f213 --- /dev/null +++ b/vagrant-env/ssl/test.csr @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICXjCCAUYCAQAwGTEXMBUGA1UEAwwOI2RlYmlhbi1wdXBwZXQwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMfivOZIDmV90/G1yryrnyoorjw9cDgZJw +zKs+BZJXZXCdqLOdYQ5hqodhW849aqKsGXgSI7gsfaTstmoRy0955qeiKlOiQGnl +25ZfwysaaQrwooOFAat7dUzqx3l8hnuNjEB6tJoTDjtfIeFcF2Tc72R7f/HtQ+ho +JPqepVkPjKAGhasYoxoWAF7BfJPRBFxXNIQ1NdJIxIKrwuMb1390/roStRreN9L2 +4tj1veU8jkb2yt02igD64Wla8KIVu66XnUSZ9RRowJutpFBFpppkkjLY3AyU1AQG +HoZGm2rvTClaNcpBf2nHSUq7wCJSmi8lL2HwiUEBrbQJSFXgfk5rAgMBAAGgADAN +BgkqhkiG9w0BAQUFAAOCAQEAyVkT1FqguQ3uoFvYtZ2PKn83oOqtHCAcBS8uy25f +6bsQIT1JRaEaUVAsecdga+FKybtAC7m8Agi1PhpjaUQf+GwRRWX1RUG71tDsVf5Z +FhTX+CVBzLAV9qftBdq/p2erclrdOWKgFLDAptxdC6CSuP0ZeuaecaDUxIwq1/L0 +1wRDFnPx2J5gtbQeZ224MqJ8YwNLEoAhouQ/4rKEUVs3BNpXdSXt8h0+0263txxX +vhBnJqstX5vqNraKgzBeCgxUD/YPY0+RzptYQqID2/s/MSYo1d2dELSWcowUiill +jty/KvHRjY9mCTfaHxUxl3AHM4zVawY2dGGHSmGQ83Fy3w== +-----END CERTIFICATE REQUEST----- diff --git a/vagrant-env/ssl/test.key b/vagrant-env/ssl/test.key new file mode 100644 index 0000000000000000000000000000000000000000..ccfe52b4a6707f12d6b9cb450926bf406561ea08 --- /dev/null +++ b/vagrant-env/ssl/test.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDVrOaMZz719bem +Vf6ZHhZdHAJGmtA36EdlwHYGrIOLX0Xa6SYAY2Wez6G32RDJZVfio+bR0nV0+x2r +NSrsyjP5Sw2IvTctIj6zJoMZJmOV0lU6yVQc+ifQ7ULPkqbtlMlNOhkbm2SRSR+2 +/o89F7Fo7Vg1YMM949M/p2hubZ5rfVWodqS5nVKjMT2fRhC3NW7H50s2cXiaeC54 +H3OnjX0pAhBb71KA5niePF2u6LF2qSJYQuw51dkAxY6tL/JKOJwCxJYgyb4Yqh7z +5Jgfkp3KJ6UthK/0vmLbN3gYbgfMbCBtduwxa4feYJ/mPeVbZxwOAcUbU8uSgvmd +9YWUPk1DAgMBAAECggEAXJQUM+ML8W9sCaKas+bIU8Et7z9mVcLLJHf160BVok4+ +KvH3aBWo0t0tOUXQMyI4qNbQzDo+b9fZa/OWTI/zYuC01Xj97g03U1GtXXk3jpNa +ICVYz1FHbQtPdjYZIzji2xYACOkT8qrXFedHUnXwhQDIxh/NmAQc5Ch5Y9cU24bg +j2+MMoKFdpPGeTP7n57Faa7daL6u0yvEb+veNui48sEErtrDTMCzbWX9kvTi7n1s +UgIuSDJ92iW83v6iUQNWhMcOrjp3hvtMDGl4WHJEbmUnErktl0niEkXk5y+mbWd5 +uNhyLfZxgytufNwX1aJVw+0hFqHMCVcu7LmDxbKEkQKBgQDxb9pno9EKG5FpVQym +qmfXt+dnZGF9v8FEmfgIjuWs9S7UmNERfYWFAhRDtISju3uQ9VxC9XAqW5D1i6yP +JWEE2XzdBBRErgvcg4VHAhVvtN7PR8KrRiZvJ0qlD/DHv/4+FvbhIHi1FCA7MRcI +YJxKJpvgIWQQargr0aYL+Ci3OQKBgQDikF4tk+J66uAuwyymTinEGcdxJQ0Egu69 ++3hebBrq66xKcynGS9ZxNNegug9TSu4ACCK/fxUN+vUL6W5jEOJzFqhZU7ruU+Hb +194Y8HWNyZxX7oA1xvMbLllmA9K7M79ZPiEZVZaWuys3+m6YOoXD6xF/pG7PWWvn +DUOv5CKMWwKBgQDRp73SrdCCpHnbK/22ZNeT3aDWibaXCgL8XW+jjuMnFCo8dw9l +zsg5Phr2yDU+MToWINqjUpq6TZVNhKKuE1lyaqIhEr++/BxUuujrRoXy4O9ys+/5 +5wrNDyOkvnjqHHDc3fg4eogXRojOncxQfAR755cIRDaugt23P3CfiDljEQKBgE97 +E/7rRWWXpkPhZnWFMDPCU2xG8jUl9bkiUgzV4e+N8+g+VGZjTnxybD7PZvbyb2IF +eKMzYuB/rJ2cK4SHdNmpFjAYJpjbRn3IUfrvyF2QX8+dNM8o1zou3V/jcXcI5VTa +beQkWWrRiIzfxxKSXUDo4z+jINiO50KsLZWz88bHAoGBAIgEbDHfDCqYc4P4OwK1 +eYvdqrPMG03tPO2eA8/U1iJmr/uSH9TCP+p8qu5iS1H13TYhVxDD3SNWR5LY436U +VwAQHZLAMubyD4VOyFquJLvYOoWS3EQNDJ1eJ4WiO/QolODC+65da7Cp9dqZyqjE +pnM/HHBcauXmtq/QmgQd/efd +-----END PRIVATE KEY----- diff --git a/vagrant-env/ssl/test.srl b/vagrant-env/ssl/test.srl new file mode 100644 index 0000000000000000000000000000000000000000..84286c550013f1979e3d9ec37aed8250a1f4933c --- /dev/null +++ b/vagrant-env/ssl/test.srl @@ -0,0 +1 @@ +FDCC9A1384EE45E7 diff --git a/vagrant-env/ssl/test2.cert b/vagrant-env/ssl/test2.cert new file mode 100644 index 0000000000000000000000000000000000000000..e7381619fc1e439bd71c37a690901896020392a2 --- /dev/null +++ b/vagrant-env/ssl/test2.cert @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICqDCCAZACCQD9zJoThO5F5zANBgkqhkiG9w0BAQUFADATMREwDwYDVQQDDAgq +LmRlcGxveTAeFw0xNDA1MTMwNzMxMDRaFw0xNDA2MTIwNzMxMDRaMBkxFzAVBgNV +BAMMDiNkZWJpYW4tcHVwcGV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAzH4rzmSA5lfdPxtcq8q58qKK48PXA4GScMyrPgWSV2VwnaiznWEOYaqHYVvO +PWqirBl4EiO4LH2k7LZqEctPeeanoipTokBp5duWX8MrGmkK8KKDhQGre3VM6sd5 +fIZ7jYxAerSaEw47XyHhXBdk3O9ke3/x7UPoaCT6nqVZD4ygBoWrGKMaFgBewXyT +0QRcVzSENTXSSMSCq8LjG9d/dP66ErUa3jfS9uLY9b3lPI5G9srdNooA+uFpWvCi +Fbuul51EmfUUaMCbraRQRaaaZJIy2NwMlNQEBh6GRptq70wpWjXKQX9px0lKu8Ai +UpovJS9h8IlBAa20CUhV4H5OawIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQAy7WA6 +YN/Cv1cB4kDX/Udh6DbpxVL1gYxSTmZ7Ghu2977GRv62Z/rlE8BrnsanvOckZX0M +7sLzOePWxyd0o62FoS57U2OxKY5tY4K8k258vhW79Wg4Cffd3eEdanvdYEsSOCof +SSC81zUq/bkXcyvej0nwZUxIqXLu6Tp7sUeNY6KW6E2i9g7GTwG44aPYR133nlqm +plJsKV2iG75GZ7T3AqrczVP9xxZwEbTUof7EWQEXSIWNWlJ8SmKgwdNu/LUr3xSm +pLzpyKnwbRgsmyynymoT6Uol4N0SSCUxk4VBet+kx07eQregVWrWM2Qa5Xk8JjXg +PHqNgaJ8mmju4rJZ +-----END CERTIFICATE----- diff --git a/vagrant-env/ssl/test2.key b/vagrant-env/ssl/test2.key new file mode 100644 index 0000000000000000000000000000000000000000..84febabfc6f9ee80e6bc75405923eba0ccba906a --- /dev/null +++ b/vagrant-env/ssl/test2.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDMfivOZIDmV90/ +G1yryrnyoorjw9cDgZJwzKs+BZJXZXCdqLOdYQ5hqodhW849aqKsGXgSI7gsfaTs +tmoRy0955qeiKlOiQGnl25ZfwysaaQrwooOFAat7dUzqx3l8hnuNjEB6tJoTDjtf +IeFcF2Tc72R7f/HtQ+hoJPqepVkPjKAGhasYoxoWAF7BfJPRBFxXNIQ1NdJIxIKr +wuMb1390/roStRreN9L24tj1veU8jkb2yt02igD64Wla8KIVu66XnUSZ9RRowJut +pFBFpppkkjLY3AyU1AQGHoZGm2rvTClaNcpBf2nHSUq7wCJSmi8lL2HwiUEBrbQJ +SFXgfk5rAgMBAAECggEATJyketGqfSHD8QWmRXJREfcVg9l2L4kWvQ3gxf6+YeHO +PDLdAARBqBOEXtRPQzE1OrbcBie9s2VrKYf52yrJXsksWpPy+2GYixYmk0ACYQWj +pJ2uGmGSxlEe/QK4oA+eMFywN4h8BNGbKrv9u0vEbQV/Jsm7cIG1i3b3MgKOiEUi +IVyL1jyzVcc3ca46btruF19r61Zg9K9uW9JYmLyW6bPnXbDSLf8+D0bwKvwAe74h +NnaYp6JD83/i/DLYqHlBK4pIXvmnQKnIdzoawKLPPfcytRroGz5duOO22fzjJ5VR +pq8cKyK8kqdiyuESgGXFIrSXvFsKvvXrjzfzERScoQKBgQD3l60KaDm5U3hTTjXc +HUtaQjUXfW2Y6N5E1bE4PLOOZNNpEQ+edOKa4GqGW7o5MYiiP0k3Bvxne/uCe6W1 +dDaN8ehno3fx5USDhdEtvEjbgNUCmY/vdffjWDFOAJRS8GoeocOWXBUCEaAo7vgM +SKihXLFEgultMfswQsQW3I3UEQKBgQDTb9RkepBgk+C6xY34eFnQwF8diB6tTiuh +An0Y0+4Xw1QP6yJCpqVzKJH/kP5kMn124EaXuM6yMsbDc+mltQIHhZFKApf4Vd5n +XXEgcY6K5+JXWoZVK+NSfoNc75sVvRZZS0NZEFTwrW9FafDEGmTFTIZ4666fFbmE +EOIKDywGuwKBgCS+b8HBof9s8ch7LOcTueEVPkfUJ3Wv6XyRshFEgOk68V0AWS8M +7axKbcSuzD48qahaeAUglkjNT5AXxYneS1JZekIXMm/FtJtIOrjs3msk/Xe7Tm8d +NMKajgajc1+zqiwNmbcwxzVdZEVu4YUBK3V3Ch++xeGcr0iEQBGcfbfhAoGAMrWx +dN/IXMFatrDG2f7TW7OnnEeXQ+1pnVYhdqDti5l3QdIdB2s8ZyAl0+uMd698U9R6 +Wc0jFa4D6cCVGv8Mm403SU7R7+d4TcYlaaiSjVIMAPNfIHJENPbOvq1gvpf5EjVw +052NIaQW+cjsy7ugy4kM/1dXLCRjt/7sl4kIAB0CgYEA8V0e33GIz6dQtdrjca7T +0fIWzcvn/mXTrlV4UYqoen6nwZ9pNK4s2MWL6SLOBszRp/SsLr1TUj+EeCkhopGh +9fYsP00hOKw1Ixsa9tUd1G6xI4foZ0oYs/gNCkt3vSHuC1zAdZsGJi5meGe28bgW +w3Ci0l2uIS1loLhyHvsnhZY= +-----END PRIVATE KEY----- diff --git a/vagrant-env/vbhelper.sh b/vagrant-env/vbhelper.sh new file mode 100755 index 0000000000000000000000000000000000000000..9f93f4dad6c9f05f2c363f0949c88d51828691be --- /dev/null +++ b/vagrant-env/vbhelper.sh @@ -0,0 +1,23 @@ +read action +vm=$(VBoxManage list vms | sed "s/\"\(.*\)\".*$/\1/g" | grep vagrant-env.knode-1) + + + +echo "$action on $vm" > /dev/stderr +case "$action" in + poweroff) + VBoxManage controlvm $vm acpipowerbutton 1>&2 + ;; + hardpoweroff) + VBoxManage controlvm $vm poweroff 1>&2 + ;; + poweron) + VBoxManage startvm $vm 1>&2 + ;; + restart) + VBoxManage controlvm $vm reset 1>&2 + ;; + *) + echo "Operation not known" + ;; +esac