Pras' Labs

Upgrade Ghost

I have run Ghost for quite some time now and I have been through two upgrade process so I think it will be a good idea to save a procedure for easy upgrading. I found the instruction here. Manually upgrade Ghost I usually use manual upgrade method because I don’t inspect the automatic scripts yet if it is compatible with my installation. # cd /var/www/html/ghost # mkdir temp # cd temp/ # curl -L -O https://ghost.org/zip/ghost-latest.zip # unzip ghost-latest.zip # cd .. # cp temp/*.md temp/*.js temp/*.json . # rm -R core # cp -R temp/core . # cp -R temp/content/themes/casper content/themes # npm install --production # rm -R temp # su ghost -c /var/www/html/ghost/starter.sh -s /bin/sh Reference http://www.howtoinstallghost.com/how-to-update-ghost/ ...

Puppet Master-Agent Installation on FreeBSD

Puppet is a software which can automate configuration and management of machines and software running on them. This tool has great benefits for system administrator because it helps sysadmin to be the dream of every sysadmin, a lazy sysadmin. Puppet has great support for many operating system. Unfortunately its installation on my favourite OS, FreeBSD, is not so smooth. An introduction of Puppet installation which I found in BSD Magazine January 2012 edition is a starting point but I have to make some modification due to some of deprecated configurations. So, here I want to show you how to install and configure the basic of Puppet in FreeBSD in its master-agent scenario. ...

Installing MySQL Server on FreeBSD

Installation using FreeBSD ports Login as root, then to make sure our server’s hostname can be identified locally we need to edit /etc/hosts. # ee /etc/hosts ::1 localhost localhost.example.com 127.0.0.1 localhost localhost.example.com 192.168.1.11 host.example.com Install MySQL Server with following command. # cd /usr/ports/databases/mysql56-server # make -D BUILD_OPTIMIZED install clean # rehash After installation finished, run script for installing main database and tables used by MySQL. # mysql_install_db --user=mysql –basedir=/usr/local/ Run following command to start MySQL daemon and create password for MySQL’s root. # mysqld_safe & # mysqladmin -u root password ’localpassword’ # mysqladmin -u root -h host.example.com password ‘remotepassword’ ...

Installing Cyrus SASL Server on FreeBSD

Instalation using FreeBSD ports Login as root then enter ports directory of Cyrus SASL and run following command. # cd /usr/ports/security/cyrus-sasl2-saslauthd # make config ; make install clean # rehash Create file smtpd.conf in directory /usr/local/lib/sasl2/. # ee /usr/local/lib/sasl2/smtpd.conf Then add following lines. pwcheck_method: saslauthd mech_list: plain login Edit file rc.conf so that SASL Authentification server can start at boot time. # ee /etc/rc.conf saslauthd_enable="YES" saslauthd_flags="-a pam" if you want to use other authentication mechanism such as LDAP, use following flags. ...

Installing Apache HTTP Server on FreeBSD

Installation Installation using FreeBSD ports Login as root, then to make sure our server’s hostname can be identified locally we need to edit /etc/hosts. # ee /etc/hosts ::1 localhost localhost.example.com 127.0.0.1 localhost localhost.example.com 192.168.1.11 host.example.com Install Apache HTTP Server using following command, choose default for options, select OK. # cd /usr/ports/www/apache22 # make config; make install clean # rehash After installation proses finished, change Apache configuration file. # ee /usr/local/etc/apache22/httpd.conf ServerAdmin [email protected] ServerName host.example.com:80 To enable SSL support, uncomment following line. ...

Heartbeat Using Different UDP Ports for Different Clusters on Same Network

Heartbeat is a daemon that provides cluster infrastructure (communication and membership) services to its clients. This allow clients to know appearance or disappearance of peer processes on other machines and to easily exchange message with them.(Heartbeat - Linux-HA) Heartbeat clusters work only one on same network so if we setup different cluster (different authkeys) on same network it will show up as an error in log file. We can still setup more than one cluster in same network by setting different communication port for heartbeat. ...

Git Tutorial

Git is a distributed version control system version control system track history of a collection of files and includes the functionality to revert to another version. Distributed version control system does not necessarily have a central server which stores data. User can copy existing repository (cloning). Every clone contains full history of the collection of files and a clone repository has the same functionality as the original repository. Users with sufficient authorization can push changes from their local repositories to remote repositories, they can also fetch or pull changes from other repositories to their local Git repository. ...

DRBD: Extend DRBD Disk Online

When using DRBD, we can grow DRBD disk online so we do not need to disturb the production process we have in the server. The requirement to this feature is the backing block device can be resized online so it is possible to resize the DRBD disk. There are two criterias that must be filled. The backing device must be managed by a logical volume manager such as LVM The resource must currently be in the Connected connection state. First, we need to grow the backing device on both nodes and make sure only one node in Primary node. ...

SMTP: Debugging SMTP with TLS/SSL and Auth

SMTP use TLS/SSL to secure connection to server and AUTH so only authenticated user can use the SMTP service. This tutorial will show steps to debug SMTP TLS/SSL and AUTH from Linux/Unix terminal. encode your login information in base64, the following perl command which requires MIME::Base64 will do encoding perl -MMIME::Base64 -e 'print encode_base64("\000your_username\000your_password")' # example output # AHlvdXJfdXNlcm5hbWUAeW91cl9wYXNzd29yZA== connect to smtp server # normal non-secured SMTP $ telnet smtp.yourdomain.com 25 # TLS connection, check STARTTLS support with EHLO command $ telnet smtp.yourdomain.com 25 220 SMTP banner EHLO smtp.yourdomain.com 250 SMTP banner 250-smtp.yourdomain.com 250-PIPELINING 250-SIZE 36360000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN quit $ openssl s_client -starttls smtp -crlf -connect smtp.yourdomain.com:25 # SSL connection $ openssl s_client -crlf -connect smtp.yourdomain.com:465 check AUTH support with EHLO command ...

LVM: Adding New Physical Volume to Volume Group

Linux LVM is a logical volume manager for Linux kernel. Logical volume manager provides method of allocation space in mass storage device that more flexible than traditional partitioning scheme. Logical volume manager can create, resize, and combine partitions, potentially without interrupting system. (Wikipedia) schema: new device /dev/sda create needed partitions, label them with 8e (Linux LVM) # fdisk /dev/sda format partitons # mkfs.ext4 /dev/sda1 create physical volume # pvcreate /dev/sda1 extend existing volume group ...