Skip to content

Commit

Permalink
Merge pull request Azure#6390 from maddyloo/master
Browse files Browse the repository at this point in the history
Add RHEL & CentOS support
  • Loading branch information
bmoore-msft authored Aug 23, 2019
2 parents dd0ccb3 + f8d3d2c commit 093a118
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 23 deletions.
6 changes: 3 additions & 3 deletions tableau-server-single-node/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<img src="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/visualizebutton.png"/>
</a>

This template deploys a **Standalone Tableau Server instance on a Virtual Machine running Ubuntu 16.04.0-LTS** in its own Virtual Network.
This template deploys a **Standalone Tableau Server instance on a Virtual Machine running Ubuntu, RHEL or CentOS** in its own Virtual Network.

`Tags: Tableau, Tableau Server, Business Intelligence, Analytics, Self-Service, Data Visualization`

Expand Down Expand Up @@ -44,7 +44,7 @@ You can optionally deploy this template following the instructions found <a href

#### Partially automated

You can use the config-linux.sh script separately from the ARM template to perform a silent install of Tableau Server by running the following command. This requires you to have already provisioned an Ubuntu virtual machine following Tableau's <a href=https://onlinehelp.tableau.com/current/server/en-us/server_hardware_min.htm>hardware requirements</a>.
You can use the config-linux.sh script separately from the ARM template to perform a silent install of Tableau Server by running the following command. This requires you to have already provisioned an Ubuntu, RHEL or CentOS virtual machine following Tableau's <a href=https://onlinehelp.tableau.com/current/server/en-us/server_hardware_min.htm>hardware requirements</a>.

