DrupalCamp 2012 - Aegir Hosting Framework

advertisement
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
COLLEGE OF ENGINEERING
Aegir Hosting System
One Drupal to Rule Them All
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Agenda: Aegir Hosting System
• Introduction
– Challenges maintaining sites
– How Aegir can help
• Using Aegir
– Core components
– Servers, sites, and platforms
– Live demo
• Advanced Topics
–
–
–
–
Details
Gotchas
Awesomeness
References
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Intro: Aegir Hosting System
Aegir @ Ohio State University
– 3-4 known Aegir instances
– 300+ sites in Aegir and rapidly growing.
My Experience
– Almost 2 years starting with 0.4
– Written some internal extensions.
– 100+ sites
Why Aegir?
– Encourages some best practices.
– Order of magnitude efficiency savings with
high volumes of sites.
– Works for few or many sites
(once you understand it).
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Intro | Challenges: Create a Site from Scratch
1.
2.
3.
4.
5.
6.
Create a database
Create a database user
Copy Drupal files out to a web server
Set appropriate file permissions
Configure Apache
Run Drupal installer
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Intro | Challenges: Upgrade a Site
1.
2.
3.
4.
5.
6.
Take site offline (maintenance mode)
Make a backup
Update files
Run update.php
Apply any manual configuration changes.
Take site out of maintenance mode.
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Intro | Challenges: Other Concerns
1. Testing changes
2. Staging environments
3. Regular backups
4. Software audits
5. Repeatable deployments
6. General administration
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Intro | Challenges: Options
• Maintain by hand
– You manage everything
– Easy to start out
– Doesn’t scale well
• Become a Drush ninja
– You manage everything
Now with scripts!
– Scales as well as you
• Use Aegir
–
–
–
–
Setup requires knowledge
Novice can manage sites
Expert can use Drush-fu
Encourages best practices
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Intro | Challenges: #Drupal Sites vs Cost to Sanity
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Intro | Aegir: One Drupal to Rule Them All
Aegir can manage
•
•
•
•
•
Apache, Nginx
MySQL
Drupal sites & platforms
Upgrades
Backups
But wait, there’s more!
•
•
•
•
Free Drush CLI!
Learn best practices!
So easy, anyone can use!
Now midi-chlorian free!
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Intro | Aegir: Hosting - a website to manage websites
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Intro | Aegir: Provision - Drush extension backend
Sh-3.2$ drush | grep provision
provision-backup
provision-backup_del
provision-clone
provision-delete
provision-deploy
provision-disable
provision-enable
provision-import
provision-install
provision-lock
provision-login_rese
provision-migrate
provision-restore
provision-save
provision-unlock
provision-verify
provision-zone
Generate a back up for the site.
Delete a backup file.
Clone a site between platforms.
Delete a site.
Deploy an existing backup to a new url.
Disable a site.
Enable a disabled site.
Import site to provision
Provision a new site using the provided data.
Lock a platform from having any other sites.
Generate a one-time login reset URL.
Migrate a site between platforms.
Restore the site to a previous backup.
Save Drush alias
Unlock a platform
Verify the framework is correctly installed.
Manipulate a zonefile
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Using Aegir | Servers: Web or Database
Web Servers
• Apache
• Nginx
Database
• MySQL
Servers have:
• IP Address(es)
• Port(s)
• Credentials
• Etc
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Using Aegir | Servers: Web or Database
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Using Aegir | Platforms: Root of a Multi-Site Install
OpenAtrium-rc1
•
•
puppies.com
kittens.org
OpenPublic-beta1
•
•
billthecat4pres.com
toonces4gov.com
A platform can have multiple
sites but can reside only on one
web server.
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Using Aegir | Platforms: Create a Platform
http://www.youtube.com/watch?v=A_QIvMLoouI
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Using Aegir | Sites: Your Websites
OpenAtrium-rc1 @ server1
• puppies.com
• kittens.org
OpenPublic-beta1 @ server2
• billthecat4pres.com
• toonces4gov.com
Sites are tied to a DB server
and platform. The platform
determines which web server
the site runs on.
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Using Aegir | Sites: Create a Site
http://www.youtube.com/watch?v=jbJefaWUE-0
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Using Aegir | Migrations: Upgrade One or Many Sites
1. Create a new platform with the upgraded code.
2. Migrate sites (or entire platforms) to the new platform.
Open
Atrium
Beta 2
Site 1
Site 2
Site 3
Open
Atrium
Beta 2
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Using Aegir | Upgrades: Upgrade One or Many Sites
http://www.youtube.com/watch?v=KD5KQTkj4Lk
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Using Aegir | Backups: Manual and Automatic
•
•
•
•
Upgrades and other actions automatically create backups.
You can manually create/restore backups from web ui.
Backups are stored locally (/var/aegir/backup)
You can restore backups to another Aegir instance (with a
little work)
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Using Aegir | Backups: How to Backup / Restore a Site
http://www.youtube.com/watch?v=YCIRmtf_RV4
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Using Aegir | Cloning: Make a copy of your site
•
•
•
Works just like an upgrade/migration.
Great way to test a migration.
Can be a way to get a test copy of a site.
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | Migrate+Rename/Cloning: Under the Hood
When we migrated/cloned from puppies.com to the-puppy.com…
How did this…
<img src=“/sites/puppies.com/files/vienna-sausages.png”>
Get changed to this…
<img src=“/sites/the-puppy.com/files/vienna-sausages.png”>
Aegir fixes some content
programmatically.
It also adds this alias
/files/vienna-sausages.png
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | Hooking In: vhost configuration
Aegir regenerates your vhost configuration (all the time).
/var/aegir/.drush/<whatever>.drush.inc
<?php
function <whatever>_provision_apache_vhost_config($uri, $data) {
if ($uri == “abc.com") {
return array("php_value upload_max_filesize 100M", "php_value post_max_size 200M");
}
}
?>
See also pre.d and post.d vhost configuration
http://community.aegirproject.org/node/341
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | Hooking In: settings.php
Aegir regenerates your settings.php file (all the time).
This file is included at the end of your Aegir controlled settings.php
/var/aegir/platforms/sites/<yoursite>/local.settings.php
For example, you might want to configure a maintenance theme.
<?php
$conf['maintenance_theme'] = 'themeName';
?>
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | Installation: Easy or Hard
Vanilla Aegir
• If you use Ubuntu/Debian, you can use apt-get.
http://community.aegirproject.org/node/400
• If you use RHEL/Centos/etc, you can use the manual instructions.
It’s pretty well documented, but budget a couple hours.
http://community.aegirproject.org/installing/manual
Omega8cc Alternatives to Vanilla (on d.org/projects)
Barracuda
Barracuda is a bash script to install and/or upgrade, tuned for high performance, Aegir Master
Instance with all related system services.
Octopus
Octopus is a bash script to install and/or upgrade, tuned for high performance, Aegir Satellite
Instances, compatible with Barracuda
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | Gotchas: Multi-Server Architecture
Hub Spoke Model
Master Server
• Has a copy of everything (sort of).
• Migrations go through it.
- Web Server 1
- Platform A
- Site 1
- Web Server 2
- Platform B
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | Gotchas: Multi-Server $#@! Data Loss
There is a long standing data loss bug in which
the files directory on the hub sometimes
overwrites data on the spoke.
There are various patches in the issue queue
none of which quite work.
We solved it by hacking our Aegir instance to
rsync files from the spoke to hub prior to many
other actions.
Bug Report
http://drupal.org/node/1083366
Why! Why was
I programmed
to feel pain?
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | Gotchas: Site Specific Modules/Themes
Site-specific modules/themes not super
well supported in multi-server.
The original recommendation was to make
a site specific install profile and put them
there.
At some point they made the hub the
authority but this doesn’t work with things
like apps so it’s still debated.
Bug Report
http://drupal.org/node/1561102
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | Gotchas: Multi-Server Cron Runs Where?
Cron can run two ways:
• Wget (on spoke)
• Drush (on hub)
If your cron works with files (creating,
updating, reading), you can’t use
drush via Aegir in a Multi-Site
environment.
Feature Request Aegir 2.0
http://drupal.org/node/1080758
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | Gotchas: Security
Traditional mod_php issues apply.
In addition…
Aegir user has access to all
sites/dbs/web-roots/servers.
Site X’s code can run as Aegir user
• hook_init
• drush.inc
• etc
Bug Report
http://drupal.org/node/762138
Provision ACL helps
http://drupal.org/project/provisionacl
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | Awesomeness: SaaS Business Models
Couples buy a wedding website.
Order page is an Aegir signup form.
Purchase immediately provisions a new site.
Blog post on it.
http://scotthadfield.ca/2010/06/15/overview-site-building-wedful-drupal-install-profiles-aegir-and-features
Clients purchase subscriptions to Open Atrium
instances which are deployed through Aegir.
DrupalCon London Talk
http://london2011.drupal.org/conference/sessions/aegir-based-business-models
Writeup:
http://community.openatria.com/team/saas-business-model
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | Awesomeness: Continuous Integration
Mig5 (an Aegir
developer) has a
wonderful tutorial on
continuous integration
with Jenkins and
Aegir.
Also, Mike Butsko
(OSU ASC tech)
presenting on Jenkins
later today and he
uses Aegir too.
http://mig5.net/content/zero-touch-drupal-deployment-jenkins-aegir-git-fabric-and-drush.html
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | References: Aegir Vendors
All vendors on this page are core Aegir
developers.
Koumbit provides upper end Aegir IaaS and SaaS
solutions (in addition to development and
traditional web hosting.
Omega8.cc specializes more in Aegir. Their
offering is very slick and arguably the
cheapest/fastest way to get into Aegir.
Mig5 offers consulting services. He’s probably the
best company in Aegir consulting and can help
with things like dev-ops workflows.
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | References: Other Aegir Tricks
Clients
http://community.aegirproject.org/node/28
SSL keys and certificates
http://community.aegirproject.org/content/content/administrator/po
st-install-configuration/using-ssl
Aegir can manage DNS zonefiles
http://community.aegirproject.org/administrator/dns
Aegir notes on Varnish and Memcache
http://community.aegirproject.org/node/388
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Advanced | References: Extensions
Ubercart (w\quotas)
HTTP basic auth
HTTP basic LDAP
Feeds
Rules
Git
Subfolders
Backup Garbage Collection
Services
Puppet
Remote Import
Varnish
Boost
ACLs
CivilCRM
Koumbit Platforms
CDN
New Relic
Etc…
More here….
http://community.aegirproject.org/contrib-modules
THE OHIO STATE UNIVERSITY COLLEGE OF ENGINEERING
Questions:
What questions do you have?
Download