This guide will allow users to automate Yellowfin deployment on a Linux operating system using a bash script.
Following is an example of a headless bash script that can be used as is, or modified to very quickly get Yellowfin and its dependencies installed on any Linux operating system (such as Ubuntu).
This bash script will require the following:
The script will then perform these steps:
To use the script below, it’s important you have a thorough understanding of Linux. |
#CODE HERE #!/bin/bash date echo "Start script" #Setting DB user var _dbuser=`echo $1 | base64 --decode` echo "db User is" echo $_dbuser #Setting DB user var _dbpass=`echo $2 | base64 --decode` echo "db pass is" echo $_dbpass #Update installer package date echo "Update apt-get" sudo apt-get update #Install JRE and Postgres date echo "Install Default-jre" sudo apt-get install --yes --force-yes default-jre date echo "Install Postgres" sudo apt-get install --yes --force-yes postgresql postgresql-contrib #Create Postgres User for YF date echo "Create Postgres DB User" sudo -u postgres createuser $_dbuser --createdb --superuser date echo "Set Postgres DB User Pass" sudo -u postgres psql -c "ALTER USER $_dbuser WITH PASSWORD '$_dbpass'" #OPTIONAL #Get Yellowfin Installer #Change the "WGET" to the location of your Yellowfin installer file #date #echo "Get Yellowfin Installer" #wget http://insterller-file-here/installer.jar -O /tmp/yellowfin.jar #OPTIONAL #Get Yellowfin Licence #date #echo "Get Yellowfin Licence" #wget http://licence-location-here/licence.lic -O /tmp/yellowfin72.lic #Generate Silence Installer Properties date echo "Generate Silence Installer Properties" echo "InstallPath=/opt/yellowfin" >> /tmp/install.properties echo "InstallTutorialDatabase=true" >> /tmp/install.properties echo "LicenceFilePath=/tmp/licence.lic" >> /tmp/install.properties echo "ServicePort=80" >> /tmp/install.properties echo "DatabaseType=PostgreSQL" >> /tmp/install.properties echo "CreateYellowfinDB=true" >> /tmp/install.properties echo "CreateYellowfinDBUser=false" >> /tmp/install.properties echo "DatabaseHostname=localhost" >> /tmp/install.properties echo "DatabaseName=yellowfindb" >> /tmp/install.properties echo "DatabaseDBAUser=$_dbuser" >> /tmp/install.properties echo "DatabaseDBAPassword=$_dbpass" >> /tmp/install.properties echo "DatabaseUser=$_dbuser" >> /tmp/install.properties echo "DatabasePassword=$_dbpass" >> /tmp/install.properties #Install Yellowfin date echo "Install Yellowfin" sudo java -jar /tmp/yellowfin.jar -silent /tmp/install.properties #Set Boot Params date echo "Set Boot Params" sudo sed -i '$ihostname Yellowfin72' /etc/rc.local sudo sed -i '$i/opt/yellowfin/appserver/bin/startup.sh > /tmp/yellowfinstart.log 2>&1' /etc/rc.local #Start Yellowfin date echo "Start Yellowfin" sudo nohup /opt/yellowfin/appserver/bin/startup.sh #Clean Up date echo "Clean up" rm -rf /tmp/installer.jar rm -rf /tmp/licence.lic date echo "END" exit 0 |
Upload the Yellowfin .jar installer to the machine and rename it. It should be located here: /tmp/yellowfin.jar. This can be done using SCP or any other method of transfer you like.
If uploading from a Windows machine, we recommend using an easy to use tool like WinSCP. |
If the installer was downloaded from Yellowfin's website, you will need to rename it to "yellowfin.jar" |
Copy the provided script to your instance and save it as a .sh file, using your preferred text editor.
Make any modifications to the script that you like, for example make sure you point it towards your license file and the Yellowfin installer file, if you have not placed them in the same location. You can also change where Yellowfin will install to inside the “#Generate Silent Installer” section of the script. Note there are optional parts in the script, in which the script would go and wget a license and installer file from the location you choose. Uncomment this section if you wish to use it. IMPORTANT – you will need to direct the script to the correct location for these files by changing the value of the wget. |
Execute the script. (./script.sh)
You may need to run the script as root, depending on your permission level. If you install it at root, you will likely need to start Yellowfin as root too. |
By default, this script is configured to install Yellowfin to “/opt/yellowfin”. To start Yellowfin, navigate to “/opt/yellowfin/appserver/bin” and run “./startup.sh”.
If you ran the installer script as root, you may need to run ./startup.sh as root. |
You should now have a working Yellowfin install available on port 80.
If you want Yellowfin to run on a different port, you can change this in the “#Generate Silent Installer” section of the script. |