Commit Graph

455 Commits

Author SHA1 Message Date
Luke Faraone 942cc94b04 Install files to customise postgres for maximum performance.
Configuration provided by Zev.

(imported from commit 4d0cdbb6747689863208079e2c21864521e1cf02)
2013-07-26 17:11:54 -04:00
Leo Franchi 7b6579c74c s/humbughq/zulip/ in graphite setup
(imported from commit 5c87bbe3d1ae4f57c5f66899b66cbd4417e49887)
2013-07-26 16:23:03 -04:00
Luke Faraone 7c2de24213 Make trac.ini world-readable
This is bringing our puppet configuration in line with reality.

(imported from commit 48a10676a9f28566dd89fff1337a4b34c23c0b61)
2013-07-26 16:14:55 -04:00
Luke Faraone 5e2dda4d73 Configuration for puppetized MediaWiki on trac.
(imported from commit cff2becbe590e50414f74a31ea2a2914de49f4bd)
2013-07-26 16:14:55 -04:00
Luke Faraone 85988df75d [third] Import Auth_remoteuser.php into puppet.
This is a module we're using for REMOTE_USER support in MediaWiki. It is
not used in any app code nor is it distributed, nor is it incorporated
into any comapny works.

License: GPLv2+

(imported from commit da9a81db251cf850335987697ea8383623b58c53)
2013-07-26 16:14:55 -04:00
Luke Faraone 41504762a1 env-wal-e: Use a different bucket if not running on an app postgres server.
(imported from commit e06be77d544532885fbc4769fedb55eedac22ccd)
2013-07-26 16:14:55 -04:00
Luke Faraone 76a58fe800 We are no longer using gitit nor is wiki running off git.zulip.net.
(imported from commit fbe1bc2804a5ed6ccecb7b3090b55d7e9fa5b1bc)
2013-07-26 16:14:55 -04:00
Luke Faraone 639d963ff5 Split out app-specific postgres configuration.
(imported from commit 979811e69f436d02023a6c62e614a39c19bf64b8)
2013-07-26 16:14:55 -04:00
Tim Abbott 0d077e7f41 [manual] Use api.zulip.com to access the Humbug API.
This needs to be deployed after the nginx configuration is deployed.

(imported from commit 167a3d9d27595d40883bb400ebcc44c4ad9b6a2f)
2013-07-25 17:27:46 -04:00
Tim Abbott 4f8f46544c [manual] Add additional zulip hosts to nginx config.
We'll need to do a puppet apply on prod for this to take effect.

(imported from commit 764926317712ed8abebc429fb13d43c755e0f130)
2013-07-25 17:27:45 -04:00
Tim Abbott 9bef184eda Fix check_send_receive_time always checking prod.
The value it is passed is usually https://staging.humbughq.com, not
just staging.humbughq.com.

(imported from commit c3cd8fc5baa767377f506570aa8e7d2e1ed399ec)
2013-07-25 17:27:45 -04:00
Tim Abbott cdeaceea47 Fix URLs for wiki following mediawiki transition.
(imported from commit 140b4f7044f6e68c16d743c0e91dcf5a2557311e)
2013-07-25 17:27:45 -04:00
Tim Abbott 3fcd6eb9e6 Update humbughq.com => zulip.net in tools.
This shouldn't be pushed until we get graphite.zulip.net working.

(imported from commit c0dd208222385a9ee92ad1ca8fbf141894f7c7b6)
2013-07-25 17:27:45 -04:00
Tim Abbott 77b0ddef78 [manual] Rename shakespeare users to zulip.com domain.
We need to update our Nagios configuration when this is deployed.

(imported from commit 28cc3ecfe30c41562742733d6952c8e69b87d67e)
2013-07-25 17:19:17 -04:00
Tim Abbott 1f08f4e70f Rename nagios bot to zulip.com domain.
(imported from commit 9a2fba54295b4c473e030d3ff6ededbc3e2455af)
2013-07-25 17:16:53 -04:00
Leo Franchi e8a56a22e6 Use new key for git.hhq.com in install-server, and typo fixes
(imported from commit 23b69d23be24f2d995b70e03e1e7e6e604407877)
2013-07-24 16:06:34 -04:00
Leo Franchi bb2df13bfd Unset -e flag during humbug.pem login to preserve idempotency of install-server
(imported from commit d65b635a48ce33908b2888319a7c109d5d126b54)
2013-07-24 16:06:34 -04:00
Scott Feeney e539d6b2ac [manual] Add python-sourcemap dependency
(imported from commit 784cfa09ecea58f479adb0b17906a4d0ec10f618)
2013-07-23 15:57:07 -04:00
Tim Abbott 508ddca539 puppet: Specify commands for restarting supervisord.
(imported from commit e1a6322fd9ecf1655ec4325d0fcaf0ad160202ae)
2013-07-23 11:30:46 -04:00
Tim Abbott cd71840942 Use a better output filename for Django logs.
(imported from commit 97d37d9167ac8463ea54fb7a75a3f923fc78edee)
2013-07-17 17:50:19 -04:00
Tim Abbott 23beabb80c [manual] Rename manage.py subscribe_new_users to process_signups.
The old name was very confusing, and this fits the convention of "the
processor for the signups" queue a la "process_user_activity".

