diff options
-rw-r--r-- | foreman/ci/Vagrantfile | 4 | ||||
-rwxr-xr-x | foreman/ci/deploy.sh | 91 | ||||
-rw-r--r-- | foreman/ci/opnfv_ksgen_settings.yml | 12 | ||||
-rw-r--r-- | foreman/ci/opnfv_ksgen_settings_no_HA.yml | 6 | ||||
-rwxr-xr-x | foreman/ci/resize_lvm.sh | 37 | ||||
-rwxr-xr-x | foreman/ci/resize_partition.sh | 33 |
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 dcead8b..149695a 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 @@ -1016,6 +1018,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..." @@ -1094,11 +1109,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 @@ -1205,6 +1215,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 |