diff --git a/tests/API-dhcp/Jenkinsfile b/tests/API-dhcp/Jenkinsfile index d6d7ec4..abd32c7 100644 --- a/tests/API-dhcp/Jenkinsfile +++ b/tests/API-dhcp/Jenkinsfile @@ -1,23 +1,35 @@ pipeline { agent { node { - label 'jenkins-esxi-slave' + label 'jenkins-slave' } } + environment { + ESXI_PASS = credentials('VI_PASSWORD') + } stages { - stage('Build') { - steps { - echo 'Building..' + stage('Prepare environment') { + dir ('tests/API-dhcp/') { + steps { + echo "Deploy API server for DHCP with Vagrant" + sh 'vagrant up' + } } } - stage('Test') { + stage('Check Installation') { steps { echo 'Testing..' } } - stage('Deploy') { + stage ('Run API tests') { steps { - echo 'Deploying....' + echo 'Running API tests' + } + } + stage('Clean up') { + steps { + echo "Destroy API server for DHCP with Vagrant" + sh 'vagrant destroy -f' } } } diff --git a/tests/API-dhcp/Vagrantfile b/tests/API-dhcp/Vagrantfile new file mode 100644 index 0000000..aba10b4 --- /dev/null +++ b/tests/API-dhcp/Vagrantfile @@ -0,0 +1,158 @@ +# +# Fully documented Vagrantfile available +# in the wiki: https://github.com/josenk/vagrant-vmware-esxi/wiki +Vagrant.configure('2') do |config| + + config.vm.box = 'dummy' + VM_TEMPLATE = 'template-ubuntu24' + + + + # Use rsync and NFS synced folders. (or use the option to disable them) + # https://www.vagrantup.com/docs/synced-folders/ + #config.vm.synced_folder('.', '/vagrant', type: 'rsync') + config.vm.synced_folder('.', '/vagrant', type: 'nfs', disabled: true) + + # Vagrant can configure additional network interfaces using a static IP or + # DHCP. Use public_network or private_network to manually set a static IP and + # optionally netmask. ESXi doesn't use the concept of public or private + # networks so both are valid here. The primary network interface is considered the + # "vagrant management" interface and cannot be changed and this plugin + # supports 10 NICS, so you can specify 9 entries here! + # + # https://www.vagrantup.com/docs/networking/public_network.html + # https://www.vagrantup.com/docs/networking/private_network.html + # + # *** Invalid settings could cause 'vagrant up' to fail *** + #config.vm.network 'private_network', ip: '192.168.10.170', netmask: '255.255.255.0' + #config.vm.network 'private_network', ip: '192.168.11.170' + #config.vm.network 'public_network', ip: '192.168.12.170' + + # + # Provider (esxi) settings + # + config.vm.provider :vmware_esxi do |esxi| + + # REQUIRED! ESXi hostname/IP + esxi.esxi_hostname = 'esxi-jenkins.evlt.uma.es' + + # ESXi username + esxi.esxi_username = 'root' + + # IMPORTANT! Set ESXi password. + # 1) 'prompt:' + # 2) 'file:' or 'file:my_secret_file' + # 3) 'env:' or 'env:my_secret_env_var' + # 4) 'key:' or key:~/.ssh/some_ssh_private_key' + # 5) or esxi.esxi_password = 'my_esxi_password' + # + esxi.esxi_password = 'env:ESXI_PASS' + + # SSH port. + #esxi.esxi_hostport = 22 + + # HIGHLY RECOMMENDED! ESXi Virtual Network + # You should specify an ESXi Virtual Network! If it's not specified, the + # default is to use the first found. You can specify up to 10 virtual + # networks using an array format. + esxi.esxi_virtual_network = ['vLan_742'] + + # OPTIONAL. Specify a Disk Store + #esxi.esxi_disk_store = 'DS_001' + + # OPTIONAL. Resource Pool + # Vagrant will NOT create a Resource pool it for you. + esxi.esxi_resource_pool = '/' + + # Optional. Specify a VM to clone instead of uploading a box. + # Vagrant can use any stopped VM as the source 'box'. The VM must be + # registered, stopped and must have the vagrant insecure ssh key installed. + # If the VM is stored in a resource pool, it must be specified. + # See wiki: https://github.com/josenk/vagrant-vmware-esxi/wiki/How-to-clone_from_vm + esxi.clone_from_vm = VM_TEMPLATE + + # OPTIONAL. Guest VM name to use. + # The Default will be automatically generated. + #esxi.guest_name = 'Custom-Guest-VM_Name' + + # OPTIONAL. When automatically naming VMs, use this prefix. + #esxi.guest_name_prefix = 'V-' + + # OPTIONAL. Set the guest username login. The default is 'vagrant'. + #esxi.guest_username = 'vagrant' + + # OPTIONAL. Memory size override + #esxi.guest_memsize = '2048' + + # OPTIONAL. Virtual CPUs override + #esxi.guest_numvcpus = '2' + + # OPTIONAL & RISKY. Specify up to 10 MAC addresses + # The default is ovftool to automatically generate a MAC address. + # You can specify an array of MAC addresses using upper or lower case, + # separated by colons ':'. + #esxi.guest_mac_address = ['00:50:56:aa:bb:cc', '00:50:56:01:01:01','00:50:56:02:02:02','00:50:56:BE:AF:01' ] + + # OPTIONAL & RISKY. Specify a guest_nic_type + # The validated list of guest_nic_types are 'e1000', 'e1000e', 'vmxnet', + # 'vmxnet2', 'vmxnet3', 'Vlance', and 'Flexible'. + #esxi.guest_nic_type = 'e1000' + + # OPTIONAL. Specify a disk type. + # If unspecified, it will be set to 'thin'. Otherwise, you can set to + # 'thin', 'thick', or 'eagerzeroedthick' + #esxi.guest_disk_type = 'thick' + + # OPTIONAL. Boot disk size. + # If unspecified, the boot disk size will be the same as the original + # box. You can specify a larger boot disk size in GB. The extra disk space + # will NOT automatically be available to your OS. You will need to + # create or modify partitions, LVM and/or filesystems. + #esxi.guest_boot_disk_size = 50 + + # OPTIONAL. Create additional storage for guests. + # You can specify an array of up to 13 virtual disk sizes (in GB) that you + # would like the provider to create once the guest has been created. You + # can optionally specify the size and datastore using a hash. + #esxi.guest_storage = [ 10, 20, { size: 30, datastore: 'datastore1' } ] + + # OPTIONAL. specify snapshot options. + #esxi.guest_snapshot_includememory = 'true' + #esxi.guest_snapshot_quiesced = 'true' + + # RISKY. guest_guestos + # https://github.com/josenk/vagrant-vmware-esxi/wiki/VMware-ESXi-6.5-guestOS-types + #esxi.guest_guestos = 'centos-64' + + # OPTIONAL. guest_virtualhw_version + # ESXi 6.7 supports these versions. 4,7,8,9,10,11,12,13 & 14. + #esxi.guest_virtualhw_version = '9' + + # OPTIONAL. Guest Autostart + # Guest VM will autostart when esxi host is booted. 'true' or 'false'(default) + #esxi.guest_autostart = 'false' + + # RISKY. guest_custom_vmx_settings + #esxi.guest_custom_vmx_settings = [['vhv.enable','TRUE'], ['floppy0.present','TRUE']] + + # OPTIONAL. local_lax + #esxi.local_lax = 'true' + + # OPTIONAL. Guest IP Caching + #esxi.local_use_ip_cache = 'True' + + # DANGEROUS! Allow Overwrite + # If unspecified, the default is to produce an error if overwriting + # VMs and packages. + #esxi.local_allow_overwrite = 'True' + + # Advanced Users. + # If set to 'True', all WARNINGS will produce a FAILURE and Vagrant will stop. + #esxi.local_failonwarning = 'True' + + # Plugin debug output. + # Please send any bug reports with this debug output... + #esxi.debug = 'true' + + end + end