summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--foreman/ci/Vagrantfile4
-rwxr-xr-xforeman/ci/deploy.sh91
-rw-r--r--foreman/ci/opnfv_ksgen_settings.yml12
-rw-r--r--foreman/ci/opnfv_ksgen_settings_no_HA.yml6
-rwxr-xr-xforeman/ci/resize_lvm.sh37
-rwxr-xr-xforeman/ci/resize_partition.sh33
6 files changed, 177 insertions, 6 deletions
diff --git a/foreman/ci/Vagrantfile b/foreman/ci/Vagrantfile
index 5550976..c7dfc03 100644
--- a/foreman/ci/Vagrantfile
+++ b/foreman/ci/Vagrantfile
@@ -80,10 +80,11 @@ Vagrant.configure(2) do |config|
# sudo apt-get update
# sudo apt-get install -y apache2
# SHELL
-
+
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
+ config.vm.provision :shell, path: "resize_partition.sh"
config.vm.provision "ansible" do |ansible|
ansible.playbook = "reload_playbook.yml"
end
@@ -97,4 +98,5 @@ Vagrant.configure(2) do |config|
config.vm.provision :shell, :inline => "systemctl stop dhcpd"
config.vm.provision :shell, :inline => "systemctl disable dhcpd"
end
+ config.vm.provision :shell, path: "resize_lvm.sh"
end
diff --git a/foreman/ci/deploy.sh b/foreman/ci/deploy.sh
index 29ad83c..4c0bf10 100755
--- a/foreman/ci/deploy.sh
+++ b/foreman/ci/deploy.sh
@@ -29,6 +29,8 @@ declare -A controllers_ip_arr
declare -A admin_ip_arr
declare -A public_ip_arr
+vagrant_box_dir=~/.vagrant.d/boxes/opnfv-VAGRANTSLASH-centos-7.0/1.0.0/virtualbox/
+vagrant_box_vmdk=box-disk1.vmdk
vm_dir=/var/opt/opnfv
script=`realpath $0`
##END VARS
@@ -1023,6 +1025,19 @@ start_virtual_nodes() {
node_type=config_nodes_${node}_type
node_type=$(eval echo \$$node_type)
+ ##modify memory and cpu
+ node_memory=$(eval echo \${config_nodes_${node}_memory})
+ node_vcpus=$(eval echo \${config_nodes_${node}_cpus})
+ node_storage=$(eval echo \${config_nodes_${node}_disk})
+
+ sed -i 's/^.*vb.memory =.*$/ vb.memory = '"$node_memory"'/' Vagrantfile
+ sed -i 's/^.*vb.cpus =.*$/ vb.cpus = '"$node_vcpus"'/' Vagrantfile
+
+ if ! resize_vagrant_disk $node_storage; then
+ echo "${red}Error while resizing vagrant box to size $node_storage for $node! ${reset}"
+ exit 1
+ fi
+
##trozet test make compute nodes wait 20 minutes
if [ "$compute_wait_completed" = false ] && [ "$node_type" != "controller" ]; then
echo "${blue}Waiting 20 minutes for Control nodes to install before continuing with Compute nodes..."
@@ -1101,11 +1116,6 @@ start_virtual_nodes() {
sed -i 's/bootstrap.sh/vm_nodes_provision.sh/' Vagrantfile
## modify default_gw to be node_default_gw
sed -i 's/^.*default_gw =.*$/ default_gw = '\""$node_default_gw"\"'/' Vagrantfile
- ## modify VM memory to be 4gig
- ##if node type is controller
- if [ "$node_type" == "controller" ]; then
- sed -i 's/^.*vb.memory =.*$/ vb.memory = 4096/' Vagrantfile
- fi
echo "${blue}Starting Vagrant Node $node! ${reset}"
##stand up vagrant
if ! vagrant up; then
@@ -1226,6 +1236,77 @@ check_baremetal_nodes() {
fi
}
+##resizes vagrant disk (cannot shrink)
+##params: size in GB
+##usage: resize_vagrant_disk 100
+resize_vagrant_disk() {
+ if [[ "$1" < 40 ]]; then
+ echo "${blue}Warn: Requested disk size cannot be less than 40, using 40 as new size${reset}"
+ new_size_gb=40
+ else
+ new_size_gb=$1
+ fi
+
+ if ! vagrant box list | grep opnfv; then
+ vagrant box remove -f opnfv/centos-7.0
+ if ! vagrant box add opnfv/centos-7.0 --provider virtualbox; then
+ echo "${red}Unable to reclone vagrant box! Exiting...${reset}"
+ exit 1
+ fi
+ fi
+
+ pushd $vagrant_box_dir
+
+ # Close medium to make sure we can modify it
+ vboxmanage closemedium disk $vagrant_box_vmdk
+
+ cur_size=$(vboxmanage showhdinfo $vagrant_box_vmdk | grep -i capacity | grep -Eo [0-9]+)
+ cur_size_gb=$((cur_size / 1024))
+
+ if [ "$cur_size_gb" -eq "$new_size_gb" ]; then
+ echo "${blue}Info: Disk size already ${cur_size_gb} ${reset}"
+ popd
+ return
+ elif [[ "$new_size_gb" < "$cur_size_gb" ]] ; then
+ echo "${blue}Info: Requested disk is less than ${cur_size_gb} ${reset}"
+ echo "${blue}Re-adding vagrant box${reset}"
+ if vagrant box list | grep opnfv; then
+ popd
+ vagrant box remove -f opnfv/centos-7.0
+ if ! vagrant box add opnfv/centos-7.0 --provider virtualbox; then
+ echo "${red}Unable to reclone vagrant box! Exiting...${reset}"
+ exit 1
+ fi
+ pushd $vagrant_box_dir
+ fi
+ fi
+
+ new_size=$((new_size_gb * 1024))
+ if ! vboxmanage clonehd $vagrant_box_vmdk tmp-disk.vdi --format vdi; then
+ echo "${red}Error: Unable to clone ${vagrant_box_vmdk}${reset}"
+ popd
+ return 1
+ fi
+
+ if ! vboxmanage modifyhd tmp-disk.vdi --resize $new_size; then
+ echo "${red}Error: Unable modify tmp-disk.vdi to ${new_size}${reset}"
+ popd
+ return 1
+ fi
+
+ if ! vboxmanage clonehd tmp-disk.vdi resized-disk.vmdk --format vmdk; then
+ echo "${red}Error: Unable clone tmp-disk.vdi to vmdk${reset}"
+ popd
+ return 1
+ fi
+
+ vboxmanage closemedium disk tmp-disk.vdi --delete
+ rm -f tmp-disk.vdi $vagrant_box_vmdk
+ cp -f resized-disk.vmdk $vagrant_box_vmdk
+ vboxmanage closemedium disk resized-disk.vmdk --delete
+ popd
+}
+
##END FUNCTIONS
main() {
diff --git a/foreman/ci/opnfv_ksgen_settings.yml b/foreman/ci/opnfv_ksgen_settings.yml
index b41a41b..0478c60 100644
--- a/foreman/ci/opnfv_ksgen_settings.yml
+++ b/foreman/ci/opnfv_ksgen_settings.yml
@@ -114,6 +114,9 @@ nodes:
admin_ip: compute_admin
ansible_ssh_pass: "Op3nStack"
admin_password: ""
+ cpus: 2
+ memory: 2048
+ disk: 40
groups:
- compute
- foreman_nodes
@@ -137,6 +140,9 @@ nodes:
private_mac: "10:23:45:67:87:AC"
ansible_ssh_pass: "Op3nStack"
admin_password: "octopus"
+ cpus: 2
+ memory: 4096
+ disk: 40
groups:
- controller
- foreman_nodes
@@ -160,6 +166,9 @@ nodes:
private_mac: "10:23:45:67:87:AD"
ansible_ssh_pass: "Op3nStack"
admin_password: "octopus"
+ cpus: 2
+ memory: 4096
+ disk: 40
groups:
- controller
- foreman_nodes
@@ -183,6 +192,9 @@ nodes:
private_mac: "10:23:45:67:87:AE"
ansible_ssh_pass: "Op3nStack"
admin_password: "octopus"
+ cpus: 2
+ memory: 4096
+ disk: 40
groups:
- controller
- foreman_nodes
diff --git a/foreman/ci/opnfv_ksgen_settings_no_HA.yml b/foreman/ci/opnfv_ksgen_settings_no_HA.yml
index 79db257..80a66a6 100644
--- a/foreman/ci/opnfv_ksgen_settings_no_HA.yml
+++ b/foreman/ci/opnfv_ksgen_settings_no_HA.yml
@@ -81,6 +81,9 @@ nodes:
admin_ip: compute_admin
ansible_ssh_pass: "Op3nStack"
admin_password: ""
+ cpus: 2
+ memory: 2048
+ disk: 40
groups:
- compute
- foreman_nodes
@@ -104,6 +107,9 @@ nodes:
private_mac: "10:23:45:67:87:AC"
ansible_ssh_pass: "Op3nStack"
admin_password: "octopus"
+ cpus: 2
+ memory: 4096
+ disk: 40
groups:
- controller
- foreman_nodes
diff --git a/foreman/ci/resize_lvm.sh b/foreman/ci/resize_lvm.sh
new file mode 100755
index 0000000..64a9c62
--- /dev/null
+++ b/foreman/ci/resize_lvm.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+
+#script for resizing volumes in Foreman/QuickStack VM
+#author: Tim Rozet (trozet@redhat.com)
+#
+#Uses Vagrant and VirtualBox
+#VagrantFile uses resize_partition.sh
+#
+#Pre-requisties:
+#Vagrant box disk size already resized
+#Partition already resized
+
+##VARS
+reset=`tput sgr0`
+blue=`tput setaf 4`
+red=`tput setaf 1`
+green=`tput setaf 2`
+
+##END VARS
+
+echo "${blue}Resizing physical volume${reset}"
+if ! pvresize /dev/sda2; then
+ echo "${red}Unable to resize physical volume${reset}"
+ exit 1
+else
+ new_part_size=`pvdisplay | grep -Eo "PV Size\s*[0-9]+\." | awk {'print $3'} | tr -d .`
+ echo "${blue}New physical volume size: ${new_part_size}${reset}"
+fi
+
+echo "${blue}Resizing logical volume${reset}"
+if ! lvextend /dev/mapper/centos-root -r -l +100%FREE; then
+ echo "${red}Unable to resize logical volume${reset}"
+ exit 1
+else
+ new_fs_size=`df -h | grep centos-root | awk '{print $2}'`
+ echo "${blue}Filesystem resized to: ${new_fs_size}${reset}"
+fi
diff --git a/foreman/ci/resize_partition.sh b/foreman/ci/resize_partition.sh
new file mode 100755
index 0000000..4c5581d
--- /dev/null
+++ b/foreman/ci/resize_partition.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+
+#script for extending disk partition in Foreman/QuickStack VM
+#author: Tim Rozet (trozet@redhat.com)
+#
+#Uses Vagrant and VirtualBox
+#VagrantFile uses resize_partition.sh
+#
+#Pre-requisties:
+#Vagrant box disk size already resized
+
+##VARS
+reset=`tput sgr0`
+blue=`tput setaf 4`
+red=`tput setaf 1`
+green=`tput setaf 2`
+
+##END VARS
+
+echo "${blue}Extending partition...${reset}"
+echo "d
+2
+n
+p
+
+
+
+p
+t
+2
+8e
+w
+"|fdisk /dev/sda; true