SysGen *) Plaining for your enviroment. For our system, we assume you have 2 VM's at least and a physical host. We also assume that the physical host has VMWare Workstation and is running Centos 7. One of the vm's will be the 'client' and the other will be the database server. The client will be able to talk to multple servers since the interest lies on the server end. VMWare workstation creates a virtual network called VNET1 by default. In my examples and testing, the network it created was 192.168.183.0/24, and .2 is the router IP. You will need 1 IP for the 'client' VM as well as 1 for the database server. Prior to running our scripts, please determin the /24 being used. We do not use VMware DHCP by design - we've had issues when we suspend and resume the vm's and the NIC disappearing. If you plan on using Oracle and/or IBM db2 luw, please download the software packages at the respective vendors since we can't provide the binaries. Futhermore, make sure you download the server and client for a given database platform. We will provide detailed installed instructions for these 2 commerical platforms. In addition to this, you'll need the CentOS 7 installer ISO. *) Creating the VM's : Open VMWare workstation and create a new VM, and make sure you hit customize settings. When you do this, you can set the ram size, VMDK size, as well as number of virtual CPU's. when you set the VMDK disk size, ensure that VMWare DOES NOT spilt the VMDK into multiple files. It's easier and cleaner to mount the filesystems later on. I highly recomend not setting the hostname to localhost since some database software then binds only to 127.0.0.1 then. **)Option 1 Manual process: Start the newly created VM On the first screen, select English as the language, then hit continue On the next page, select your time zone. Next, jump to the bottom and enable the NIC by selecting Network and Hostname. Turn the NIC on by clicking the 'off' button. Next set your hostname at the of the screen. If you know the IP address of the VM that you are going to assign, you can assign it here; otherwise, we provide a script to reconfigure the ifcfg file. By default VMWare assigns a DHCP address, and this address will be displayed once the NIC is enabled. Next click "Security Policy and "On" so it turns it off. Next click "Kdump" and disable that if you want Next "Instalation Destination". You should see only one virtual hard disk, click on it, then click I will configure partitioning, now click "Done." On next screen, select "Standard Partioning in the drop down." From here, hit the plus at the bottom and create 3 partions, /boot, swap, /. Please use ext4 as the filesystem type for /boot and /, and create / last as it will allocate all the space when its empty. I usally give boot around 350mb. Next click done, then accept changes. The last step is to set the root password, and wait for the install to complete. Lastly, installation source. If you are using the Netinstall method, you will need to put http://mirror.centos.org/centos-7/7.8.2003/os/x86_64/ into the URL if your insitution does not have a local CentOS repo. Next click done. Click "Software selection" and select minimal install. Now click "begin install" **) Option 2 semi-manual process but with possable security concerns: Start the newly created VM You are able to tell the CentOS installer how the vm should be configured including the root password but in order to do this, you need to tell the VM where to find the KickStart file via FTP. That being said, we are providing a script to create the KS file, but you'll need to install the FTP server and configure it. Alternitively, you can format a USB stick, place the kickstart file on it, and then point it to the file. We also assume that the VM has access to the Internet as we download the CentOS packages from their mirrors. We wrote a kickstart file generator : python kickstartgen.py -n -b -s -m
-i -c -g The output will be hostname.cfg Please note that we do not validate the IP addresses or the partition sizes, the kick start file is meant to generate identical VM with the same packages. The kick start file we generate disables selinux and firewalld. The root password is: root / good4bench From here you would boot the vm with the downloaded ISO and then point it to the kickstart file. When the installer loads, press : -) If you are sharing the ks file with the VM via USB type: linux ks=hd:sdb1:/.cfg -) If you are using an FTP server: *) Configuring the client, server, and everything else: **) Client Lets start with the client VM. I created an RPM to aide in deploying the files to the client. The client rpm is called sysgen_client.rpm . It contains the SSBM files, client scripts as well as installs Mariadb and Postgres Clients. I also create a db2 user if you decided to download and install the client - I provide a tool to generate the client config as well as one for Oracle. It also deploys a set of ssh keys and the workload generator. Prior to the next steps, please download and install the the sysgen_client rpm. To deploy the db2 client please download db2 express on to the client VM and feed it our response file. IBM provides DB2 as a .tar.gz file, once downloaded, untar it. Cd into the location where you unzipped the client, and run ./db2_install -r /root/db2/db2client.rsp This will install the client and create the client instance. We also created a program to create the proper db2dsdriver.cfg python db2_client_config.py -i 192.168.183.144 -i is for the IP of the server vm -p is for port but we default to 50001 if nothing is given -d is the database name but bench is the default if non is given If you are you using Maria/Mysql and/or Postgres in your testing, you will need to edit the dbenv files for each; namely set the dbhost variable line to the server ip that you are using for the mariadb or PG vm. Oracle client here: python oracle_client_config.py -i 192.168.183.144 -i is for the IP of the server vm -p is for port but we default to 50001 if nothing is given -d is the database name but bench is the default if non is given Postgres and Mysql and SQLlite aren't nearly as complex. **)Servers Mariadb and Postgress servers have a sysgen rpm that will install the packages, disable the firewall, ssh keys, and deploy the helper files that sysgen relies on. If you did not set a static IP earlier, you will need to reconfigure the NIC to have a static address. We provide a helper script to over-right /etc/..... The script is netconfig.py -i -n -g We expect at least an IP address and if you don't give a netmask or a gateway, we use 255.25.255.0 and 192.168.183.2 respectively. **) Mysql : yum install sysgen_mysql_server-0.1-2.x86_64.rpm **) PG : (I can't add a repo from our rpm - I had yum locking issues) yum -i install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm && yum install sysgen_postgres_server2-0.1-2.x86_64.rpm **)db2: yum install sysgen_db2_server-0.1-2.x86_64.rpm db2 servers requires a little more steps since we can't redistrute the binary files so we have provided helper scripts to install and create an instance. So we deploy a responce file for db2 so that one command will install and configure db2. Since this is commerical software, YOU NEED TO ACCEPT the licence by changing one line. We cannot do this for you. The response file will be deployed at /tmp/db2/db2server.rsp Look for the like 8th line, change LIC_AGREEMENT = DECLINE to LIC_AGREEMENT = ACCEPT, then save the file. Now to install and configure db2, cd into the untared directory and run ./db2setup -r /tmp/db2/db2server.rsp On a 2gb, 2vcpu this whole process took 5-10 minutes. Once Installed, please issue Note, this file is designed for db2 11.5.4 and works correctly under that version **) Oracle 19c Since Oracle is commerical software, there's a few manual steps required. Our RPM is used to deploy the keys, helper scripts as well as set dev/shm correctly. Oracle requres /dev/shm to operate. Oracle software install: curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm Now you will need to download the Oracle RPM from Oracle and agree to their terms. Once downloaded, up load it to the VM and run yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm Next: yum install sysgen_oracle_server-0.1-2.x86_64.rpm Since the Oracle rpm changes the sysctl settings and we fix /dev/shm in Centos 7, our rpm reboots the box so that the changes are applied. Once the box reboots, the instance and Database need to be created. Similar to db2, the instance, and in Oracle's case, the shell of the database is created by using a responce file. dbca is used to create and configure the instance and database. Our rpm puts the responce file in /tmp/oracle/bench.rsp So add the Oracle user issue: dbca -silent -responseFile /tmp/oracle/bench.rsp This will create the database and everything