This requires doing a

supervisorctl stop humbug-workers:humbug-events-subscribe-new-users
puppet apply

to deploy the supervisord configuration changes and properly restart
the signups queue.

(imported from commit 0ee2dad837142afa64025446e22956709771a192)
2013-07-17 17:50:19 -04:00
Tim Abbott 27586559dc Remove Puppet configuration for zulip-staging.
The file was already deleted.

(imported from commit 04c68076ad59709c2848f81ca81db9612f9c65b8)
2013-07-17 17:50:19 -04:00
Tim Abbott f61b4ddb25 Remove second duplicate python-boto instance.
(imported from commit 11ef02de82d0f8cdd4c1cf3813e5d09619d4665b)
2013-07-17 17:50:19 -04:00
Zev Benjamin 642f347790 puppet: Add check_postgres.pl nagios plugin
(imported from commit 9d9d0ff74dc0fdf17d81b9a0b450df7cb37d04d5)
2013-07-17 14:34:00 -04:00
Zev Benjamin d16b336f29 puppet: Remove duplicate python-boto package declaration
(imported from commit ef3f8f73bc43363317be9b5875ed95e6fa13f4a3)
2013-07-17 14:34:00 -04:00
Zev Benjamin 81c05e02c2 nagios: Check for the expected number of autossh processes on munin.humbughq.com
(imported from commit 77d35b2aaacf303f6118d7794f481e393868da59)
2013-07-17 14:34:00 -04:00
Zev Benjamin 14e58ff6e4 Monitor postgres1
The fact that we weren't already was an oversight on my part.

(imported from commit 2082ae79ac2884f26e98b430bcb08c15938a26c0)
2013-07-17 14:34:00 -04:00
Zev Benjamin 431acdb186 munin: Rename postgres to postgres0
(imported from commit 07c324b5b7e0579e7b97b07c4fdf55f0e66f131c)
2013-07-17 14:34:00 -04:00
Zev Benjamin b4a208445b Run check_postgres.pl against the correct database
We were previously running it against the 'postgres' database, which
meant we weren't actually checking the non-clusterwide statistics.

(imported from commit a6be529b16d5f1927463e49a7f7f4cf0b5299213)
2013-07-17 14:34:00 -04:00
Luke Faraone e4c9abb021 Remove duplicate ipython entry from puppet
(imported from commit 2657ed1d707900ea4b1074fe59a0b662647805e4)
2013-07-15 18:07:56 -04:00
Luke Faraone 1f811133d1 Serve static /dist/ content on app servers when hostname zulip.com is used
(imported from commit cc78ffafdffe5df2baf08bdd70a219dbb694337d)
2013-07-15 16:49:55 -04:00
Luke Faraone bb0a7c8fc3 [manual] Switch various configuration files to refer to .zulip.net.
We only want to change cases where we're talking about the hostname; HTTP
requests should still go to staging.humbughq.com for now.

Before this commit is deployed the hostname of staging.humbughq.com should
be changed to staging.zulip.net on the VM.

(the same for prod)

(imported from commit 7412530773f720ac227f40061c9ddb1a851e19bb)
2013-07-15 16:49:55 -04:00
Luke Faraone 9bef61ad87 Interpret X-Forwarded-For on app servers' nginx.
See:
    http://nginx.org/en/docs/http/ngx_http_realip_module.html#set_real_ip_from

(imported from commit adc4ebf46aefd1c71bda187d84519d8c31f6c590)
2013-07-15 16:49:55 -04:00
Luke Faraone 44b49b3bf8 Puppet configuration and associated nginx files for lb0.zulip.net.
lb0.zulip.net will proxy connections to the relevant backend servers.

Depressingly, SSL certificate verification of the backend servers is not
performed at this time, see:
    <http://trac.nginx.org/nginx/ticket/13>

The above-mentioned bug has existed since 2011, but a CVE was not
allocated until January. The nginx developers don't seem to care. Sigh.

In any case, this is of somewhat limited impact at Humbug, since we can
have reasonable confidence that communications within AWS are not
subject to active MITMs. Passive MITM is not a concern, because the
traffic *is* in fact encrypted.

(imported from commit c96e1235fc17192c7452e0417a1309cfcda62de2)
2013-07-15 16:49:55 -04:00
Luke Faraone ebde5ab341 Switch to logging module instead of syslog.
(imported from commit 4c2c2f0f23e2688ce916d33d0cf513e386dca70c)
2013-07-15 16:49:54 -04:00
Luke Faraone 4843303267 Automatically configure iptables and routing for secondary interfaces.
This is a horrible hack.

(imported from commit 01dca4514f01f7ad419d735b8879a25a999b552e)
2013-07-15 16:49:54 -04:00
Luke Faraone 0696a3fbd7 Automatically configure all interfaces (including virtual!) at boot
On EC2-VPC we have the ability to attach multiple addresses to one
interface, and multiple interfaces to one machine.

We should configure those interfaces whenever our system boots, and
ideally whenever networking is restarted.

This commit adds a script that is executed once eth0 is brought up that
proceeds to configure all subsequent interfaces, real and virtual.

The script is configured to be installed (along with the helper script
that calls it) on all systems via Puppet.