Bash:
```bash
Expand All @@ -66,7 +66,7 @@ This template deploys the following Azure resources. For information on the cos
+ Port 80 - public TCP access to your Tableau Server. By default this is set as open to the world, meaning anyone with the IP or DNS of the machine and Tableau Server credentials can access the deployed Tableau Server as a user. You can limit this access to a given IP range after deployment via the Azure portal.
+ Port 223 - SSH traffic is limited to the source CIDR determined during deployment. Best practice is to limit SSH access to the Tableau Server or machine administrator.
+ Port 8850 - HTTPS access to Tableau Services Manager UI which allows you to perform Tableau Server administration tasks (stopping & restarting Tableau Server, adding nodes, etc.)
+ <a href=https://docs.microsoft.com/en-us/azure/virtual-machines/linux/overview>**Virtual Machine**</a>: Standard D16 v3 (16 vCPUs, 64 GB mem) or a memory or compute optimized 16 vCPU instance running Ubuntu 16.04.0-LTS with 2 attached disks (30, 64 GiB SSD) with Tableau Server installed
+ <a href=https://docs.microsoft.com/en-us/azure/virtual-machines/linux/overview>**Virtual Machine**</a>: Standard D16 v3 (16 vCPUs, 64 GB mem) or a memory or compute optimized 16 vCPU instance running Ubuntu 16.04.0-LTS, RHEL 7.6 or CentOS 7.5 with 2 attached disks (30, 64 GiB SSD) with Tableau Server installed
+ Access to the VM is controlled by username/password authentication which you specify in the template parameters. Please ensure you follow Azure's username and password <a href=https://docs.microsoft.com/en-us/azure/virtual-machines/windows/faq>requirements</a>
+ This template has a static GUID associated with it - allowing Azure & the template's creator to track usage and deployment statistics

Expand Down
41 changes: 31 additions & 10 deletions tableau-server-single-node/azuredeploy.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@
},
"defaultValue": "[resourceGroup().location]"
},
"OS": {
"type": "string",
"allowedValues": ["Ubuntu 16.04 LTS", "CentOS 7.5", "RHEL 7.6"],
"metadata": {
"description": "The operating system of the VM."
}
},
"VMSize": {
"type": "string",
"allowedValues": ["Standard_D16s_v3","Standard_E16s_v3","Standard_F16s_v2","Standard_D4s_v3"],
Expand Down Expand Up @@ -159,18 +166,32 @@
"subnet1Name": "Subnet-1",
"subnet1Prefix": "10.0.0.0/24",
"numberOfInstances": 1,
"ubuntuscripturi": "[uri(parameters('_artifactsLocation'), concat('scripts/config-linux.sh', parameters('_artifactsLocationSasToken')))]",
"linuxscripturi": "[uri(parameters('_artifactsLocation'), concat('scripts/config-linux.sh', parameters('_artifactsLocationSasToken')))]",
"installscripturi": "[uri(parameters('_artifactsLocation'), concat('scripts/automated-installer', parameters('_artifactsLocationSasToken')))]",
"virtualMachineSize": "[parameters('VMSize')]",
"imageReference": {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "16.04.0-LTS",
"version": "latest"
"Ubuntu 16.04 LTS": {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "16.04.0-LTS",
"version": "latest"
},
"CentOS 7.5": {
"publisher": "OpenLogic",
"offer": "CentOS",
"sku": "7.5",
"version": "latest"
},
"RHEL 7.6": {
"publisher": "RedHat",
"offer": "RHEL",
"sku": "7-RAW",
"version": "latest"
}
},
"publicIpName": "[substring(concat(uniqueString(resourceGroup().id, deployment().name)), 0, 6)]",
"UbuntuExecute": "[concat('-u ''', parameters('adminUsername'), ''' -p ''', parameters('adminPassword'), ''' -h ''', parameters('tableau_admin_username'), ''' -i ''', parameters('tableau_admin_password'), ''' -j ''', parameters('registration_zip'), ''' -k ''', parameters('registration_country'), ''' -l ''', parameters('registration_city'), ''' -m ''', parameters('registration_last_name'), ''' -n ''', parameters('registration_industry'), ''' -o yes -q ''', parameters('registration_title'),''' -r ''', parameters('registration_phone'),''' -s ''', parameters('registration_company'), ''' -t ''', parameters('registration_state'), ''' -x ''', parameters('registration_email'), ''' -v ''', parameters('registration_department'), ''' -g ''', variables('installscripturi'), ''' -y ''', parameters('license_key'), ''' -w ''', parameters('registration_first_name'), '''')]",
"UbCmdWrapper": "[concat('sh ./config-linux.sh ', variables('UbuntuExecute'))]",
"LinuxExecute": "[concat('-u ''', parameters('adminUsername'), ''' -p ''', parameters('adminPassword'), ''' -h ''', parameters('tableau_admin_username'), ''' -i ''', parameters('tableau_admin_password'), ''' -j ''', parameters('registration_zip'), ''' -k ''', parameters('registration_country'), ''' -l ''', parameters('registration_city'), ''' -m ''', parameters('registration_last_name'), ''' -n ''', parameters('registration_industry'), ''' -o yes -q ''', parameters('registration_title'),''' -r ''', parameters('registration_phone'),''' -s ''', parameters('registration_company'), ''' -t ''', parameters('registration_state'), ''' -x ''', parameters('registration_email'), ''' -v ''', parameters('registration_department'), ''' -g ''', variables('installscripturi'), ''' -y ''', parameters('license_key'), ''' -f ''', parameters('OS'), ''' -w ''', parameters('registration_first_name'), '''')]",
"LiCmdWrapper": "[concat('sh ./config-linux.sh ', variables('LinuxExecute'))]",
"LinuxsecurityRules": [
{
"name": "ssh-rule",
Expand Down Expand Up @@ -340,7 +361,7 @@
"adminPassword": "[parameters('adminPassword')]"
},
"storageProfile": {
"imageReference": "[variables('imageReference')]",
"imageReference": "[variables('imageReference')[parameters('OS')]]",
"osDisk": {
"caching": "ReadWrite",
"createOption": "FromImage"
Expand Down Expand Up @@ -388,9 +409,9 @@
"timestamp": 123456789
},
"protectedSettings": {
"commandToExecute": "[variables('UbCmdWrapper')]",
"commandToExecute": "[variables('LiCmdWrapper')]",
"fileUris": [
"[variables('ubuntuscripturi')]"
"[variables('linuxscripturi')]"
]
}
}
Expand Down
3 changes: 3 additions & 0 deletions tableau-server-single-node/azuredeploy.parameters.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"OS": {
"value": "RHEL 7.6"
},
"adminUsername": {
"value": "GEN-UNIQUE"
},
Expand Down
Binary file modified tableau-server-single-node/images/azure_single_node.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions tableau-server-single-node/metadata.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"$schema": "https://aka.ms/azure-quickstart-templates-metadata-schema#",
"itemDisplayName": "Tableau Server Linux Single Node",
"description": "This template deploys a new instance of Tableau Server on an Ubuntu machine on Azure along with all required infrastructure elements. Tableau is an industry-leading business intelligence platform. Tableau Server allows users to discover and share data-driven insights throughout their organization in a secure, governable environment. For more information please visit our webpage: 'https://www.tableau.com/.'",
"description": "This template deploys a new instance of Tableau Server on an Ubuntu, RHEL or CentOS machine on Azure along with all required infrastructure elements. Tableau is an industry-leading business intelligence platform. Tableau Server allows users to discover and share data-driven insights throughout their organization in a secure, governable environment. For more information please visit our webpage: 'https://www.tableau.com/.'",
"summary": "This template deploys a new instance of Tableau Server on a single Azure compute node along with all required infrastructure elements. This template supports deployment on Ubuntu based machines.",
"githubUsername": "maddyloo",
"dateUpdated": "2019-04-01",
"dateUpdated": "2019-07-30",
"type": "QuickStart"
}
45 changes: 37 additions & 8 deletions tableau-server-single-node/scripts/config-linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@
# sh ./config-linux.sh -u <username> -p <password> -h admin -i admin -j 98107 -k usa -l seattle -m data -n tech -o yes -q pm -r 8888888 -s tableau -t wa -v dev -w jamie -x [email protected] [-y <license key>]
# customized to reflect machine admin username and admin password

while getopts u:p:g:h:i:j:k:l:m:n:o:q:r:s:t:v:w:x:y: option
while getopts u:p:f:g:h:i:j:k:l:m:n:o:q:r:s:t:v:w:x:y: option
do
case "${option}"
in
u) USER=${OPTARG};;
p) PASSWORD=${OPTARG};;
f) OS=${OPTARG};;
g) INSTALL_SCRIPT_URL=${OPTARG};;
h) TS_USER=${OPTARG};;
i) TS_PASS=${OPTARG};;
Expand All @@ -33,7 +34,8 @@ done
cd /tmp/

# create secrets
echo "tsm_admin_user=\"$USER\"\ntsm_admin_pass=\"$PASSWORD\"\ntableau_server_admin_user=\"$TS_USER\"\ntableau_server_admin_pass=\"$TS_PASS\"" >> secrets
printf "tsm_admin_user=\"$USER\"\ntsm_admin_pass=\"$PASSWORD\"\ntableau_server_admin_user=\"$TS_USER\"\ntableau_server_admin_pass=\"$TS_PASS\"" >> secrets
# echo "tsm_admin_user=\"$USER\"\ntsm_admin_pass=\"$PASSWORD\"\ntableau_server_admin_user=\"$TS_USER\"\ntableau_server_admin_pass=\"$TS_PASS\"" >> secrets

# create registration file
echo "{
Expand All @@ -45,7 +47,7 @@ echo "{
\"eula\" : \"$EULA\",
\"title\" : \"$TITLE\",
\"phone\" : \"$PHONE\",
\"company\" : \"$COMPANY\",
\"company\" : \"$COMPANY-azure-arm-linux\",
\"state\" : \"$STATE\",
\"department\" : \"$DEPARMENT\",
\"first_name\" : \"$FIRST_NAME\",
Expand All @@ -63,9 +65,14 @@ echo '{
}' >> config.json
wait

# download tableau server .deb file
# download tableau server .deb or.rpm file
# retry on fail
wget --tries=3 --output-document=tableau-installer.deb https://downloads.tableau.com/esdalt/2019.2.1/tableau-server-2019-2-1_amd64.deb
if [ "$OS" == "Ubuntu 16.04 LTS" ]
then
wget --tries=3 --output-document=tableau-installer.deb https://downloads.tableau.com/esdalt/2019.2.1/tableau-server-2019-2-1_amd64.deb
else
wget --tries=3 --output-document=tableau-installer.rpm https://downloads.tableau.com/esdalt/2019.2.1/tableau-server-2019-2-1.x86_64.rpm
fi

if [ $? -ne 0 ]
then
Expand All @@ -87,16 +94,38 @@ wait
# run automated installer (install trial if no license key)
if [ -z "$LICENSE_KEY" ]
then
sudo ./automated-installer.sh -s secrets -f config.json -r registration.json -a "$USER" --accepteula tableau-installer.deb --force
if [ "$OS" == "Ubuntu 16.04 LTS" ]
then
sudo ./automated-installer.sh -s secrets -f config.json -r registration.json -a "$USER" --accepteula tableau-installer.deb --force
else
sudo ./automated-installer.sh -s secrets -f config.json -r registration.json -a "$USER" --accepteula tableau-installer.rpm --force
fi
else
sudo ./automated-installer.sh -s secrets -f config.json -r registration.json -a "$USER" -k "$LICENSE_KEY" --accepteula tableau-installer.deb --force
if [ "$OS" == "Ubuntu 16.04 LTS" ]
then
sudo ./automated-installer.sh -s secrets -f config.json -r registration.json -a "$USER" -k "$LICENSE_KEY" --accepteula tableau-installer.deb --force
else
sudo ./automated-installer.sh -s secrets -f config.json -r registration.json -a "$USER" -k "$LICENSE_KEY" --accepteula tableau-installer.rpm --force
fi
fi

wait

# if on RHEL, open firewall
if [ "$OS" == "RHEL 7.6" ] || [ "$OS" == "CentOS 7.5" ]
then
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
fi

# remove all install files
rm registration.json
rm secrets
rm tableau-installer.deb
if [ "$OS" == "RHEL 7.6" ] || [ "$OS" == "CentOS 7.5" ]
then
rm tableau-installer.rpm
else
rm tableau-installer.deb
fi
rm automated-installer.sh
rm config.json

0 comments on commit 093a118

Please sign in to comment.