KEMBAR78
Deploying to Ubuntu on Linode | PDF
MONTREAL 1/3 JULY 2011




Deploying to Ubuntu on Linode
David LeBer
Align Software Inc.
Overview

•   What

•   Why

•   How

•   Q&A
Linode Overview
•   VPS Supplier

•   Xen Virtualized Servers

•   Multiple available Linux Distros

•   Distributed data centers (1 x UK, 4 x USA)

•   Multiple Linode sizes

•   Pro-rated billing
Linode Sizes
Why Linode
•   Familiar distros (Ubuntu 10.04 LTS)

•   Pricing

•   Pooled bandwidth

•   Awesome performance (IO and network)

•   Private network access

•   Free DNS

•   Virtual console (Lish)
Linode Creation
Creating a Linode - 1
Creating a Linode - 2
Creating a Linode - 3
Creating a Linode - 4
Creating a Linode - 5
Creating a Linode - 6
Creating a Linode - 7
Creating a Linode - 8
KEEP NOTES!
Preliminary Setup
•   Apply Updates:

    •   sudo apt-get update

    •   sudo apt-get upgrade --show-upgradegraded

•   Set hostname

    •   echo "demo" > /etc/hostname

    •   hostname -F /etc/hostname
Preliminary Setup
•   Configure Network:

    •   Add private IP

    •   sudo nano /etc/network/interfaces

•   Edit hosts file

    •   nano /etc/hosts

•   Configure DNS
Preliminary Setup

•   Set Timezone

    •   dpkg-reconfigure tzdata

•   Create admin user

    •   adduser admin
Preliminary Setup

•   Add admin user to /etc/sudoers

    •   visudo

    •   add “admin ALL=(ALL) ALL” to User priveleges

•   Test ssh login with admin

•   Test sudo with admin
Secure SSH
•   On Linode (as admin)

    •   cd ~

    •   mkdir .ssh

•   On local machine

    •   ssh-keygen -t dsa

    •   ssh admin@demo.domain.com "echo `cat ~/.ssh/id_dsa.pub`
        >> ~/.ssh/authorized_keys"
Secure SSH
•   Test login

•   sudo nano /etc/ssh/sshd_config

    •   Change port: Port 22022

    •   Disable root login: PermitRootLogin no

    •   Allow only admin user: AllowUsers admin

    •   Disable password auth: PasswordAuthentication no
Secure SSH


•   Restart: sudo /etc/init.d/ssh restart

•   Do not close terminal!

•   Test login
Firewall

•   sudo apt-get install ufw

•   sudo ufw allow 22022

•   sudo ufw allow 80

•   sudo ufw allow ...

•   sudo ufw enable
Oh Crap!
Linode Typical Types
 512
Apache                         2048
 PHP                          MySQL


 1024
Apache                512
wotaskd             Jenkins
 apps                 SVN
           512
          Monitor
Install Java

•   sudo echo "deb http://archive.canonical.com/ lucid partnern
    deb-src http://archive.canonical.com/ lucid partner " >> /etc/apt/
    sources.list

•   apt-get update

•   apt-get install sun-java6-jdk
Installing Software


•   Ubuntu - apt-get

•   Linode Library
Linode StackScripts

•   Scripts to automate Linode setup

•   Hooks for user input

•   Extensive library

•   Create your own

•   API for external control
Install WO Frameworks



•   Wait... Actually don’t.
Prepare for WO Apps


•   Apache 2.2?

•   Apache Adapter?
Build Apache Adaptor

•   Curl Wonder source from webobjects.mdimension.com

•   cd Wonder/Utilities/Adaptors/

•   nano make.config and change ADAPTOR_OS

•   remove srandomdev() call as per wiki

•   make and install as per wiki
Prepare WO Directories


•   mkdir -p /opt/Library/WebObjects/JavaApplications/

•   mkdir -p /opt/Local/Library/WebObjects/Applications/

•   mkdir -p /opt/Local/Library/Logs/
Generate WO Users


•   sudo groupadd appserveradm

•   sudo useradd -g appserveradm appserver
Install wotaskd


•   Curl wotaskd.woa.tar.gz from webobjects.mdiminsion.com

•   untar and mv into /opt/Library/WebObjects/JavaApplications/

•   Fix permissions
Install JavaMonitor


•   Curl JavaMonitor.woa.tar.gz from webobjects.mdiminsion.com

•   untar and mv into /opt/Library/WebObjects/JavaApplications/

•   Fix permissions
Ubuntu Upstart


•   Replacement for rc.d scripts

•   Similar in concept to launchd

•   Can perform auto relaunch
Upstart Example
Upstart


•   File /etc/init/webobjects.conf

•   Started with:

    •   services webobjects start
WO App Installation

•   Curl the app.woa from the build server

•   Untar and mv to /opt/Local/Library/WebObjects/Applications/

•   Curl the WSR app.woa from the build server

•   Untar and mv to /srv/www/xxx.com/public_html/WebObjects/

•   Fix permissions
Linode Performance Tuning

•   Choose the correct size Linode for the job

•   Tune config for the service

    •   Apache

    •   MySQL

•   Linode Library as lots of tips
Linode Backup

