Add first version for testing deployment
oginstaller/pipeline/head There was a failure building this commit
Details
oginstaller/pipeline/head There was a failure building this commit
Details
parent
625c464ff5
commit
41add758aa
|
@ -2,17 +2,54 @@ pipeline {
|
|||
agent {
|
||||
label 'ogAdministrator'
|
||||
}
|
||||
parameters {
|
||||
string(name: 'BRANCH', defaultValue: 'main', description: 'Deployment environment')
|
||||
string(name: 'EXTRA_NAME', description: 'Some additional text to better identify the VMs within ESXi')
|
||||
string(name: 'NUMBER_OF_CLIENTS', defaultValue: '1', description: 'Number of clients to deploy')
|
||||
string(name: 'DEFAULT_UDS_REST_URL', defaultValue: 'https://uds-broker.evlt.uma.es/uds/rest/', description: 'UDS REST URL')
|
||||
string(name: 'DEFAULT_UDS_AUTHENTICATOR' , defaultValue: 'Usuarios locales', description: 'UDS REST authenticator')
|
||||
string(name: 'DEFAULT_OGLIVE' , defaultValue: 'ogLive-noble-6.8.0-31-generic-amd64-r20240716_20241014.iso', description: 'oGLive ISO image')
|
||||
}
|
||||
environment {
|
||||
UDS_CREDENTIALS = credentials('UDS_CREDENTIALS')
|
||||
BRANCH = "${params.BRANCH}"
|
||||
VI_USERNAME = 'root'
|
||||
VI_PASSWORD = credentials('VI_PASSWORD')
|
||||
GITEA_USER = "unizar"
|
||||
GITEA_TOKEN = credentials('GITEA_TOKEN')
|
||||
VAGRANT_FILE = "Vagrantfile-esxi"
|
||||
ESXI_PASSWORD = credentials('VI_PASSWORD')
|
||||
USER_SSK_PRIVATE_KEY = credentials('ognproject-ssh-private-key')
|
||||
|
||||
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Build') {
|
||||
stage ('Create environment') {
|
||||
steps {
|
||||
sh "echo root > root_passwd"
|
||||
sh 'docker run --privileged -v /dev:/dev -v /run:/run -v $(pwd):/installer -w /installer --rm opengnsys/oginstallerbuilder ./builder.sh'
|
||||
}
|
||||
}
|
||||
stage ('Upload Image to NFS')
|
||||
{
|
||||
steps {
|
||||
sh "cp ubuntu-from-scratch.iso /mnt/srv/artefactos/oginstaller/oginstaller-${BRANCH_NAME}_${BUILD_NUMBER}.iso"
|
||||
script {
|
||||
sh """
|
||||
|
||||
echo "BRANCH: ${BRANCH}"
|
||||
echo "EXTRA_NAME: ${EXTRA_NAME}"
|
||||
echo "NUMBER_OF_CLIENTS: ${NUMBER_OF_CLIENTS}"
|
||||
echo "DEFAULT_UDS_REST_URL: ${DEFAULT_UDS_REST_URL}"
|
||||
echo "DEFAULT_UDS_AUTHENTICATOR: ${DEFAULT_UDS_AUTHENTICATOR}"
|
||||
echo "DEFAULT_OGLIVE: ${DEFAULT_OGLIVE}"
|
||||
echo "UDS_CREDENTIALS: ${UDS_CREDENTIALS}"
|
||||
echo "VI_USERNAME: ${VI_USERNAME}"
|
||||
echo "VI_PASSWORD: ${VI_PASSWORD}"
|
||||
echo "GITEA_USER: ${GITEA_USER}"
|
||||
echo "GITEA_TOKEN: ${GITEA_TOKEN}"
|
||||
echo "VAGRANT_FILE: ${VAGRANT_FILE}"
|
||||
echo "ESXI_PASSWORD: ${ESXI_PASSWORD}"
|
||||
chmod 755 vagrant/provision_esxi_net.sh
|
||||
cat vagrant/provision_esxi_net.sh
|
||||
echo "vagrant/provision_esxi_net.sh executed"
|
||||
cp $USER_SSK_PRIVATE_KEY installer/vagrant/config/id_rsa
|
||||
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
VAGRANTFILE_API_VERSION = "2"
|
||||
ENV['VAGRANT_DEFAULT_PROVIDER'] = "vmware_esxi"
|
||||
|
||||
BRANCH=ENV['BRANCH'] || "main"
|
||||
BRANCH_EXTRA=ENV['BRANCH_EXTRA'] || BRANCH
|
||||
|
||||
#OGAGENTVERSION="1.4.2"
|
||||
|
||||
LANGUAGE = "es_ES"
|
||||
ENV['LC_ALL'] = LANGUAGE + ".UTF-8"
|
||||
|
||||
# NCLIENTS = ENV['NUMBER_OF_CLIENTS']|| 4
|
||||
# NCLIENTS = NCLIENTS.to_i
|
||||
|
||||
SERVERMEM = 2048 # Minimum: 512
|
||||
CLIENTMEM = 512 # Minimum: 256
|
||||
|
||||
MACPREFIX = ENV['OGN_MAC_PREFIX'] || '00:50:56:aa:aa'
|
||||
NETPREFIX = ENV['OGN_NET_PREFIX'] || "192.168.2"
|
||||
DHCPNET = ENV['DHCPNET'] || "192.168.2.0"
|
||||
|
||||
SERVERIP = "#{NETPREFIX}.10"
|
||||
|
||||
LOCALWEBPORT = 8443
|
||||
|
||||
ESXIPASSWORD = ENV['ESXI_PASSWORD'] || 'prompt:'
|
||||
|
||||
GITEA_TOKEN = ENV['GITEA_TOKEN']
|
||||
GITEA_USER = ENV['GITEA_USER'] || 'unizar'
|
||||
SSH_GIT_KEY_PASS = ENV['SSH_GIT_KEY_PASS'] || ''
|
||||
|
||||
|
||||
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||
config.vm.provider :vmware_esxi do |esxi|
|
||||
esxi.esxi_hostname = 'esxi-jenkins.evlt.uma.es'
|
||||
esxi.esxi_username = 'root'
|
||||
esxi.esxi_password = ESXIPASSWORD
|
||||
esxi.esxi_virtual_network = ['vLan_742' , BRANCH_EXTRA ]
|
||||
esxi.guest_mac_address = [ "#{MACPREFIX}:01", "#{MACPREFIX}:02" ]
|
||||
esxi.clone_from_vm = 'template-ubuntu24'
|
||||
esxi.esxi_resource_pool = "/"
|
||||
esxi.local_allow_overwrite = 'True'
|
||||
esxi.guest_nic_type = 'e1000'
|
||||
esxi.guest_custom_vmx_settings = [['monitor.allowLegacyCPU', 'TRUE']]
|
||||
esxi.guest_storage = [ 10 ]
|
||||
end
|
||||
config.vm.box = "esxi_clone/dummy"
|
||||
config.vm.hostname = "og-#{BRANCH_EXTRA}"
|
||||
end
|
|
@ -0,0 +1,7 @@
|
|||
network:
|
||||
ethernets:
|
||||
eth1:
|
||||
dhcp4: false
|
||||
addresses: [##ADDRESS##/24]
|
||||
version: 2
|
||||
renderer: networkd
|
|
@ -0,0 +1,47 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
BRANCH=$1
|
||||
BRANCH=${BRANCH:-"main"}
|
||||
ESXCLI=/usr/bin/esxcli
|
||||
VSWITCH="vSwitch2"
|
||||
source ~/.pass
|
||||
|
||||
|
||||
# Check if portgroup exists
|
||||
function checkIfPortgroupExists () {
|
||||
local i=0
|
||||
PORTGROUPS=( $($ESXCLI network vswitch standard portgroup list | grep $BRANCH | awk ' { print $1 }') )
|
||||
for portgroup in "${PORTGROUPS[@]}"; do
|
||||
if [ $portgroup == $BRANCH ] ; then
|
||||
echo "Portgroup $BRANCH is not going to be created, already exists"
|
||||
echo "Please Check ESXI configuration"
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
}
|
||||
function createPortGroup() {
|
||||
echo Adding portgroup $BRANCH to $VSWITCH
|
||||
$ESXCLI network vswitch standard portgroup add --portgroup-name=$BRANCH --vswitch-name=$VSWITCH
|
||||
}
|
||||
|
||||
function getMaxVlan(){
|
||||
PORTGROUPS=( $($ESXCLI --formatter=csv network vswitch standard portgroup list | grep $VSWITCH | cut -d "," -f3 ) )
|
||||
IFS=$'\n'
|
||||
MAX_VLAN=$(echo "${PORTGROUPS[*]}" | sort -nr | head -n1)
|
||||
NEXT_VLAN=$(( MAX_VLAN + 1 ))
|
||||
[[ $NEXT_VLAN -lt 3000 ]] && NEXT_VLAN=3000
|
||||
echo VLAN assigned is $NEXT_VLAN
|
||||
}
|
||||
|
||||
function setVlan(){
|
||||
$ESXCLI network vswitch standard portgroup set -p $BRANCH --vlan-id $1
|
||||
}
|
||||
|
||||
#### SCRIPT
|
||||
checkIfPortgroupExists
|
||||
createPortGroup
|
||||
getMaxVlan
|
||||
setVlan $NEXT_VLAN
|
||||
echo portgroup $BRANCH created with vlan_id $NEXT_VLAN
|
Loading…
Reference in New Issue