(imported from commit fdc153ef649edbb8fedd40ff4d77262aae593c39)
2013-07-15 16:49:54 -04:00
Leo Franchi 6a61c8d237 [manual] Change Humbug to Zulip in Sparkle, and start with 0.3.4
This requires a puppet apply on prod

(imported from commit 6890146fd5330acd1c5cbac5609191f332ebca4a)
2013-07-15 13:31:15 -04:00
Luke Faraone bc7ee2bd45 Make python-django-guardian a dependency according to puppet.
(imported from commit 05c53f714b0ac3e5f86d946c8ab6fb2eaac8827b)
2013-07-12 11:29:11 -04:00
Luke Faraone f70e7fadea Miscellaneous updates to install-server for wheezy compatibility.
We switch to always specifying HostKeyAlgorithms=ssh-rsa because of a ECDSA
key bug in the Debian images which results in the fingerprint not being
printed to the console. Our config later forces RSA after we do a puppet
apply, so we might as well start using RSA from the beginning.

We start out sshing in as "admin", and delete the user (moving keys over to
"root") at the beginning.

We switch to the ops repo instead of backports, and drop the installation
of puppet from backports.

We no longer install humbug-self-signed.key on our servers; instead real
certificates must be installed manually.

(imported from commit cbabe65a4e0ef37df1fece6eaec053a2368f6ef5)
2013-07-12 11:29:11 -04:00
Luke Faraone 011690e727 install-server's hostname check should be for 'is zulip in the domain?'
(imported from commit c2004edb46b5d9503899c56f13ad597f1972c3e1)
2013-07-12 11:29:02 -04:00
Leo Franchi 2a5e53eaec [manual] Update desktop apps to 0.3.3
This requires a puppet apply on prod

(imported from commit aba8004684de70772d2ddd31a563b3650c4cbd9b)
2013-07-05 16:41:26 -04:00
Luke Faraone 6eb3d8b8b1 Syntax fix for staging_app_frontend.pp.
(imported from commit c363e6e9c18b08467555a1f0520680736dab2dd1)
2013-07-02 14:54:16 -04:00
Luke Faraone 7b30a8e7c0 Explicitly copy over the zulip-staging files in Puppet.
Unlike other directories, we explicitly enumerate the files we want to be
present in sites-available, so the previous commit series did not actually
instruct puppet to make the zulip-staging files accessible.

(imported from commit 22efc4d272eba8d6c869edbaa9114c50e1988288)
2013-07-02 12:14:41 -04:00
Luke Faraone 1be1cb121c nginx / Puppet configuration for staging.zulip.com
We create a new sites-available entry which is essentially a duplicate of
sites-available/humbug-staging with s/humbug/zulip, and add the associated
symlink directive in Puppet.

(imported from commit febcb585ce93c21c6849d96458cc2bd096b30538)
2013-07-02 12:04:56 -04:00
Leo Franchi 975e13a1b8 Update sparkle to our 0.3.0 release
(imported from commit bd02d67fbd13d709b579f93a69d625da5517eec7)
2013-07-02 10:40:12 -04:00
Leo Franchi 7036915933 Add windows sparkle files
(imported from commit b7c0770acd34f44e961014a00d2059dfc7bef701)
2013-07-01 16:25:35 -04:00
Tim Abbott 3bdd446651 puppet: Fix nginx configuration for api.humbughq.com.
(imported from commit d8b535b666a3b3d758a62812a118413c619c09a5)
2013-06-28 15:57:28 -04:00
Tim Abbott ea8a80603a [manual] Change API URLs to be based on api.humbughq.com/api.
This must be deployed after we update our running nginx configuration
to serve api.humbughq.com.

(imported from commit b5c34ebdd595f55eecd6dca6a18a37f105107bd5)
2013-06-28 15:57:27 -04:00
Scott Feeney 83cd963c49 Remove unused imports
(imported from commit 9e3050c72a2d1137b9096c6cfa1c3945341b9a56)
2013-06-27 16:22:39 -04:00
Zev Benjamin 6f874995ff [schema] Use custom stopwords file for full text search
This stop words file is just the default Postgres english stop file
with all the rest of the letters of the alphabet added.  Adding the
extra letters ensures that, e.g., "bed" doesn't get transformed into
"bed | b".

(imported from commit 0be3ef9a43eb524ed4f081d5081a786cf602c487)
2013-06-27 14:18:53 -04:00
Tim Abbott 400db86008 [manual] nginx: Pass post-rewrite URIs to FastCGI.
This requires us to do a puppet apply when it is deployed to each of
staging and prod.

(imported from commit eed631ce10340e7fe3252cd8a4f05fd59ef3c942)
2013-06-25 16:34:43 -04:00
Tim Abbott ae89b25d69 nginx: Add fastcgi_params to puppet.
(imported from commit 12e6b02cd2cb411ab83a29a486053df6dff9ebb8)
2013-06-25 16:34:43 -04:00
Tim Abbott 222ef672b5 [manual] Use ujson instead of simplejson.
This saves something like 15ms on our 1000 message get_old_messages
queries, and will save even more when we start sending JSON dumps into
our memcached system.

We need to install python-ujson on servers and dev instances before
pushing this to prod.