•   Linode offers a file system level backup service

•   Enabled per Linode ($5 - $40/mo)

•   4 Snapshots (today, 1 weekly, 2 week, user triggered)

•   DB export may be required for full coverage
MONTREAL 1/3 JULY 2011




Q&A

Deploying to Ubuntu on Linode

  • 1.
    MONTREAL 1/3 JULY2011 Deploying to Ubuntu on Linode David LeBer Align Software Inc.
  • 2.
    Overview • What • Why • How • Q&A
  • 4.
    Linode Overview • VPS Supplier • Xen Virtualized Servers • Multiple available Linux Distros • Distributed data centers (1 x UK, 4 x USA) • Multiple Linode sizes • Pro-rated billing
  • 5.
  • 6.
    Why Linode • Familiar distros (Ubuntu 10.04 LTS) • Pricing • Pooled bandwidth • Awesome performance (IO and network) • Private network access • Free DNS • Virtual console (Lish)
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
    Preliminary Setup • Apply Updates: • sudo apt-get update • sudo apt-get upgrade --show-upgradegraded • Set hostname • echo "demo" > /etc/hostname • hostname -F /etc/hostname
  • 18.
    Preliminary Setup • Configure Network: • Add private IP • sudo nano /etc/network/interfaces • Edit hosts file • nano /etc/hosts • Configure DNS
  • 19.
    Preliminary Setup • Set Timezone • dpkg-reconfigure tzdata • Create admin user • adduser admin
  • 20.
    Preliminary Setup • Add admin user to /etc/sudoers • visudo • add “admin ALL=(ALL) ALL” to User priveleges • Test ssh login with admin • Test sudo with admin
  • 21.
    Secure SSH • On Linode (as admin) • cd ~ • mkdir .ssh • On local machine • ssh-keygen -t dsa • ssh admin@demo.domain.com "echo `cat ~/.ssh/id_dsa.pub` >> ~/.ssh/authorized_keys"
  • 22.
    Secure SSH • Test login • sudo nano /etc/ssh/sshd_config • Change port: Port 22022 • Disable root login: PermitRootLogin no • Allow only admin user: AllowUsers admin • Disable password auth: PasswordAuthentication no
  • 23.
    Secure SSH • Restart: sudo /etc/init.d/ssh restart • Do not close terminal! • Test login
  • 24.
    Firewall • sudo apt-get install ufw • sudo ufw allow 22022 • sudo ufw allow 80 • sudo ufw allow ... • sudo ufw enable
  • 25.
  • 26.
    Linode Typical Types 512 Apache 2048 PHP MySQL 1024 Apache 512 wotaskd Jenkins apps SVN 512 Monitor
  • 27.
    Install Java • sudo echo "deb http://archive.canonical.com/ lucid partnern deb-src http://archive.canonical.com/ lucid partner " >> /etc/apt/ sources.list • apt-get update • apt-get install sun-java6-jdk
  • 28.
    Installing Software • Ubuntu - apt-get • Linode Library
  • 29.
    Linode StackScripts • Scripts to automate Linode setup • Hooks for user input • Extensive library • Create your own • API for external control
  • 30.
    Install WO Frameworks • Wait... Actually don’t.
  • 31.
    Prepare for WOApps • Apache 2.2? • Apache Adapter?
  • 32.
    Build Apache Adaptor • Curl Wonder source from webobjects.mdimension.com • cd Wonder/Utilities/Adaptors/ • nano make.config and change ADAPTOR_OS • remove srandomdev() call as per wiki • make and install as per wiki
  • 33.
    Prepare WO Directories • mkdir -p /opt/Library/WebObjects/JavaApplications/ • mkdir -p /opt/Local/Library/WebObjects/Applications/ • mkdir -p /opt/Local/Library/Logs/
  • 34.
    Generate WO Users • sudo groupadd appserveradm • sudo useradd -g appserveradm appserver
  • 35.
    Install wotaskd • Curl wotaskd.woa.tar.gz from webobjects.mdiminsion.com • untar and mv into /opt/Library/WebObjects/JavaApplications/ • Fix permissions
  • 36.
    Install JavaMonitor • Curl JavaMonitor.woa.tar.gz from webobjects.mdiminsion.com • untar and mv into /opt/Library/WebObjects/JavaApplications/ • Fix permissions
  • 37.
    Ubuntu Upstart • Replacement for rc.d scripts • Similar in concept to launchd • Can perform auto relaunch
  • 38.
  • 39.
    Upstart • File /etc/init/webobjects.conf • Started with: • services webobjects start
  • 40.
    WO App Installation • Curl the app.woa from the build server • Untar and mv to /opt/Local/Library/WebObjects/Applications/ • Curl the WSR app.woa from the build server • Untar and mv to /srv/www/xxx.com/public_html/WebObjects/ • Fix permissions
  • 41.
    Linode Performance Tuning • Choose the correct size Linode for the job • Tune config for the service • Apache • MySQL • Linode Library as lots of tips
  • 42.
    Linode Backup • Linode offers a file system level backup service • Enabled per Linode ($5 - $40/mo) • 4 Snapshots (today, 1 weekly, 2 week, user triggered) • DB export may be required for full coverage
  • 43.