Keepalived instance not entering FAILED state

When a monitored interface goes down, the instance immediately enters FAILED state and the other instance gets into the MASTER state.

But, if you have a script block to check – say you are monitoring HAProxy – and HAProxy goes down the MASTER will not enter FAILED state, unless you do this:

Set the weight to a negative number (if MASTER priority is 101 and BACKUP priority is 100, the weight could be -2).

This way when HAProxy goes down, the Priority of the master will become 101 -2 = 99, the Backup with a priority of 100 will win the election and enter into MASTER state.

When HAProxy on the master comes back, it’s priority increases by 2 to become 101 again and if you have nopreempt disabled, this instance will enter the MASTER state.

Discourse with Docker on port 80

Discourse can cause you trouble if you have it running(listening) on a non-standard port inside the Docker instance. (the feed, google auth return url have the port and host info in them) (assuming you would like to serve requests from a standard http(s) port).

To make it work smoothly, I had to make it listen on standard port (80 in my case).
This is what I ended up doing:

Nginx(hostip:80) -> Nginx(dockerinsideip:80)

This method also extends to having multiple docker instance for different sites.
This is my nginx config on the host:

server {
    #where discourse sits
    server_name forum.mydomain.com;
    location / {
        #this is also important for discourse to work as expected
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        #my docker instances internal ip
        proxy_pass http://172.17.0.2;
    }
}

And, I removed http port mappings on my app.yml file.

linux disk usage not adding up

Umount file systems on that partition one by one and look for files in the mount point.

When mounting a filesystem on a mount point any existing files in that mount point are not deleted. They just appear hidden when running du.

 

missing scheme in email body url

Some mail service providers (Yahoo Mail exhibits this at the moment), do not like links that do not have a scheme(http/https for instance) and will make the link non-clickable by removing the href. The fix is simple:

<!-- link is not clickable -->
<a href="www.google.com">Google</a>
 
<!-- link is clickable -->
<a href="https://www.google.com">Google</a>

how to not run a cron job between certain datetimes

Say, I have a cron job entry and do want the job to run between 2013-02-01 9PM (Feb 1st 2013) and 2013-02-02 11AM (Feb 2nd 2013), this is one possible solution (in crontab).

* * * * * [ $(/bin/date "+\%Y\%m\%d\%H") -lt 2013020109 -o $(/bin/date "+\%Y\%m\%d\%H") -gt 2013020211 ] && /PATHTOMYSCRIPT/myscript

rsync only certain files

Create a file on on the origin server and use the –files-from option

cd /
rsync -anvi --files-from=/tmp/only_these_files . to-server:/
 
cat /tmp/only_these_files
/srv/www/mysite/uploaded_files/9a3d3d9046aaad4bbe3074d794a6adaf.jpg
/srv/www/mysite/uploaded_files/5ca1c97efd730427f846e457bd0a0667.png
/srv/www/mysite/uploaded_files/5b0923025b4a1fde3a34119bfcd56567.jpg
/srv/www/mysite/uploaded_files/870ed45d9ad704deace8fb541242425a.jpg

Starting KVM guest after memory change

After a memory module was taken out the system, the KVM guest was failing to start complaining about insufficient memory. Editing the domain XML file (in /etc/libvirt/qemu on Debian) to use less RAM and then trying to start the guest did not work.

I had to do this:
libvirt-bin restart

for the the updated XML file to be read and for the guest to start.

WordPress + Nginx + Permalinks Rewrite rules

The following works for me:

  location /blog/ {
          index  index.php;
          # WordPress pretty URLs: (as per dominiek.com)
          if (-f $request_filename) {
                  break;
          }
          if (-d $request_filename) {
                  break;
          }
          rewrite ^/blog/(.+)$ /blog/index.php?q=$1 last;
 
          # Enable nice permalinks for WordPress: (as per Yawn.it)
          error_page  404  = /blog/index.php?q=$uri;
  }

I have my blog here: http://www.trk7.com/blog/
and my permalink structure is: /%postname%/