(imported from commit 373690b7c056d00d2299a7588a33f025104bfbca)
2013-06-24 10:17:10 -04:00
Zev Benjamin bf9ad1874e puppet: Run pg_backup_and_purge.py nightly
(imported from commit 98555b970533adc3c60377490074607da9f78efb)
2013-06-21 14:08:57 -04:00
Zev Benjamin 15d13f8f40 puppet: Add script for doing Postgres base backups and purging old backups
(imported from commit 93a92729b2e964e054aa1af7bcb8a0bae3fd1b33)
2013-06-21 14:08:57 -04:00
Zev Benjamin 33b3b1fa62 puppet: Switch which S3 bucket we backup Postgres to
The old bucket was versioned and didn't allow deletes.  This was
great for paranoia, but not so great for being able to delete old
backups.

(imported from commit be79b5c582ca5ee466cdfea6d3093b6d5ba0e23d)
2013-06-21 14:08:57 -04:00
Zev Benjamin 1b6514b89f puppet: Use the correct Postgres archive command
I hadn't changed it previously out of paranoia in the case we had a
faulty failover and had two masters both uploading to the same place.
However, I now don't think this can happen, as recovery completion
will cause Postgres to start a new timeline.

(imported from commit d58f1aa306eff4f6fd950664ff658539c1249bdf)
2013-06-21 14:08:57 -04:00
Zev Benjamin bf82fadc95 puppet: Move /tmp to local storage on Postgres master servers
(imported from commit eae0a31faad6d95c8e2b55c11481aa19d7e108f2)
2013-06-21 14:08:57 -04:00
Luke Faraone 6bd3886406 Don't pass along client locale settings when sshing in to our servers
(imported from commit d25f2a47b60c1ac7e4dcbd4a0133d0c0c9698b4e)
2013-06-18 17:20:48 -04:00
Leo Franchi 23322a791d puppet: Add sparkle configuration files
(imported from commit e36efd64584d946bb13fb5b44af817e85345e197)
2013-06-18 16:12:14 -04:00
Tim Abbott c3b4ab0f02 puppet: Move nagios homedir to /var/lib/nagios.
That's where it is supposed to be, and besides, that's what a Nagios
server is going to expect it to be.

(imported from commit c273f18533909fa8eac182246dbbe498a5381f6c)
2013-06-17 13:48:06 -04:00
Tim Abbott 261300d10e puppet: Add Nagios crontab to puppet.
(imported from commit 353b167b303b27ccbfc0cd0130665399faab80dc)
2013-06-17 13:48:06 -04:00
Tim Abbott 83016e501b puppet: Complete several more of our nagios TODOs.
(imported from commit 239cbe1606cc077119b65b3dc18b519b09b021a4)
2013-06-17 13:48:06 -04:00
Tim Abbott d3d5334a55 puppet: Import pagerduty_nagios.pl into puppet.
(imported from commit 1b91524498372d3e69f07468e4635c4d66c44d85)
2013-06-17 13:48:06 -04:00
Tim Abbott caafb405d7 puppet: Finish puppetizing git/wiki configuration.
(imported from commit 423083269cea7b23f8b5805561919b9c6b9a8f4d)
2013-06-17 13:48:06 -04:00
Tim Abbott 5c388ed28e puppet: Run our wiki out of supervisord.
(imported from commit a8f6d14ce55de0e7458496f9debb15529120deaf)
2013-06-17 13:48:06 -04:00
Tim Abbott 1bf4a36ac1 puppet: Clean up organization in base.pp a bit.
(imported from commit 2be403981f94b440f9b999d7b8a36a0ec0cedcb7)
2013-06-17 13:48:06 -04:00
Tim Abbott 91933a2004 puppet: Move configuring supervisor into its own module.
(imported from commit b2ad9bc5c5d6bde78380b0537696ed26cab8c264)
2013-06-17 13:48:06 -04:00
Tim Abbott 4d31e5d79e puppet: Increase memcached memory limit to 512MB.
(imported from commit 152c2545a3337fb1d6794a41c63c4d0b148adecc)
2013-06-17 13:48:05 -04:00
Tim Abbott 9e2d17ff9e puppet: Add uid/gid for Nagios user.
It turns out that having a UID for one user that's 1000, and not
setting them for other users, is a disaster: puppet might create them
in the wrong order, using UID 1000, and thus breaking creating the
'humbug' user later on.  The same issue applies to groups.

(imported from commit 02b4700278e5c495bd514802f41ae238e6b051ac)
2013-06-17 13:48:05 -04:00
Tim Abbott 5e41bab681 puppet: Fix iptables-persistent always being restarted.
(imported from commit 5246be11dbbba3b9fee4be0477eb08525575577e)
2013-06-17 13:48:03 -04:00
Zev Benjamin a9e4441bee [manual] Serve static files from the same location across prod deploys
This only affects DEPLOYED installations.

This does not take care of removing old versions of static files from
that directory.  The problem is that staticfiles is clever and
doesn't copy files that are already there, so we can't depend on
mtime for detecting which files we no longer need.  Hopefully that
won't be too much of a problem for now.

