Skip to content

Instantly share code, notes, and snippets.

@vinodpandey
Forked from ChrisMcKee/InstallHaProxy.sh
Created June 30, 2016 11:49
Show Gist options
  • Save vinodpandey/2f853d268231c713f7fceba1ab188f06 to your computer and use it in GitHub Desktop.
Save vinodpandey/2f853d268231c713f7fceba1ab188f06 to your computer and use it in GitHub Desktop.

Revisions

  1. @ChrisMcKee ChrisMcKee created this gist Jun 26, 2014.
    82 changes: 82 additions & 0 deletions InstallHaProxy.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,82 @@
    #!/bin/bash

    ### VARIABLES ###
    PRE_PACK="openssl-devel pcre-devel make gcc"
    VER="1.5.1"


    # Setup Colours
    black='\E[30;40m'
    red='\E[31;40m'
    green='\E[32;40m'
    yellow='\E[33;40m'
    blue='\E[34;40m'
    magenta='\E[35;40m'
    cyan='\E[36;40m'
    white='\E[37;40m'

    boldblack='\E[1;30;40m'
    boldred='\E[1;31;40m'
    boldgreen='\E[1;32;40m'
    boldyellow='\E[1;33;40m'
    boldblue='\E[1;34;40m'
    boldmagenta='\E[1;35;40m'
    boldcyan='\E[1;36;40m'
    boldwhite='\E[1;37;40m'

    Reset="tput sgr0" # Reset text attributes to normal
    #+ without clearing screen.

    cecho () # Coloured-echo.
    # Argument $1 = message
    # Argument $2 = color
    {
    message=$1
    color=$2
    echo -e "$color$message" ; $Reset
    return
    }

    clear

    cecho "Installing/upgrading your web server..." $boldgreen

    yum -y -q install $PRE_PACK > /dev/null


    mkdir -p /src
    cd /src

    wget -q http://www.haproxy.org/download/1.5/src/haproxy-$VER.tar.gz
    tar xzf haproxy-$VER.tar.gz && rm -f haproxy*.tar.gz;
    cd haproxy-$VER

    cecho "Configuring and Making HAPROXY" $boldgreen

    make TARGET=linux2628 CPU=x86_64 USE_OPENSSL=1 USE_ZLIB=1 USE_PCRE=1 # compiles it with compression and ssl support; use CPU=x86_64 for CentOS x64 or i686 where approriate

    cecho "Installing HAPROXY" $boldgreen
    make install


    cecho "Adding HAProxy User" $boldyellow
    id -u haproxy &>/dev/null || useradd -s /usr/sbin/nologin -r haproxy


    cecho "Creating config and Adding Daemon" $boldgreen

    cp /usr/local/sbin/haproxy* /usr/sbin/ # copy binaries to /usr/sbin
    cp /src/haproxy-$VER/examples/haproxy.init /etc/init.d/haproxy # copy init script in /etc/init.d
    chmod +x /etc/init.d/haproxy # setting permission on init script
    mkdir -p /etc/haproxy # creating directory where the config file must reside
    cp /src/haproxy-$VER/examples/examples.cfg /etc/haproxy/haproxy.cfg # copy example config file
    mkdir -p /var/lib/haproxy # create directory for stats file
    touch /var/lib/haproxy/stats # creating stats file


    cecho "checking config and starting service" $boldyellow
    service haproxy check # checking configuration file is valid
    service haproxy start # starting haproxy to verify it is working
    chkconfig haproxy on # setting haproxy to start with VM

    exit 0