This guide will allow users to automate Yellowfin deployment on a Linux operating system using a bash script.
Deployment 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:
- To provide a database user and password of your choosing to be used when installing into PostgresSQL.
- To point it at a Yellowfin .jar installer, which can be found on our website and also a Yellowfin license file.
Overview of Script Steps
The script will then perform these steps:
- Install default Java.
- Install PostgresSQL.
- Create a Postgres user for Yellowfin to use.
- Generate a Silent Installer file for Yellowfin.
- Install Yellowfin.
- Start Yellowfin.
- Clean up after itself.
The Bash Script
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
- To get started, log into your Linux terminal.
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"
- Upload your Yellowfin license to the machine and rename the license file to "licence.lic". It should be located here: /tmp/licence.lic. This can be done with SCP or any other method of transfer you like.
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.
- Make your new .sh file executable in Linux. (chmod +x script.sh)
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.