(imported from commit 4341460dd5bc6544086fd445014ebdac58192910)
2013-06-12 17:46:38 -04:00
Tim Abbott 19d8cfd657 puppet: Properly configure nginx service and disable default site.
(imported from commit 4c526c9333445e2575a85d1e90ccc134717f19f6)
2013-06-12 17:19:33 -04:00
Tim Abbott b762067144 Puppetize Nagios user and ssh configuration for client systems.
(imported from commit 21a350979dc5d0e30b83e33fbc54cc5898755fdc)
2013-06-12 17:19:33 -04:00
Tim Abbott 164c4d2c1b puppet: Fix memcached configuration to not require manual restart.
(imported from commit 869050668cd69e8d76e39a6864f35a1cba45449d)
2013-06-06 11:02:52 -04:00
Tim Abbott 7f8e5324af Avoid restarting server on every deploy in puppet configuration.
(imported from commit 0e40f19ac5d81a2016fedf42d851f270eea07e28)
2013-06-06 11:01:17 -04:00
Leo Franchi 113180b7b7 nagios: Don't page about load/disk/ levels on non-critical servers.
Add a pageable_servers and not_pageable_servers hostgroup, and only page for
app/postgres/zmirror.

(imported from commit 15c286324e942bd38e2a600a3b9091044f117e28)
2013-06-05 10:20:56 -04:00
Tim Abbott c609d347b7 puppet: Move python-requests to base.pp.
It's needed to use the Humbug API, which most of our machines end up
using anyway.

(imported from commit 95a3317ab25632007deaadf74da5bec175641d27)
2013-06-04 19:48:40 -04:00
Tim Abbott d3ad2cd1d4 puppet: Deploy Nagios configuration via Puppet.
(imported from commit ef4c2fb9188bab406b7e677cbe3d0c2b1527a4c4)
2013-06-04 19:48:13 -04:00
Tim Abbott efcf88a707 puppet: Fix paths in feedback-bot configuration.
(imported from commit e9407af884dc75490de5168e067453e77aa612d7)
2013-06-04 19:48:13 -04:00
Tim Abbott b64af68d6a puppet: Fix key name for the Humbug ops key.
(imported from commit 9647603e4b0ec91411be029dc08c558dfd7ed8f4)
2013-06-04 19:48:13 -04:00
Tim Abbott cd65aea287 Add our trac configuration to puppet.
(imported from commit 8a9cf825344cdf83e8233f15ba66bbf050c920e4)
2013-06-04 19:48:13 -04:00
Zev Benjamin 1af0d5b942 [manual] Add Diff Match Patch dependency
(imported from commit 808a83f4326ed88a09321e0f7ca647c956a5af32)
2013-06-04 18:18:33 -04:00
Zev Benjamin 3325554c03 Fix app_frontend.pp whitespace
(imported from commit ecbdd52b00d67569fc907b05ccd2c903e65141c4)
2013-06-04 18:17:44 -04:00
Leo Franchi 8cc0a9b4f9 [manual] Require redis-server to be installed on our servers
This requires `redis-server` to be installed. Check it is installed before
deploying this commit. It also requires 'python-redis' to be installed.

(imported from commit e3434a04456e596f6c84c1a3c289a00aa7cbb2ed)
2013-06-04 09:43:09 -04:00
Leo Franchi f9a99192df Add supervisor conf file for stats
(imported from commit e9104676e714dc36050fef50cabe8386b6c52e4d)
2013-06-03 16:16:22 -04:00
Zev Benjamin 1004178fe1 puppet: Only restart supervisor when the config file has been updated
(imported from commit ad318e2d7a1350235a62585a45a6b3673d783393)
2013-05-30 14:36:31 -04:00
Keegan McAllister 3e19afc95f Puppet: Install moreutils on servers
So we can use the 'sponge' command in update-prod-static.

I've already installed it on app and staging.

(imported from commit 1527b1c0108d7a95b471dea82e8dedc88f944f70)
2013-05-30 13:51:47 -04:00
Tim Abbott 8f90f4ed6c Fix permissions on Nagios plugins.
(imported from commit 7d1feb1430ca897a478c376fb5fe623e10040261)
2013-05-30 10:59:50 -04:00
Luke Faraone b159373153 Depend on nagios-plugins-basic, not nagios.
(imported from commit 6508bc1ff5d89f4724aa3e627aec51c851bc84c4)
2013-05-29 17:57:33 -04:00
Luke Faraone 290ae183e2 Remove duplicate nagios plugins entry.
(imported from commit e95db03152e76cc87b00324ae51c57934f0eb168)
2013-05-29 17:57:33 -04:00
Luke Faraone 02de2cf260 Fix two puppet syntax errors.
Note to the future: run this command to validate configs before deploying:

puppet parser validate servers/puppet/modules/*/manifests/*.pp

Maybe we want to add this to check-all...

(imported from commit e0eb6502380ff361b783830d45e8422bc0f76c02)
2013-05-29 16:25:25 -04:00
Luke Faraone 20841f83eb Remove comments no longer applicable to current config
(imported from commit 53ebfb22c4fd8943b7153350a0141ee251a6f6b5)
2013-05-29 15:36:48 -04:00
Luke Faraone b4b728dd6f We already install pipeline as a package, no need to pip it too.
(imported from commit 82deec580c9d460fae667a437cdb558ca2bf9694)
2013-05-29 15:36:48 -04:00
Luke Faraone 711b1eeeac Deploy naigos plugins with puppet.
(imported from commit ddc4db430ed2b9b7512f28d3f54dd6dfe7f5b264)
2013-05-29 15:36:47 -04:00
Luke Faraone 742d3bb511 Move check_send_receive.py to the naigos plugins directory, renaming it.
For consistency, and because nobody could think of a reason to have it live
in bots/ with a symlink.

(imported from commit def372653fcdde2805729134fec9d4bc3ce294ec)
2013-05-29 15:36:47 -04:00
Luke Faraone 8570f5fe55 [manual] Configure prod to use our wildcard cert.
These changes can be applied with "puppet apply".

(imported from commit 999611539e81f452dd605bb98f70436737747c29)
2013-05-29 15:36:47 -04:00
Luke Faraone eb8cb4d108 [manual] Include postgres and checkrestart as requirements for the default install
These changes can be applied with "puppet apply"; no pre- or post-
action is required.

(imported from commit 95448c53313b48337b084ca92174622c6ef67417)
2013-05-29 15:36:47 -04:00
Luke Faraone b8a4aa9ef3 Break out prod and staging configs.
(imported from commit fa1ca155422031906bed4b50ac21bb41102ab960)
2013-05-29 15:36:47 -04:00
Luke Faraone c13ac407e2 remove block to prevent py2.5 packages from being installed
No longer relevant on wheezy.

(imported from commit 77885bc78b3583a6eda277868318002f58d1d2f8)
2013-05-29 15:36:47 -04:00
Zev Benjamin d92d62412f [manual] Use humbug-deployments/current as the CWD for supervisor processes
Some of our code uses the CWD, so we have to set it.

The config file needs to be copied over.

(imported from commit cec991ccbffddf7ea4d1ec8471377221ddd7c669)
2013-05-29 14:13:39 -04:00
Zev Benjamin 6824c94b7e [manual] Remove dependence on /home/humbug/humbug git checkout on app frontends
Modified files need to be copied into the right place.  The checkout
on git.humbughq.com also needs to be updated.

(imported from commit dbe9e05a0512e1f59c7819dd8d44c2c4e9c83bcf)
2013-05-29 12:00:03 -04:00
Luke Faraone d159627aa5 Remove the admin user if it exists.
(imported from commit 599a19d8fee03c9db11e86c8f5ca3194aea80032)
2013-05-28 18:39:09 -04:00
Luke Faraone 80d6e7222a Remove usage of pip.
(imported from commit f4309385b922c521cf41645dcf05a2727ca75f54)
2013-05-28 18:39:09 -04:00
Luke Faraone ee227a5ee4 Chown authorized_keys explicitly to root.
Previously the files ended up owned by "admin" for some reason.

(imported from commit b4489e5d7f3a69c389ef91a78fb125c79c22ef74)
2013-05-28 18:39:09 -04:00
Luke Faraone d81ab70644 Include our apt repository on our servers.
(imported from commit def8028201e2aebc031b557001180acbb8e6f27f)
2013-05-28 18:39:09 -04:00
Luke Faraone f911cf1a0b Symlink to enable "humbug" site.
(imported from commit 610792925ecb4599f8de0d5694b7caef64b73658)
2013-05-28 18:39:09 -04:00
Luke Faraone ef6c32cdb9 Correct path for supervisord config.
(imported from commit b2b61cacd5c44ccf089cd89ac524887fc3d0cb51)
2013-05-28 18:39:09 -04:00
Luke Faraone c07fa80eea Include additional required dependencies.
(imported from commit b6d2fea32ddf5b6125fc41994f8bc962bb3bfbd7)
2013-05-28 18:39:08 -04:00
Luke Faraone a4cc99b441 We no longer use backports, remove references from puppet.
(imported from commit deb8f27ceebf920f8702f1cb0da9f5502f03de9c)
2013-05-28 18:39:08 -04:00
Luke Faraone 08ad49184a Switch memcached user to "nobody" to match production.
(imported from commit 849ac9c1d7d6f06447b22e1c1ed2495f8c59943c)
2013-05-28 18:39:08 -04:00
Luke Faraone 29dbb1de1b Expand install-server to run some additional required steps.
(imported from commit 22719e7a4ea62c8830c502052ec5547a1b3cf726)
2013-05-28 18:39:08 -04:00
Michael McCanna 0e77082873 [manual] Bump Nginx buffers, don't use fastcgi temp files
Nginx's fastcgi buffers default to 8 pages (32KB). I've bumped it to 4MB,
as queries like get_old_messages take something like 130KB, and was
being ferried off to disk. In case this change to the buffers parameters isn't
enough, we explicitly set the maximum temporary file size to 0; if the fastcgi
request goes over the buffers allocated, the request will be handled synchronously,
and never go out to disk on nginx's fastcgi requests.

The manual step that must be done is to apply changes to /etc/nginx/humbug-include/app
from servers/puppet/modules/humbug/files/nginx/humbug-include/app.
The nginx process can be reloaded with `/etc/init.d/nginx restart`.
This must be done for both staging and prod.

(imported from commit 99c1bd6989c54b7e230b7c04f2fdf09be7423352)
2013-05-28 18:13:45 -04:00
acrefoot 3370d2cae5 Puppet configuration for ~humbug/tornado directory
This directory is needed for the event_queues.pickle file
that gets created as part of dumping the tornado queues.

(imported from commit 7c1bde0ecae59d2174327a981582b55a199c5b57)
2013-05-28 11:19:44 -04:00
Zev Benjamin cce8dfab84 [manual] Use the same socket across server restarts
We let supervisor create the socket for us by making humbug-django a
fcig-program.  Unfortunately, supevisor doesn't support putting
fcgi-programs in groups (see
https://github.com/Supervisor/supervisor/issues/148), so we have to
restart tornado and django separately.

To deploy, copy the config files over and restart nginx and
supervisor (via stopping and then starting it because restart is
broken).  I believe the automated restart as part of
update-deployment will fail because of the way supervisor treats
programs in groups.  If so, after restarting supervisor, you will
also need to run restart-server manually to fill the caches and then
delete the lock directory in humbug-deployments.

(imported from commit bfb5db7dd42dcbc4bfefa2944355b3cbb2ef9104)
2013-05-23 00:19:17 -04:00
Zev Benjamin 8fd72a09bc Restart Django and Tornado separately from the other worker processes
The amount of process downtime during a supervisord-mediated restart
appears to be linear in the number of processes that are being
restarted.  Therefore, restarting just Django and Tornado causes less
downtime than doing them at the same time as the other worker
processes.

(imported from commit 1fa9ef547bcd88caeec49800664e37d5f2fcb7a8)
2013-05-21 16:13:39 -04:00
Zev Benjamin de3ba5a038 puppet: Replace postgres2 with postgres1 in pg_hba.conf
(imported from commit 2d8654f9382df7473ec12caf2067ef0af5fef791)
2013-05-20 23:55:03 -04:00
Leo Franchi 2fcc7c0c5c Fix aggregation rules to sum at correct frequency
(imported from commit a8a27c417ae6e9cc8a6c383313da27ff6d2e875f)
2013-05-20 23:55:03 -04:00
acrefoot 9d8f847fed [manual] Run server using supervisord
This change will make it so that processes related to the app.humbughq.com
server are run under supervisord, which uses a state machine model to ensure
that programs are running. It also ensure process startup order.

We will need to manually switch the old way of running server (in screen) into
this new way of doing things, on both staging and prod (app_frontend.pp has been
updated appropriately). This means:
1) cp servers/puppet/modules/humbug/files/supervisord/conf.d/humbug.conf /etc/supervisord/conf.d
2) installing the supervisor package.
3) killing those while loops in that screen session
4) mkdir /var/log/humbug (as root)
5) /etc/init.d/supervisord start
6) check that nothing broke

(imported from commit 055269a70973db89acd69049e01b185fabdc8f90)
2013-05-20 23:42:28 -04:00
Leo Franchi 25b915fa6a Enable rabbitmq consumser checks on app
(imported from commit e3df8bc849dc0e1ae2e7782c0c9be5c08d4818c2)
2013-05-20 23:29:54 -04:00
Leo Franchi 3d4e239247 Check rabbitmq consumers for all important queues
(imported from commit 1279d33e3e1c36ee8da01859875d24b54e14e2e6)
2013-05-17 01:02:35 -04:00
Zev Benjamin 8c2bbf7d45 puppet: Add missing frontend dependency
(imported from commit 465c7b1b1e8d6f0e5ef555374187414fc762cf9c)
2013-05-17 01:02:33 -04:00
Zev Benjamin b940693df4 puppet: Fix conflicting puppet declaration
(imported from commit da0ca23a9b8a0a7a6de7d12ef4d47f468075aeec)
2013-05-17 01:02:33 -04:00
Luke Faraone c3421b31b9 Include certificate configuration for www.humbughq.com via Comodo
This expires in on Aug 11 23:59:59 2013 GMT.

I've set a calendar event for this :)

(imported from commit fb426b703c88dd255536e10285375dc997e47b01)
2013-05-17 01:02:32 -04:00
Tim Abbott 0a36340216 check_user_zephyr_mirror_liveness: Fix query for new API.
(imported from commit f6c477a1d5f0237109be339d099c41c7db5186cc)
2013-05-10 10:46:49 -04:00
Tim Abbott d0540efa6a nagios check_disk: check inode disk usage too.
(imported from commit e920c4a11c2797904f0ca397ebdcd8b0a9fef8cf)
2013-05-09 10:35:47 -04:00
Leo Franchi 5a5ed28ab0 Create aggregate all-active-users data
(imported from commit 4009a4eb15a3efb1c05e1e80151db7d1074f0617)
2013-05-01 17:24:38 -04:00
Leo Franchi 52f6c720d9 Add new stats server to logging
(imported from commit b3647ab039c902d09a92082c3e98b5b066e6a5c8)
2013-04-29 16:44:41 -04:00
Zev Benjamin 2aadf6fc6e [schema] [manual] Create a Postgres text search configuration for use with Humbug
Text search was not that great partially because Postgres wasn't
using a ispell dictionary (Postgres term) before.  We now pull in
Hunspell and use its dictionary and affix rules.

It is Ok to run with this new configuration before updating our full
text column and index that will be coming in the next few commits.

Manual steps for deploy:
1) On both postgres0 and postgres1 (both before moving on to step 2),
   install the hunspell-en-us package
2) On staging, run migration 0022
3) On both postgres0 and postgres1, copy the appropriate postgresql.conf
   file over
4) On both postgres0 and postgres1, run `pg_ctlcluster 9.1 main reload`

(imported from commit 706bf0f6ecc46c712cea10b73c34fd9d1dfd4767)
2013-04-27 20:06:26 -04:00
Leo Franchi 5c0cfc44e7 Add iptables rule for statsd
(imported from commit 5311be29fd63151fb9d5a5c0f80ed34f8e8b76f5)
2013-04-26 17:47:00 -04:00
Zev Benjamin af3ef8636c puppet: Add Postgres recovery.conf
Note that this file needs to be copied over manually as part of the
process of starting up a new replica.

(imported from commit a9f14b695ef2b6b4d48b6180d187c3babf5a667c)
2013-04-22 16:36:09 -04:00
Zev Benjamin 986ca06c44 puppet: Add wal-e to Postgres config
(imported from commit 55727a95cc51afb69f14c27df89a6ae287ec0f3f)
2013-04-22 16:36:09 -04:00
Zev Benjamin f280e7cdfa puppet: Use deadline scheduler for disks on Postgres master
(imported from commit 41061cb4535b94b4afea8c3a2228120073bf06ee)
2013-04-22 16:36:09 -04:00
Zev Benjamin 092cdff061 puppet: Log Postgres checkpoint information
(imported from commit 41603ad1c3cf8419d315b44d5679e0817062ced0)
2013-04-22 16:36:09 -04:00
Zev Benjamin 387f63deaa puppet: Add vm sysctl settings to Postgres configs
(imported from commit e557815f490a603da635fb60d39569346a72aa85)
2013-04-22 16:36:09 -04:00
Zev Benjamin a13b929d1f puppet: Add script to configure Postgres master disks
(imported from commit 61004aa839df8f3fa82ba0c4ea9e2a01ae43464c)
2013-04-22 16:36:09 -04:00
Zev Benjamin e7cdea1c43 puppet: Tweak Postgres master tunables for its hardware
(imported from commit 8644e82d00944203728a3214b2141f778e1c54ed)
2013-04-22 16:36:09 -04:00
Zev Benjamin 336db5c709 puppet: Split Postgres puppet config into master and slave versions
(imported from commit adb02cc1904875eb8f56fe272b44dd51bb7d939d)
2013-04-22 16:36:09 -04:00
Leo Franchi 55449fb724 Fix carbon aggregation by sending to aggregator daemon not cache
(imported from commit 1f96a6edd019d8be2844b33588fcdc2ebd61fff6)
2013-04-22 11:07:41 -04:00
Leo Franchi b3a3054f64 Slightly raise thresholds for load on nagios
(imported from commit 2dbc06c8ba204c10f6d6b590bc4858e07692540b)
2013-04-22 10:22:35 -04:00
Leo Franchi 499ef75c26 Add configuration files for graphite and statsd
(imported from commit bb2c14d816f9ead54bed9da1f227c5e35c9a36bb)
2013-04-18 18:05:51 -04:00
Zev Benjamin e9f6d9ceff puppet: Fix location of stats directory
(imported from commit b482d6c22e5c1844a65cbee41d1e39378500a9c7)
2013-04-18 17:14:32 -04:00
Leo Franchi 350cf79ba0 Add a nagios check for a notify_tornado consumer
(imported from commit 050536bb4ac7384d5b98d5cf6cb7430b2b00dbd5)
2013-04-17 09:24:28 -04:00
Tim Abbott 99ce1ce9ac munin: run the humbug_send_receive plugin against the current site.
(imported from commit 594e77dd32b9ab0db0002e7dc357ebe93b3ca9cd)
2013-04-16 12:02:42 -04:00
Tim Abbott 5b1b2257bd nagios: Commit Luke's testing contact.
(imported from commit d88951f42ad7753777b8e0ab2d47b9bb61ff3f76)
2013-04-16 12:02:42 -04:00
Tim Abbott bb3b63206a nagios: Comment out the postgres time checks (they're too noisy).
(imported from commit c9569cdbd2909ea7fb8c8c14a681201ee033c62b)
2013-04-16 12:02:42 -04:00
Tim Abbott b73ac39a25 nagios: Run check_send_receive_time check against both staging and prod.
(imported from commit 749c5f04fba4832debe8a4e702914fa47d1fbeaa)
2013-04-16 12:02:42 -04:00
Tim Abbott 73886a95fd nagios: Update app.humbughq.com to use its primary hostname.
(imported from commit 39d291e06b0fa223ae4bb76022b26464b969a505)
2013-04-16 12:02:42 -04:00
Tim Abbott 1b8cf16988 [manual] Update deployment process to run atomically.
This requires manual steps on deploy to each of staging and prod:
(1) Run the new update-deployment code to setup the initial deployment directory.
(2) Restart all the programs running in screen sessions.
(3) Deploy the nginx changes and restart nginx.

(imported from commit 1ffe27933ee79274dc0a93d35c9938712de0ef36)
2013-04-12 11:54:50 -04:00