<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Blogs on Pras' Labs</title><link>http://blog.pras.my.id/blogs/</link><description>Recent content in Blogs on Pras' Labs</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 01 Oct 2026 20:00:00 +0700</lastBuildDate><atom:link href="http://blog.pras.my.id/blogs/index.xml" rel="self" type="application/rss+xml"/><item><title>Day 2 with my custom build NAS server for the homelab</title><link>http://blog.pras.my.id/blogs/2026-10-01-nas-click-noise-pbs-backup-gap/</link><pubDate>Thu, 01 Oct 2026 20:00:00 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2026-10-01-nas-click-noise-pbs-backup-gap/</guid><description>&lt;h2 id="symptom">Symptom&lt;/h2>
&lt;p>A scheduled Proxmox Backup Server job had been running against one of my LXC containers every night since 2026-09-27. Every run reported &lt;code>TASK OK&lt;/code>. The run on 2026-10-01 was incremental and reused 98.9% of the previous backup, which read as healthy.&lt;/p>
&lt;p>Line 7 of that same task log said something else:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" role="region" aria-label="text code 1" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">INFO: excluding bind mount point mp0 (&amp;#39;/mnt/immich-data&amp;#39;) from backup (not a volume)&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>I didn&amp;rsquo;t catch that line myself. Claude, who I was working through this with, is the one who flagged it. I wasn&amp;rsquo;t reading the log line by line looking for it. I&amp;rsquo;m OK with that: Claude catching the backup gap doesn&amp;rsquo;t bother me.&lt;/p></description></item><item><title>Hugo New Theme</title><link>http://blog.pras.my.id/blogs/2026-03-01-hugo-new-theme/</link><pubDate>Mon, 02 Mar 2026 20:53:07 -0400</pubDate><guid>http://blog.pras.my.id/blogs/2026-03-01-hugo-new-theme/</guid><description>&lt;p>This is the Hugo code I use to generate the HTML files of my blog. A
DevOps/SysAdmin blog about web and network technology stacks, also provides
tutorials and original writing of the author. This blog also covers exciting
news in science and technology.&lt;/p>
&lt;h2 id="powered-by">Powered by&lt;/h2>
&lt;p>&lt;a href="https://gohugo.io/">Hugo&lt;/a> is a general-purpose website framework. Technically
speaking, Hugo is a static site generator. Unlike systems that dynamically
build a page with each visitor request, Hugo builds pages when you create or
update your content. Since websites are viewed far more often than they are
edited, Hugo is designed to provide an optimal viewing experience for your
website’s end users and an ideal writing experience for website authors.&lt;/p></description></item><item><title>Upgrading Self Hosted Stalwart Mail Experience</title><link>http://blog.pras.my.id/blogs/2025-06-20-upgrading-self-hosted-stalwart-mail-experience/</link><pubDate>Fri, 20 Jun 2025 08:45:32 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2025-06-20-upgrading-self-hosted-stalwart-mail-experience/</guid><description>&lt;h2 id="steps">Steps&lt;/h2>
&lt;ol>
&lt;li>Get the current version of Stalwart Mail.
&lt;ul>
&lt;li>current version: v0.8.0&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Check the documentation for the latest version.
&lt;ul>
&lt;li>upgrading documentation: &lt;a href="https://github.com/stalwartlabs/stalwart/blob/main/UPGRADING.md">https://github.com/stalwartlabs/stalwart/blob/main/UPGRADING.md&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Upgrade to the next major version incrementally
&lt;ul>
&lt;li>next major version: v0.9.x&lt;/li>
&lt;li>next major version: v0.10.x&lt;/li>
&lt;li>next major version: v0.11.x&lt;/li>
&lt;li>next major version: v0.12.x&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Fix issues that arise during the upgrade process.
&lt;ul>
&lt;li>issue: failed to start when using v0.11.0
root causes:
&lt;ul>
&lt;li>&lt;a href="https://github.com/stalwartlabs/stalwart/issues/1057">https://github.com/stalwartlabs/stalwart/issues/1057&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/stalwartlabs/stalwart/issues/1104">https://github.com/stalwartlabs/stalwart/issues/1104&lt;/a>
resolution: use v0.11.3 when upgrading from v0.10 to v0.11&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>issue: cannot login to web admin after upgrading it to latest version when
using the old version of stalwart mail
root causes:
&lt;ul>
&lt;li>&lt;a href="https://www.reddit.com/r/stalwartlabs/comments/1ikfz8u/error_trying_to_log_in_admin/">https://www.reddit.com/r/stalwartlabs/comments/1ikfz8u/error_trying_to_log_in_admin/&lt;/a>
resolution: finish the upgrade to the latest version v0.12.4&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Export and backup the data before upgrading.
&lt;ul>
&lt;li>export and backup data using stalwart mail CLI command&lt;/li>
&lt;li>backup the database data using the database management tool&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="get-the-current-version-of-stalwart-mail">Get the current version of Stalwart Mail&lt;/h3>
&lt;p>Check the docker-compose file to get the current version of Stalwart Mail.&lt;/p></description></item><item><title>Create Kubernetes Cluster in Proxmox Using Talos</title><link>http://blog.pras.my.id/blogs/2025-04-28-create-kubernetes-cluster-in-proxmox-using-talos/</link><pubDate>Mon, 28 Apr 2025 14:31:17 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2025-04-28-create-kubernetes-cluster-in-proxmox-using-talos/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>Talos is a container optimized Linux distro; a reimagining of Linux for
distributed systems such as Kubernetes. Designed to be as minimal as possible
while still maintaining practicality.&lt;/p>
&lt;h2 id="installation">Installation&lt;/h2>
&lt;p>Regardless of where you run Talos, the steps to create a Kubernetes cluster are:&lt;/p>
&lt;ul>
&lt;li>boot machines off the Talos Linux image&lt;/li>
&lt;li>define the endpoint for the Kubernetes API and generate your machine configurations&lt;/li>
&lt;li>configure Talos Linux by applying machine configurations to the machines&lt;/li>
&lt;li>configure talosctl&lt;/li>
&lt;li>bootstrap Kubernetes&lt;/li>
&lt;/ul>
&lt;h3 id="pre-requisites">Pre-requisites&lt;/h3>
&lt;p>talosctl is a CLI tool which interfaces with the Talos API. Talos Linux has no
SSH access: talosctl is the tool you use to interact with the operating system
on the machines.&lt;/p></description></item><item><title>Upgrade OpenStack Mitaka to OpenStack Newton using RDO</title><link>http://blog.pras.my.id/blogs/2017-01-06-upgrade-openstack-mitaka-to-openstack-newton-using-rdo/</link><pubDate>Fri, 06 Jan 2017 18:42:29 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2017-01-06-upgrade-openstack-mitaka-to-openstack-newton-using-rdo/</guid><description>&lt;p>My OpenStack development environment is build using RDO&amp;rsquo;s &lt;strong>packstack&lt;/strong> utility
and consists of three nodes: one controller, network, and compute node, and two
compute nodes. RDO website offers two scenario for
&lt;a href="https://www.rdoproject.org/install/upgrading-rdo/">upgrading&lt;/a> OpenStack Mitaka
to OpenStack Newton. The first scenario involves taking down all of the
OpenStack services at once and will not bring them back up until the upgrade
process is completed. The second scenario upgrades each OpenStack service one
by one to avoid downtime by performing rolling upgrades of the compute hosts,
taking advantage of the fact that nova-compute from Mitaka can communicate with
a Newton control plane.&lt;/p></description></item><item><title>Using ProxySQL to Access and Manage Percona XtraDB Cluster</title><link>http://blog.pras.my.id/blogs/2016-12-09-using-proxysql-to-access-and-manage-percona-xtradb-cluster/</link><pubDate>Fri, 09 Dec 2016 10:00:54 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2016-12-09-using-proxysql-to-access-and-manage-percona-xtradb-cluster/</guid><description>&lt;p>We will use ProxySQL as a gateway to access our Percona XtraDB Cluster. ProxySQL is a high-performance SQL proxy. ProxySQL runs as a daemon watched by a monitoring process. The process monitors the daemon and restarts it in case of a crash to minimize downtime. The daemon accepts incoming traffic from MySQL clients and forwards it to backend MySQL servers.&lt;/p>
&lt;h2 id="installing-proxysql">Installing ProxySQL&lt;/h2>
&lt;h3 id="node-configuration">Node configuration&lt;/h3>
&lt;div class="pl-table-scroll" role="region" tabindex="0" aria-label="Table 1">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Node&lt;/th>
&lt;th style="text-align: left">Host&lt;/th>
&lt;th style="text-align: left">IP&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">Node 1&lt;/td>
&lt;td style="text-align: left">db1&lt;/td>
&lt;td style="text-align: left">192.168.50.31&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">Node 2&lt;/td>
&lt;td style="text-align: left">db2&lt;/td>
&lt;td style="text-align: left">192.168.50.32&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">Node 3&lt;/td>
&lt;td style="text-align: left">db3&lt;/td>
&lt;td style="text-align: left">192.168.50.33&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">Node 4&lt;/td>
&lt;td style="text-align: left">proxysql&lt;/td>
&lt;td style="text-align: left">192.168.50.34&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h3 id="prerequisites">Prerequisites&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>Install CentOS 7&lt;/p></description></item><item><title>Build Percona XtraDB Cluster using Ansible</title><link>http://blog.pras.my.id/blogs/2016-12-06-build-percona-xtradb-cluster-using-ansible/</link><pubDate>Tue, 06 Dec 2016 17:04:47 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2016-12-06-build-percona-xtradb-cluster-using-ansible/</guid><description>&lt;p>Percona XtraDB Cluster is a database clustering solution for MySQL. It ensures
high availability, prevents downtime and data loss, and provides linear
scalability for a growing environment. Here we will try to install Percona
XtraDB Cluster on a three nodes cluster configuration with the help from
Ansible configuration management.&lt;/p>
&lt;h2 id="installing-percona-xtradb-cluster-on-red-hat-enterprise-linux-and-centos-7">Installing Percona XtraDB Cluster on Red Hat Enterprise Linux and CentOS 7&lt;/h2>
&lt;h3 id="node-configuration">Node configuration&lt;/h3>
&lt;div class="pl-table-scroll" role="region" tabindex="0" aria-label="Table 1">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Node&lt;/th>
&lt;th style="text-align: left">Host&lt;/th>
&lt;th style="text-align: left">IP&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">Node 1&lt;/td>
&lt;td style="text-align: left">db1&lt;/td>
&lt;td style="text-align: left">192.168.50.31&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">Node 2&lt;/td>
&lt;td style="text-align: left">db2&lt;/td>
&lt;td style="text-align: left">192.168.50.32&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">Node 3&lt;/td>
&lt;td style="text-align: left">db3&lt;/td>
&lt;td style="text-align: left">192.168.50.33&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h3 id="prerequisites">Prerequisites&lt;/h3>
&lt;ol>
&lt;li>Install CentOS 7&lt;/li>
&lt;li>Update CentOS 7&lt;/li>
&lt;li>Open firewall for TCP ports 3306, 4444, 4567, 4568:&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" role="region" aria-label="bash code 1" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">ansible -i hosts -bkKv db-cluster -m firewalld -a &lt;span class="s1">&amp;#39;port=3306/tcp permanent=true
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">state=enabled immediate=yes&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ansible -i hosts -bkKv db-cluster -m firewalld -a &lt;span class="s1">&amp;#39;port=4444/tcp permanent=true
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">state=enabled immediate=yes&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ansible -i hosts -bkKv db-cluster -m firewalld -a &lt;span class="s1">&amp;#39;port=4567/tcp permanent=true
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">state=enabled immediate=yes&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ansible -i hosts -bkKv db-cluster -m firewalld -a &lt;span class="s1">&amp;#39;port=4568/tcp permanent=true
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">state=enabled immediate=yes&amp;#39;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol>
&lt;li>
&lt;p>Disable or set SELinux to Permissive, set option below in &lt;strong>/etc/selinux/config&lt;/strong> and &lt;strong>/etc/sysconfig/selinux&lt;/strong>:&lt;/p></description></item><item><title>Building Linux Cluster for HPC using Ansible and SLURM</title><link>http://blog.pras.my.id/blogs/2016-11-07-building-linux-cluster-for-hpc-using-ansible-and-slurm/</link><pubDate>Mon, 07 Nov 2016 06:06:24 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2016-11-07-building-linux-cluster-for-hpc-using-ansible-and-slurm/</guid><description>&lt;h2 id="what-is-a-linux-cluster">What is a Linux Cluster?&lt;/h2>
&lt;p>Linux cluster is a group of computers running Linux which is interconnected in a local network so they can communicate with each other. Linux cluster is often used in high performance computing to do complex calculation of scientific problems because they can share the calculation load across all computers in the cluster. One example of the technology used to share the calculation load to all computers in the cluster is MPI or Message Passing Interface. There are many implementations of MPI, for example OpenMPI, MPICH, and Intel MPI.&lt;/p></description></item><item><title>Pembuatan File Image CentOS 7 Untuk Instance OpenStack Liberty</title><link>http://blog.pras.my.id/blogs/2016-03-30-pembuatan-file-image-centos-7-untuk-instance-openstack-liberty/</link><pubDate>Wed, 30 Mar 2016 18:20:17 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2016-03-30-pembuatan-file-image-centos-7-untuk-instance-openstack-liberty/</guid><description>&lt;p>Salah satu fitur OpenStack adalah elastisitasnya yang memungkinkan kita untuk
membuat dan menjalankan &lt;em>instance&lt;/em> dengan cepat dan mudah menggunakan &lt;em>image&lt;/em>
dari sistem operasi yang sudah kita buat sebelumnya. Tutorial kali ini akan
memberikan salah satu cara membuat sendiri &lt;em>image&lt;/em> sistem operasi CentOS 7
untuk digunakan di OpenStack Liberty.&lt;/p>
&lt;h2 id="persiapan-host-environment">Persiapan Host Environment&lt;/h2>
&lt;p>Host yang kita gunakan untuk membuat &lt;em>image&lt;/em> adalah host dengan sistem operasi
CentOS 7. Pastikan sudah terinstall virtualisasi KVM/&lt;strong>libvirtd&lt;/strong> dan &lt;em>tools&lt;/em>
yang diperlukan&lt;/p></description></item><item><title>Instalasi Virtualenv, Nodeenv Dan RVM Sebagai Development Environment</title><link>http://blog.pras.my.id/blogs/2016-03-27-instalasi-virtualenv-nodeenv-dan-rvm-sebagai-development-environment/</link><pubDate>Sun, 27 Mar 2016 13:02:45 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2016-03-27-instalasi-virtualenv-nodeenv-dan-rvm-sebagai-development-environment/</guid><description>&lt;h2 id="virtualenv">Virtualenv&lt;/h2>
&lt;p>&lt;a href="https://virtualenv.readthedocs.org/en/latest/">Virtualenv&lt;/a> adalah aplikasi untuk membuat membuat environment virtual Python terisolasi. Aplikasi ini membuat sebuah environment virtual yang mempunyai direktori instalasi sendiri, yang tidak berbagi library dengan environment Virtualenv lainnya dan dapat dikonfigurasi untuk tidak mengakses library yang diinstal secara global.&lt;/p>
&lt;p>Instal pip di sistem operasi masing-masing, contohnya CentOS&lt;/p>
&lt;pre>&lt;code>sudo yum update -y
sudo yum install -y python-pip
&lt;/code>&lt;/pre>
&lt;p>Instal &lt;strong>virtualenv&lt;/strong> menggunakan &lt;strong>pip&lt;/strong>&lt;/p>
&lt;pre>&lt;code>sudo pip install virtualenv
&lt;/code>&lt;/pre>
&lt;p>Buat environment virtual Python menggunakan &lt;strong>virtualenv&lt;/strong>&lt;/p></description></item><item><title>Instalasi Let's Encrypt Dan Konfigurasi HTTPS Di Aplikasi Nginx Pada CentOS 7</title><link>http://blog.pras.my.id/blogs/2016-03-27-instalasi-lets-encrypt-dan-konfigurasi-https-di-aplikasi-nginx-pada-centos-7/</link><pubDate>Sun, 27 Mar 2016 13:01:27 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2016-03-27-instalasi-lets-encrypt-dan-konfigurasi-https-di-aplikasi-nginx-pada-centos-7/</guid><description>&lt;p>&lt;a href="https://letsencrypt.org">Let&amp;rsquo;s Encrypt&lt;/a> adalah Certificate Authority (CA) yang gratis dan terotomatisasi yang berjalan untuk kepentingan umum. Let&amp;rsquo;s Encrypt adalah sebuah layanan yang disediakan oleh Internet Security Research Group (ISRG). Prinsip-prinsip dasar dari Let&amp;rsquo;s Encrypt adalah gratis, otomatis, aman, transparan, terbuka, dan koperatif.&lt;/p>
&lt;p>&lt;img alt="SSL-Labs" loading="lazy" src="http://blog.pras.my.id/images/ssl-labs.png">&lt;/p>
&lt;h2 id="instalasi-lets-encrypt">Instalasi Let&amp;rsquo;s Encrypt&lt;/h2>
&lt;p>Instalasi Let&amp;rsquo;s Encrypt&lt;/p>
&lt;pre>&lt;code>sudo yum -y install git bc
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
&lt;/code>&lt;/pre>
&lt;p>Buat sertifikat baru untuk domain example.com, sebelumnya hentikan dulu aplikasi Nginx&lt;/p></description></item><item><title>Konfigurasi Email Server Dengan SPF Dan DKIM Di Aplikasi Postfix Pada CentOS 7</title><link>http://blog.pras.my.id/blogs/2016-03-27-konfigurasi-email-server-dengan-spf-dan-dkim-di-aplikasi-postfix-pada-centos-7/</link><pubDate>Sun, 27 Mar 2016 12:59:09 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2016-03-27-konfigurasi-email-server-dengan-spf-dan-dkim-di-aplikasi-postfix-pada-centos-7/</guid><description>&lt;p>Setelah kita melakukan instalasi email server, cek skor email server di website &lt;a href="https://www.mail-tester.com/">Mail Tester&lt;/a>. Salah satu contoh hasil pengecekan website tersebut sebagai berikut.&lt;/p>
&lt;p>&lt;img alt="Mail-Tester" loading="lazy" src="http://blog.pras.my.id/images/mail-tester.png">&lt;/p>
&lt;pre>&lt;code>Content:
[Text]
[HTML]
[Source]
SpamAssassin:
[Score]
The famous spam filter SpamAssassin. A score below -5 is considered spam.
Authentication:
We check if the server you are sending from is authenticated
[SPF]
Sender Policy Framework (SPF) is an email validation system designed to prevent email spam by detecting email spoofing, a common vulnerability, by verifying sender IP addresses.
[Sender ID]
Sender ID is like SPF, but it checks the FROM address, not the bounce address.
[DKIM]
DomainKeys Identified Mail (DKIM) is a method for associating a domain name to an email message, thereby allowing a person, role, or organization to claim some responsibility for the message.
[DMARC record]
A DMARC policy allows a sender to indicate that their emails are protected by SPF and/or DKIM, and give instruction if neither of those authentication methods passes. Please be sure you have a DKIM and SPF set before using DMARC.
[PTR record]
Reverse DNS lookup or reverse DNS resolution (rDNS) is the determination of a domain name that is associated with a given IP address. Some companies such as AOL will reject any message sent from a server without rDNS, so you must ensure that you have one. You cannot associate more than one domain name with a single IP address.
[A record]
We check if there is a mail server (A Record) behind your hostname.
Errors:
Checks whether your message is well formatted or not.
[Image alternate tag]
alt attributes provide a textual alternative to your images. It is a useful fallback for people suffering from sight problems and for cases where your images cannot be displayed.
[HTML elements]
Checks whether your message contains dangerous html elements such as javascript, iframes, embed content or applet.
[URL shortener]
Checks whether your message uses URL shortener systems.
[List-Unsubscribe header]
The List-Unsubscribe header is required if you send mass emails, it enables the user to easily unsubscribe from your mailing list.
[Blacklist]
Matches your server IP address against 22 of the most common ipv4 blacklists.
&lt;/code>&lt;/pre>
&lt;p>Untuk meningkatkan skor, kita bisa memperbaiki konfigurasi email server dengan SPF dan DKIM&lt;/p></description></item><item><title>Membuat Virtual Machine di FreeBSD dengan bhyve dan vm-bhyve</title><link>http://blog.pras.my.id/blogs/2016-03-22-membuat-virtual-machine-di-freebsd-dengan-bhyve-dan-vm-bhyve/</link><pubDate>Tue, 22 Mar 2016 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2016-03-22-membuat-virtual-machine-di-freebsd-dengan-bhyve-dan-vm-bhyve/</guid><description>&lt;p>Sejak FreeBSD 10.0-RELEASE, hypervisor bhyve (lisensi BSD) sudah menjadi bagian
dari &lt;em>base system&lt;/em>. Hypervisor adalah aplikasi yang bisa membuat dan
menjalankan &lt;em>virtual machine&lt;/em> atau yang biasa disebut &lt;em>guest&lt;/em> di dalam sebuah
sistem operasi. &lt;em>Guest&lt;/em> yang didukung oleh bhyve cukup banyak, termasuk
FreeBSD, OpenBSD, dan banyak distribusi Linux. Saat ini bhyve hanya mendukung
konsol serial dan tidak bisa menampilkan konsol grafik. Bhyve membutuhkan
prosesor baru yang mendukung Intel Extended Page Tables (EPT) atau AMD Rapid
Virtualization Indexing (RVI), yang dikenal juga sebagai Nested Page Tables
(NPT). Untuk Linux atau FreeBSD &lt;em>guest&lt;/em> dengan vCPU (virtualCPU) membutuhkan
dukungan VMX &lt;em>unrestricted mode&lt;/em> (UG). Cara termudah untuk mengecek dukungan
prosesor untuk bhyve adalah dengan menjalankan #dmesg# atau melihat isi
&lt;em>/var/run/dmesg.boot&lt;/em> untuk fitur &lt;strong>POPCNT&lt;/strong> di baris &lt;strong>Features&lt;/strong> dan &lt;strong>EPT&lt;/strong>
dan &lt;strong>UG&lt;/strong> di baris &lt;strong>VT-x&lt;/strong>. Panduan yang cukup lengkap untuk menggunakan
bhyve dapat diakses di &lt;a href="https://www.freebsd.org/doc/handbook/virtualization-host-bhyve.html">halaman
ini&lt;/a>&lt;/p></description></item><item><title>Re-Introduction to Python</title><link>http://blog.pras.my.id/blogs/2015-06-14-re-introduction-to-python/</link><pubDate>Sun, 14 Jun 2015 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-06-14-re-introduction-to-python/</guid><description>&lt;p>Python is one of the programming languages which can claim to be both &lt;strong>simple&lt;/strong> and &lt;strong>powerful&lt;/strong>.&lt;/p>
&lt;blockquote>
&lt;p>Python is an easy to learn, powerful programming language with efficient high-level data structures and a simple but effective approach to object oriented programming. Python&amp;rsquo;s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas in many platforms.&lt;/p>&lt;/blockquote>
&lt;p>&lt;strong>Guido van Rossum&lt;/strong>, the creator of the Python language, named the language after the BBC show &amp;ldquo;Monty Python&amp;rsquo;s Flying Circus&amp;rdquo;.&lt;/p></description></item><item><title>Playing with Ansible and FreeBSD</title><link>http://blog.pras.my.id/blogs/2015-06-08-playing-with-ansible-and-freebsd/</link><pubDate>Mon, 08 Jun 2015 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-06-08-playing-with-ansible-and-freebsd/</guid><description>&lt;p>By default, FreeBSD doesn&amp;rsquo;t install a python package in its standard distribution. So, we need to install python, either manually or using &lt;strong>ansible&lt;/strong> module.&lt;/p>
&lt;pre>&lt;code>ansible freebsd-host -m raw -a 'env ASSUME_ALWAYS_YES=YES pkg install python' -u root
&lt;/code>&lt;/pre>
&lt;p>Of course before we can use &lt;strong>ansible&lt;/strong> we have to install public key authentication and enable SSH to root user in FreeBSD host from controller machine. FreeBSD install python in different path than Linux machine, so we must set variable for the python interpreter, either in host file or variable files.&lt;/p></description></item><item><title>The End of Generation of Tinkerers</title><link>http://blog.pras.my.id/blogs/2015-04-11-the-end-of-generation-of-tinkerers/</link><pubDate>Sat, 11 Apr 2015 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-04-11-the-end-of-generation-of-tinkerers/</guid><description>&lt;h2 id="the-prologue">The Prologue&lt;/h2>
&lt;p>My college was the only college I know that gave the chance to its students to run the college network infrastructures. It encourages the students to study more outside their respective fields and share the knowledge in a community. Only a handful of people know that in the early days, the network infrastructure of my college, was built through the hands of its own students and the tradition to maintain it has been passed through the new generation of students.&lt;/p></description></item><item><title>Akuisisi Data Sensor LM35 dengan Arduino</title><link>http://blog.pras.my.id/blogs/2015-03-20-akuisisi-data-sensor-lm35-dengan-arduino/</link><pubDate>Fri, 20 Mar 2015 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-03-20-akuisisi-data-sensor-lm35-dengan-arduino/</guid><description>&lt;p>Ini adalah tulisan pertama di blog ini yang membahas tentang hardware dan yang pertama menggunakan bahasa Indonesia. Sensor temperatur LM35 (&lt;a href="http://www.ti.com/lit/ds/symlink/lm35.pdf">datasheet&lt;/a>) adalah sensor IC (Integrated Circuit) yang memberikan respon terhadap perubahan temperatur di sekitarnya dalam bentuk keluaran tegangan analog. Sensor temperatur LM35 bekerja pada tegangan 4 sampai 30V dan mempunyai respon linear 10mV/derajat Celcius pada rentang -55 sampai 150 derajat Celcius berdasarkan datasheet yang tersedia. Akuisisi data menggunakan sensor temperatur ini adalah percobaan sederhana yang bisa dikembangkan untuk perangkat &lt;a href="http://whatis.techtarget.com/definition/Internet-of-Things">Internet of Thing&lt;/a>. Garis besar percobaan ini adalah keluaran dari sensor LM35 dibaca oleh Arduino melalui pin input analog (&lt;strong>A0&lt;/strong>). Pin input analog Arduino mengeluarkan nilai dengan resolusi 10 bit untuk rentang 0 sampai 5V. Untuk mengetahui tegangan keluaran dari sensor LM35, diperlukan perhitungan berikut ini,&lt;/p></description></item><item><title>Percona Server 5.6 Installation on CentOS 6</title><link>http://blog.pras.my.id/blogs/2015-02-24-percona-server-5-6-installation-on-centos-6/</link><pubDate>Tue, 24 Feb 2015 08:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-02-24-percona-server-5-6-installation-on-centos-6/</guid><description>&lt;p>&lt;a href="https://www.percona.com/software/percona-server/ps-5.6">Percona Server 5.6&lt;/a> is the latest release of drop-in replacement for MySQL®. The new version offers all the improvements found in MySQL 5.6 Community Edition plus scalability, availability, backup, and security features found only in MySQL 5.6 Enterprise Edition, which requires a support contract from Oracle to access. Percona Server 5.6 is free, open source software which includes superior diagnostics and improved integration with other Percona software. In this documentation, I will show how to install &lt;strong>Percona Server 5.6&lt;/strong> on CentOS 6.&lt;/p></description></item><item><title>Beanstalkd Installation on CentOS 6</title><link>http://blog.pras.my.id/blogs/2015-02-24-beanstalkd-installation-on-centos-6/</link><pubDate>Tue, 24 Feb 2015 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-02-24-beanstalkd-installation-on-centos-6/</guid><description>&lt;p>&lt;a href="https://kr.github.io/beanstalkd/">Beanstalkd&lt;/a> is a simple, fast work queue. Its interface is generic, but was originally designed for reducing the latency of page views in high-volume web applications by running time-consuming tasks asynchronously. In this documentation, I will show how to install &lt;strong>Beanstalkd&lt;/strong> on CentOS 6.&lt;/p>
&lt;hr>
&lt;p>Install &lt;strong>Beanstalkd&lt;/strong> from &lt;strong>EPEL&lt;/strong> repository using &lt;strong>yum&lt;/strong>&lt;/p>
&lt;pre>&lt;code>sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
sudo yum install beanstalkd
&lt;/code>&lt;/pre>
&lt;p>Enable and start &lt;strong>Beanstalkd&lt;/strong> service&lt;/p>
&lt;pre>&lt;code>sudo chkconfig beanstalkd on
sudo service beanstalkd start
&lt;/code>&lt;/pre>
&lt;p>Reference: &lt;a href="https://kr.github.io/beanstalkd/download.html">https://kr.github.io/beanstalkd/download.html&lt;/a>&lt;/p></description></item><item><title>Sensu Installation on CentOS 6</title><link>http://blog.pras.my.id/blogs/2015-02-23-sensu-installation-on-centos-6/</link><pubDate>Mon, 23 Feb 2015 10:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-02-23-sensu-installation-on-centos-6/</guid><description>&lt;p>&lt;a href="http://sensuapp.org/">Sensu&lt;/a> is often described as the “monitoring router”. Essentially, Sensu takes the results of “check” scripts run across many systems, and if certain conditions are met; passes their information to one or more “handlers”. Checks are used, for example, to determine if a service like Apache is up or down. Checks can also be used to collect data, such as MySQL query statistics or Rails application metrics. Handlers take actions, using result information, such as sending an email, messaging a chat room, or adding a data point to a graph. There are several types of handlers, but the most common and most powerful is “pipe”, a script that receives data via standard input. Check and handler scripts can be written in any language, and the community repository continues to grow! In this documentation, I will show how to install &lt;strong>Sensu&lt;/strong> on CentOS 6.&lt;/p></description></item><item><title>InfluxDB Installation on CentOS 6</title><link>http://blog.pras.my.id/blogs/2015-02-23-influxdb-installation-on-centos-6/</link><pubDate>Mon, 23 Feb 2015 09:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-02-23-influxdb-installation-on-centos-6/</guid><description>&lt;p>&lt;a href="http://influxdb.com/">InfluxDB&lt;/a> is an open-source, distributed, time series database with no external dependencies. In this documentation, I will show how to install &lt;strong>InfluxDB&lt;/strong> on CentOS 6.&lt;/p>
&lt;hr>
&lt;p>Download &lt;strong>InfluxDB&lt;/strong>&lt;/p>
&lt;pre>&lt;code>wget https://s3.amazonaws.com/influxdb/influxdb-latest-1.x86_64.rpm
&lt;/code>&lt;/pre>
&lt;p>Install &lt;strong>InfluxDB&lt;/strong>&lt;/p>
&lt;pre>&lt;code>sudo rpm -ivh influxdb-latest-1.x86_64.rpm
&lt;/code>&lt;/pre>
&lt;p>Enable and start &lt;strong>InfluxDB&lt;/strong> service&lt;/p>
&lt;pre>&lt;code>sudo chkconfig influxdb on
sudo service influxdb start
&lt;/code>&lt;/pre>
&lt;p>Reference: &lt;a href="http://influxdb.com/download/">http://influxdb.com/download/&lt;/a>&lt;/p></description></item><item><title>Fluent Treasure Data (TD) Agent Installation on CentOS 6</title><link>http://blog.pras.my.id/blogs/2015-02-23-fluent-treasure-datatd-agent-installation-on-centos-6/</link><pubDate>Mon, 23 Feb 2015 08:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-02-23-fluent-treasure-datatd-agent-installation-on-centos-6/</guid><description>&lt;p>&lt;a href="https://www.fluentd.org/">Fluentd&lt;/a> is an open source data collector, which lets you unify the data collection and consumption for a better use and understanding of data. In this documentation, I will show how to install &lt;strong>fluentd&lt;/strong> (&lt;strong>td-agent&lt;/strong>) on CentOS 6.&lt;/p>
&lt;hr>
&lt;p>Pre-installation: increase number of maximum file descriptors&lt;/p>
&lt;pre>&lt;code>ulimit -n
sudo vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
root soft nofile unlimited
root hard nofile unlimited
sudo reboot
&lt;/code>&lt;/pre>
&lt;p>Pre-installation: network kernel optimization&lt;/p></description></item><item><title>Elasticsearch on CentOS 6</title><link>http://blog.pras.my.id/blogs/2015-02-23-elasticsearch-on-centos-6/</link><pubDate>Mon, 23 Feb 2015 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-02-23-elasticsearch-on-centos-6/</guid><description>&lt;p>&lt;a href="https://www.elasticsearch.org/overview/elasticsearch">Elasticsearch&lt;/a> is a distributed restful search and analytics. In this documentation, I will show how to install &lt;strong>Elasticsearch&lt;/strong> on CentOS 6.&lt;/p>
&lt;hr>
&lt;p>Install Oracle Java&lt;/p>
&lt;pre>&lt;code>wget --header &amp;quot;Cookie: oraclelicense=accept-securebackup-cookie&amp;quot; http://download.oracle.com/otn-pub/java/jdk/8u31-b13/server-jre-8u31-linux-x64.tar.gz
sudo mkdir /opt/jre
sudo tar zxf server-jre-8u31-linux-x64.tar.gz -C /opt/jre
sudo update-alternatives --install /usr/bin/java java /opt/jre/jdk1.8.0_31/bin/java 2000
sudo update-alternatives --install /usr/bin/javac javac /opt/jre/jdk1.8.0_31/bin/javac 2000
sudo update-alternatives --display java
sudo update-alternatives --display javac
&lt;/code>&lt;/pre>
&lt;p>Import &lt;strong>Elasticsearch&lt;/strong> GPG key&lt;/p>
&lt;pre>&lt;code>sudo rpm --import https://packages.elasticsearch.org/GPG-KEY-elasticsearch
&lt;/code>&lt;/pre>
&lt;p>Add &lt;strong>Elasticsearch&lt;/strong> repository&lt;/p></description></item><item><title>Varnish 4 on CentOS 6</title><link>http://blog.pras.my.id/blogs/2015-02-21-varnish-4-on-centos-6/</link><pubDate>Sat, 21 Feb 2015 12:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-02-21-varnish-4-on-centos-6/</guid><description>&lt;p>&lt;a href="https://www.varnish-cache.org/">Varnish Cache&lt;/a> is a web application accelerator also known as a caching HTTP reverse proxy. You install it in front of any server that speaks HTTP and configure it to cache the contents. Varnish Cache is really, really fast. It typically speeds up delivery with a factor of 300 - 1000x, depending on your architecture. In this documentation, I will show how to install Varnish 4 on CentOS 6.&lt;/p>
&lt;hr>
&lt;p>For first installation install &lt;strong>Varnish&lt;/strong> repository&lt;/p></description></item><item><title>RVM for Managing Ruby Version on CentOS 6</title><link>http://blog.pras.my.id/blogs/2015-02-21-rvm-for-managing-ruby-version-on-centos-6/</link><pubDate>Sat, 21 Feb 2015 11:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-02-21-rvm-for-managing-ruby-version-on-centos-6/</guid><description>&lt;p>&lt;a href="https://rvm.io/">RVM&lt;/a> is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gems. In this documentation I will show how to install RVM on CentOS 6.6.&lt;/p>
&lt;hr>
&lt;p>Install &lt;strong>Development Tools&lt;/strong>&lt;/p>
&lt;pre>&lt;code>sudo yum groupinstall &amp;quot;Development Tools&amp;quot;
&lt;/code>&lt;/pre>
&lt;p>Install &lt;strong>mpapis public key&lt;/strong>&lt;/p>
&lt;pre>&lt;code>sudo gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
&lt;/code>&lt;/pre>
&lt;p>or if failed&lt;/p>
&lt;pre>&lt;code>curl -sSL https://rvm.io/mpapis.asc | sudo gpg2 --import -
&lt;/code>&lt;/pre>
&lt;p>Install RVM for multiuser installation&lt;/p></description></item><item><title>Redis on CentOS 6</title><link>http://blog.pras.my.id/blogs/2015-02-21-redis-on-centos-6/</link><pubDate>Sat, 21 Feb 2015 10:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-02-21-redis-on-centos-6/</guid><description>&lt;p>&lt;a href="http://redis.io/">Redis&lt;/a> is an open source, BSD licensed, advanced key-value cache and store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets, sorted sets, bitmaps and hyperloglogs. In this documentation, I will show how to install &lt;strong>Redis&lt;/strong> on CentOS 6.&lt;/p>
&lt;hr>
&lt;p>Install &lt;strong>Development Tools&lt;/strong>&lt;/p>
&lt;pre>&lt;code>sudo yum groupinstall &amp;quot;Development Tools&amp;quot;
&lt;/code>&lt;/pre>
&lt;p>Download and extract latest Redis package from &lt;a href="http://redis.io/">http://redis.io/&lt;/a>
wget &lt;a href="http://download.redis.io/releases/redis-2.8.19.tar.gz">http://download.redis.io/releases/redis-2.8.19.tar.gz&lt;/a>
tar zxf redis-2.8.19.tar.gz
Go to redis directory and run make&lt;/p></description></item><item><title>Open Source Phusion Passenger Module for Nginx on CentOS 6</title><link>http://blog.pras.my.id/blogs/2015-02-21-open-source-phusion-passenger-module-for-nginx-on-centos-6/</link><pubDate>Sat, 21 Feb 2015 09:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-02-21-open-source-phusion-passenger-module-for-nginx-on-centos-6/</guid><description>&lt;p>&lt;a href="https://www.phusionpassenger.com/">Phusion Passenger&lt;/a> is a web server and application server for your web apps which built upon Ruby or NodeJS. In this documentation I will show how to install open source version of &lt;strong>Phusion Passenger&lt;/strong> on CentOS 6.6 using Ruby gem installation.&lt;/p>
&lt;hr>
&lt;p>Check your Ruby location&lt;/p>
&lt;pre>&lt;code>which ruby
/usr/local/rvm/rubies/ruby-2.1.5/bin/ruby
&lt;/code>&lt;/pre>
&lt;p>In this tutorial I assume your Ruby is installed using RVM
Install passenger using &lt;strong>gem&lt;/strong> command&lt;/p>
&lt;pre>&lt;code>gem install passenger -V
&lt;/code>&lt;/pre>
&lt;p>Install passenger module for nginx&lt;/p></description></item><item><title>MongoDB on CentOS 6</title><link>http://blog.pras.my.id/blogs/2015-02-21-mongodb-on-centos-6/</link><pubDate>Sat, 21 Feb 2015 08:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-02-21-mongodb-on-centos-6/</guid><description>&lt;p>&lt;a href="https://www.mongodb.org/">MongoDB&lt;/a> is the only database that harnesses the innovations of NoSQL (flexibility, scalability, performance) and builds on the foundation of relational databases (expressive query language, secondary indexes, strong consistency). In this documentation, I will show how to install MongoDB on CentOS 6.&lt;/p>
&lt;hr>
&lt;p>Add MongoDB repository to yum&lt;/p>
&lt;pre>&lt;code>sudo vi /etc/yum.repos.d/mongodb.repo
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1
&lt;/code>&lt;/pre>
&lt;p>Install &lt;strong>MongoDB&lt;/strong>&lt;/p>
&lt;pre>&lt;code>sudo yum install mongo-10gen mongo-10gen-server --exclude mongodb-org,mongodb-org-server
&lt;/code>&lt;/pre>
&lt;p>Add this to &lt;code>/etc/yum.conf&lt;/code> to prevent &lt;strong>MongoDB&lt;/strong> from being upgraded&lt;/p></description></item><item><title>Memcached on CentOS 6</title><link>http://blog.pras.my.id/blogs/2015-02-21-memcached-on-centos-6/</link><pubDate>Sat, 21 Feb 2015 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-02-21-memcached-on-centos-6/</guid><description>&lt;p>&lt;a href="http://memcached.org/">Memcached&lt;/a> is free &amp;amp; open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering. In this documentation I will show how to install &lt;strong>memcached&lt;/strong> using yum package manager with &lt;a href="https://www.atomicorp.com/">Atomicorp&lt;/a> repository.&lt;/p>
&lt;hr>
&lt;p>Install the latest Atomicorp repository from &lt;a href="http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/">http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/&lt;/a>&lt;/p></description></item><item><title>Start Your Own Documentation Blog</title><link>http://blog.pras.my.id/blogs/2015-01-09-start-your-own-documentation-blog/</link><pubDate>Fri, 09 Jan 2015 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2015-01-09-start-your-own-documentation-blog/</guid><description>&lt;p>I am trying to write again after some month was absent from touching any electronic notes (blogs). Actually I wanted to do it from a long time ago but I was afraid don&amp;rsquo;t have any material with qualities to be written. In reality, I realized that I have been encountering events that I must write about. After so long trying to make up my mind and gather my courage, I finally be able to put some ideas into my writing, starting with this re-introduction.&lt;/p></description></item><item><title>Upgrade Ghost</title><link>http://blog.pras.my.id/blogs/2014-08-25-upgrade-ghost/</link><pubDate>Mon, 25 Aug 2014 08:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-08-25-upgrade-ghost/</guid><description>&lt;p>I have run &lt;a href="https://ghost.org">Ghost&lt;/a> 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 &lt;a href="http://www.howtoinstallghost.com/how-to-update-ghost/">here&lt;/a>.&lt;/p>
&lt;hr>
&lt;h2 id="manually-upgrade-ghost">Manually upgrade Ghost&lt;/h2>
&lt;p>I usually use manual upgrade method because I don&amp;rsquo;t inspect the automatic scripts yet if it is compatible with my installation.&lt;/p>
&lt;pre>&lt;code># 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
&lt;/code>&lt;/pre>
&lt;hr>
&lt;h2 id="reference">Reference&lt;/h2>
&lt;p>&lt;a href="http://www.howtoinstallghost.com/how-to-update-ghost/">http://www.howtoinstallghost.com/how-to-update-ghost/&lt;/a>&lt;/p></description></item><item><title>Puppet Master-Agent Installation on FreeBSD</title><link>http://blog.pras.my.id/blogs/2014-08-25-puppet-master-agent-installation-on-freebsd/</link><pubDate>Mon, 25 Aug 2014 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-08-25-puppet-master-agent-installation-on-freebsd/</guid><description>&lt;p>&lt;a href="http://puppetlabs.com/">Puppet&lt;/a> 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, &lt;strong>a lazy sysadmin&lt;/strong>. 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.&lt;/p></description></item><item><title>Installing MySQL Server on FreeBSD</title><link>http://blog.pras.my.id/blogs/2014-07-02-installing-mysql-server-on-freebsd/</link><pubDate>Wed, 02 Jul 2014 12:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-07-02-installing-mysql-server-on-freebsd/</guid><description>&lt;h2 id="installation-using-freebsd-ports">Installation using FreeBSD ports&lt;/h2>
&lt;p>Login as root, then to make sure our server&amp;rsquo;s hostname can be identified locally we need to edit /etc/hosts.&lt;/p>
&lt;pre>&lt;code># ee /etc/hosts
::1 localhost localhost.example.com
127.0.0.1 localhost localhost.example.com
192.168.1.11 host.example.com
&lt;/code>&lt;/pre>
&lt;p>Install MySQL Server with following command.&lt;/p>
&lt;pre>&lt;code># cd /usr/ports/databases/mysql56-server
# make -D BUILD_OPTIMIZED install clean
# rehash
&lt;/code>&lt;/pre>
&lt;p>After installation finished, run script for installing main database and tables used by MySQL.&lt;/p>
&lt;pre>&lt;code># mysql_install_db --user=mysql –basedir=/usr/local/
&lt;/code>&lt;/pre>
&lt;p>Run following command to start MySQL daemon and create password for MySQL&amp;rsquo;s root. # mysqld_safe &amp;amp; # mysqladmin -u root password &amp;rsquo;localpassword&amp;rsquo; # mysqladmin -u root -h host.example.com password &amp;lsquo;remotepassword&amp;rsquo;&lt;/p></description></item><item><title>Installing Cyrus SASL Server on FreeBSD</title><link>http://blog.pras.my.id/blogs/2014-07-02-installing-cyrus-sasl-server-on-freebsd/</link><pubDate>Wed, 02 Jul 2014 11:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-07-02-installing-cyrus-sasl-server-on-freebsd/</guid><description>&lt;h2 id="instalation-using-freebsd-ports">Instalation using FreeBSD ports&lt;/h2>
&lt;p>Login as root then enter ports directory of Cyrus SASL and run following command.&lt;/p>
&lt;pre>&lt;code># cd /usr/ports/security/cyrus-sasl2-saslauthd
# make config ; make install clean
# rehash
&lt;/code>&lt;/pre>
&lt;p>Create file &lt;em>smtpd.conf&lt;/em> in directory &lt;em>/usr/local/lib/sasl2/&lt;/em>. # ee /usr/local/lib/sasl2/smtpd.conf&lt;/p>
&lt;p>Then add following lines.&lt;/p>
&lt;pre>&lt;code>pwcheck_method: saslauthd
mech_list: plain login
&lt;/code>&lt;/pre>
&lt;p>Edit file &lt;em>rc.conf&lt;/em> so that SASL Authentification server can start at boot time.&lt;/p>
&lt;pre>&lt;code># ee /etc/rc.conf
saslauthd_enable=&amp;quot;YES&amp;quot;
saslauthd_flags=&amp;quot;-a pam&amp;quot;
&lt;/code>&lt;/pre>
&lt;p>if you want to use other authentication mechanism such as LDAP, use following flags.&lt;/p></description></item><item><title>Installing Apache HTTP Server on FreeBSD</title><link>http://blog.pras.my.id/blogs/2014-07-02-installing-apache-http-server-on-freebsd/</link><pubDate>Wed, 02 Jul 2014 10:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-07-02-installing-apache-http-server-on-freebsd/</guid><description>&lt;h2 id="installation">Installation&lt;/h2>
&lt;h3 id="installation-using-freebsd-ports">Installation using FreeBSD ports&lt;/h3>
&lt;p>Login as root, then to make sure our server&amp;rsquo;s hostname can be identified locally we need to edit &lt;em>/etc/hosts&lt;/em>.&lt;/p>
&lt;pre>&lt;code># ee /etc/hosts
::1 localhost localhost.example.com
127.0.0.1 localhost localhost.example.com
192.168.1.11 host.example.com
&lt;/code>&lt;/pre>
&lt;p>Install Apache HTTP Server using following command, choose default for options, select OK.&lt;/p>
&lt;pre>&lt;code># cd /usr/ports/www/apache22
# make config; make install clean
# rehash
&lt;/code>&lt;/pre>
&lt;p>After installation proses finished, change Apache configuration file.&lt;/p>
&lt;pre>&lt;code># ee /usr/local/etc/apache22/httpd.conf
ServerAdmin you@example.com
ServerName host.example.com:80
&lt;/code>&lt;/pre>
&lt;p>To enable SSL support, uncomment following line.&lt;/p></description></item><item><title>Heartbeat Using Different UDP Ports for Different Clusters on Same Network</title><link>http://blog.pras.my.id/blogs/2014-07-02-heartbeat-using-different-udp-ports-for-different-clusters-on-same-network/</link><pubDate>Wed, 02 Jul 2014 09:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-07-02-heartbeat-using-different-udp-ports-for-different-clusters-on-same-network/</guid><description>&lt;p>&lt;strong>Heartbeat&lt;/strong> 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.(&lt;a href="http://linux-ha.org/wiki/Heartbeat">Heartbeat - Linux-HA&lt;/a>)&lt;/p>
&lt;p>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.&lt;/p></description></item><item><title>Git Tutorial</title><link>http://blog.pras.my.id/blogs/2014-07-02-git-tutorial/</link><pubDate>Wed, 02 Jul 2014 08:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-07-02-git-tutorial/</guid><description>&lt;p>&lt;strong>Git&lt;/strong> 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.&lt;/p>
&lt;p>Distributed version control system does not necessarily have a central server which stores data.&lt;/p>
&lt;p>User can copy existing repository (&lt;strong>cloning&lt;/strong>).&lt;/p>
&lt;p>Every clone contains full history of the collection of files and a clone repository has the same functionality as the original repository.&lt;/p>
&lt;p>Users with sufficient authorization can &lt;strong>push&lt;/strong> changes from their local repositories to remote repositories, they can also &lt;strong>fetch&lt;/strong> or &lt;strong>pull&lt;/strong> changes from other repositories to their local Git repository.&lt;/p></description></item><item><title>DRBD: Extend DRBD Disk Online</title><link>http://blog.pras.my.id/blogs/2014-07-02-drbd-extend-drbd-disk-online/</link><pubDate>Wed, 02 Jul 2014 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-07-02-drbd-extend-drbd-disk-online/</guid><description>&lt;p>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.&lt;/p>
&lt;ul>
&lt;li>The backing device must be managed by a logical volume manager such as LVM&lt;/li>
&lt;li>The resource must currently be in the Connected connection state.&lt;/li>
&lt;/ul>
&lt;p>First, we need to grow the backing device on both nodes and make sure only one node in Primary node.&lt;/p></description></item><item><title>SMTP: Debugging SMTP with TLS/SSL and Auth</title><link>http://blog.pras.my.id/blogs/2014-07-01-smtp-debugging-smtp-with-tlsssl-and-auth/</link><pubDate>Tue, 01 Jul 2014 13:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-07-01-smtp-debugging-smtp-with-tlsssl-and-auth/</guid><description>&lt;p>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.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>encode your login information in base64, the following perl command which
requires MIME::Base64 will do encoding&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" role="region" aria-label="bash code 1" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">perl -MMIME::Base64 -e &lt;span class="s1">&amp;#39;print encode_base64(&amp;#34;\000your_username\000your_password&amp;#34;)&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># example output&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># AHlvdXJfdXNlcm5hbWUAeW91cl9wYXNzd29yZA==&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>connect to smtp server&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" role="region" aria-label="bash code 2" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># normal non-secured SMTP&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ telnet smtp.yourdomain.com &lt;span class="m">25&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># TLS connection, check STARTTLS support with EHLO command&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ telnet smtp.yourdomain.com &lt;span class="m">25&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="m">220&lt;/span> SMTP banner
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EHLO smtp.yourdomain.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="m">250&lt;/span> SMTP banner
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">250-smtp.yourdomain.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">250-PIPELINING
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">250-SIZE &lt;span class="m">36360000&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">250-VRFY
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">250-ETRN
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">250-STARTTLS
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">250-ENHANCEDSTATUSCODES
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">250-8BITMIME
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="m">250&lt;/span> DSN
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">quit
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ openssl s_client -starttls smtp -crlf -connect smtp.yourdomain.com:25
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># SSL connection&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ openssl s_client -crlf -connect smtp.yourdomain.com:465&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>check AUTH support with EHLO command&lt;/p></description></item><item><title>LVM: Adding New Physical Volume to Volume Group</title><link>http://blog.pras.my.id/blogs/2014-07-01-lvm-adding-new-physical-volume-to-volume-group/</link><pubDate>Tue, 01 Jul 2014 12:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-07-01-lvm-adding-new-physical-volume-to-volume-group/</guid><description>&lt;p>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. (&lt;a href="http://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)">Wikipedia&lt;/a>)&lt;/p>
&lt;h2 id="schema-new-device-devsda">schema: new device /dev/sda&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>create needed partitions, label them with 8e (Linux LVM)&lt;/p>
&lt;pre>&lt;code># fdisk /dev/sda
&lt;/code>&lt;/pre>
&lt;/li>
&lt;li>
&lt;p>format partitons&lt;/p>
&lt;pre>&lt;code># mkfs.ext4 /dev/sda1
&lt;/code>&lt;/pre>
&lt;/li>
&lt;li>
&lt;p>create physical volume&lt;/p>
&lt;pre>&lt;code># pvcreate /dev/sda1
&lt;/code>&lt;/pre>
&lt;/li>
&lt;li>
&lt;p>extend existing volume group&lt;/p></description></item><item><title>iSCSI+LVM: Automatically Enable Volume Group Contain iSCSI Disk Physical Volume</title><link>http://blog.pras.my.id/blogs/2014-07-01-iscsilvm-automatically-enable-volume-group-contain-iscsi-disk-physical-volume/</link><pubDate>Tue, 01 Jul 2014 11:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-07-01-iscsilvm-automatically-enable-volume-group-contain-iscsi-disk-physical-volume/</guid><description>&lt;p>When using iSCSI and LVM, sometimes we have to manually enable iSCSI disk that used as a physical volume in LVM. This is because LVM service is started earlier than iSCSI service so the iSCSI disk containing the physical volume is not present yet. Solution to this problem is to enable lvmetad in &lt;strong>/etc/lvm/lvm.conf&lt;/strong>. The lvmetad is &amp;ldquo;LVM metadata daemon&amp;rdquo; that acts as in-memory cache of LVM metadata gathered from devices as they appear in the system. Whenever a block device appears and has PV label on it, it is automatically scanned via an udev rule. This update the lvmetad daemon with the LVM metadata found. Once the VG is complete (all the PVs making up the VG are present), the VG is activated. The lvmetad daemon is required for this LVM event-based autoactivation to work and the iSCSI disk must be present in the system after boot time.&lt;/p></description></item><item><title>Installing Postfix with Auth SASL and LDAP Support on FreeBSD</title><link>http://blog.pras.my.id/blogs/2014-07-01-installing-postfix-with-auth-sasl-and-ldap-support-on-freebsd/</link><pubDate>Tue, 01 Jul 2014 10:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-07-01-installing-postfix-with-auth-sasl-and-ldap-support-on-freebsd/</guid><description>&lt;p>Install packages using FreeBSD port.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Install postfix&lt;/p>
&lt;pre>&lt;code># Options for postfix-2.11.0,1
_OPTIONS_READ=postfix-2.11.0,1
_FILE_COMPLETE_OPTIONS_LIST=BDB CDB INST_BASE LDAP_SASL LMDB MYSQL NIS OPENLDAP PCRE PGSQL SASL2 SPF SQLITE TEST TLS VDA DOVECOT DOVECOT2 SASLKRB5 SASLKMIT
OPTIONS_FILE_SET+=BDB
OPTIONS_FILE_SET+=CDB
OPTIONS_FILE_UNSET+=INST_BASE
OPTIONS_FILE_SET+=LDAP_SASL
OPTIONS_FILE_UNSET+=LMDB
OPTIONS_FILE_UNSET+=MYSQL
OPTIONS_FILE_UNSET+=NIS
OPTIONS_FILE_SET+=OPENLDAP
OPTIONS_FILE_SET+=PCRE
OPTIONS_FILE_UNSET+=PGSQL
OPTIONS_FILE_SET+=SASL2
OPTIONS_FILE_UNSET+=SPF
OPTIONS_FILE_UNSET+=SQLITE
OPTIONS_FILE_SET+=TEST
OPTIONS_FILE_SET+=TLS
OPTIONS_FILE_UNSET+=VDA
OPTIONS_FILE_UNSET+=DOVECOT
OPTIONS_FILE_UNSET+=DOVECOT2
OPTIONS_FILE_UNSET+=SASLKRB5
OPTIONS_FILE_UNSET+=SASLKMIT
&lt;/code>&lt;/pre>
&lt;/li>
&lt;li>
&lt;p>install openldap&lt;/p>
&lt;pre>&lt;code># Options for openldap-client-2.4.38
_OPTIONS_READ=openldap-client-2.4.38
_FILE_COMPLETE_OPTIONS_LIST=FETCH
OPTIONS_FILE_UNSET+=FETCH
&lt;/code>&lt;/pre>
&lt;/li>
&lt;li>
&lt;p>install cyrus-sasl2&lt;/p>
&lt;pre>&lt;code># Options for cyrus-sasl-2.1.26_4
_OPTIONS_READ=cyrus-sasl-2.1.26_4
_FILE_COMPLETE_OPTIONS_LIST=ALWAYSTRUE AUTHDAEMOND KEEP_DB_OPEN OBSOLETE_CRAM_ATTR BDB MYSQL PGSQL SQLITE2 SQLITE3 CRAM DIGEST LOGIN NTLM OTP PLAIN SCRAM
OPTIONS_FILE_UNSET+=ALWAYSTRUE
OPTIONS_FILE_SET+=AUTHDAEMOND
OPTIONS_FILE_UNSET+=KEEP_DB_OPEN
OPTIONS_FILE_SET+=OBSOLETE_CRAM_ATTR
OPTIONS_FILE_UNSET+=BDB
OPTIONS_FILE_UNSET+=MYSQL
OPTIONS_FILE_UNSET+=PGSQL
OPTIONS_FILE_UNSET+=SQLITE2
OPTIONS_FILE_UNSET+=SQLITE3
OPTIONS_FILE_SET+=CRAM
OPTIONS_FILE_SET+=DIGEST
OPTIONS_FILE_SET+=LOGIN
OPTIONS_FILE_SET+=NTLM
OPTIONS_FILE_SET+=OTP
OPTIONS_FILE_SET+=PLAIN
OPTIONS_FILE_SET+=SCRAM
&lt;/code>&lt;/pre>
&lt;/li>
&lt;li>
&lt;p>install cyrus-sasl2-saslauthd&lt;/p></description></item><item><title>FreeBSD Check TCP/UDP Open Port or Services</title><link>http://blog.pras.my.id/blogs/2014-07-01-freebsd-check-tcpudp-open-port-or-services/</link><pubDate>Tue, 01 Jul 2014 09:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-07-01-freebsd-check-tcpudp-open-port-or-services/</guid><description>&lt;p>In this short tutorial I will show how to check TCP/UDP open port or services in FreeBSD box. For checking open port or services which uses port in FreeBSD simply issue the following commands.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>check TCP connection&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" role="region" aria-label="tcsh code 1" class="chroma">&lt;code class="language-tcsh" data-lang="tcsh">&lt;span class="line">&lt;span class="cl">sockstat -Ptcp&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>check UDP connection&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" role="region" aria-label="tcsh code 2" class="chroma">&lt;code class="language-tcsh" data-lang="tcsh">&lt;span class="line">&lt;span class="cl">sockstat -Pudp&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Combine with &lt;strong>grep&lt;/strong> to search port used by specific service or service which
using specific port.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>use grep to get service or port&lt;/p></description></item><item><title>DRBD: Troubleshooting and Error Recovery of Hard Drive Failure or Replacement</title><link>http://blog.pras.my.id/blogs/2014-07-01-drbd-troubleshooting-and-error-recovery-of-hard-drive-failure-or-replacement/</link><pubDate>Tue, 01 Jul 2014 08:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-07-01-drbd-troubleshooting-and-error-recovery-of-hard-drive-failure-or-replacement/</guid><description>&lt;p>&lt;strong>DRBD&lt;/strong> refers to block devices designed as a building block to form high availability cluster. This is done by mirroring a whole block device via an assigned network. DRBD can be understood as network based RAID-1. (&lt;a href="http://www.drbd.org/">DRBD&lt;/a>)&lt;/p>
&lt;p>Sometimes we have a disk failure on hard drive which contains DRBD backing device. The following steps can be used to replace or recover the failed drive.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>detach drbd resource from broken backing storage&lt;/p></description></item><item><title>DRBD: Manual Split Brain Recovery</title><link>http://blog.pras.my.id/blogs/2014-07-01-drbd-manual-split-brain-recovery/</link><pubDate>Tue, 01 Jul 2014 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-07-01-drbd-manual-split-brain-recovery/</guid><description>&lt;p>Split Brain in DRBD is a condition where each host think that resource in another host is outdated, thus synchronization won&amp;rsquo;t be occured. This condition often occurs because of network or power failure which is indicated by these variables:&lt;/p>
&lt;ul>
&lt;li>log: Split-Brain detected, dropping connection&lt;/li>
&lt;li>connection-state: StandAlone/WFConnection&lt;/li>
&lt;/ul>
&lt;p>To manually recover the cluster from split brain condition, the following steps is required.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>on victim connection state must be StandAlone&lt;/p>
&lt;pre>&lt;code># drbdadm disconnect &amp;lt;resource&amp;gt;
&lt;/code>&lt;/pre>
&lt;/li>
&lt;li>
&lt;p>set victim as secondary&lt;/p></description></item><item><title>Find A Virtual Machine by MAC Address with VSphere Client and PowerCLI</title><link>http://blog.pras.my.id/blogs/2014-03-12-find-a-virtual-machine-by-mac-address-with-vsphere-client-and-powercli/</link><pubDate>Wed, 12 Mar 2014 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-03-12-find-a-virtual-machine-by-mac-address-with-vsphere-client-and-powercli/</guid><description>&lt;p>It is usual task to find someone computer by its MAC address when there is an issue related to his computer in the local network. The common case is IP conflict or network abuse. But, if the MAC Address shows that machine is one of many scattered VMware virtual machine out there, how do we find it?&lt;/p>
&lt;h2 id="vsphere-client">vSphere Client&lt;/h2>
&lt;p>If you have an VMware ESX or ESXi server, &lt;a href="https://pubs.vmware.com/vsphere-4-esx-vcenter/index.jsp?topic=/com.vmware.vsphere.installclassic.doc_41/common/install/t_down_client.html">vSphere Client&lt;/a> is tool to manage your virtual machines from remote computer. But, vSphere Client cannot tell the MAC Address of virtual machines from version 10 or higher and to find virtual machine based on MAC Address we must open the virtual machine Setting one by one. It is still possible when there are few virtual, but it is exhausting when we have many virtual machine.&lt;/p></description></item><item><title>Installing Zimbra Collaboration Server 8 FOSS on CentOS 6.5</title><link>http://blog.pras.my.id/blogs/2014-02-27-installing-zimbra-collaboration-server-8-foss-on-centos-6-5/</link><pubDate>Thu, 27 Feb 2014 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-02-27-installing-zimbra-collaboration-server-8-foss-on-centos-6-5/</guid><description>&lt;p>&lt;a href="http://www.zimbra.com/">Zimbra&lt;/a> is a well known collaboration suite which includes email, calendaring, file sharing, activity streams, social communities and more. The most popular product from Zimbra is Zimbra Collaboration Server. Zimbra Collaboration Server comes with two version: Network Edition and Open Source Edition (FOSS). This documentation shows a simple way to install Zimbra Collaboration Server Open Source Edition in CentOS 6.5.&lt;/p>
&lt;p>&lt;img alt="Zimbra Logo" loading="lazy" src="http://blog.pras.my.id/images/zimbrs.svg">&lt;/p>
&lt;h2 id="getting-started">Getting Started&lt;/h2>
&lt;p>Prepare the system&lt;/p>
&lt;pre>&lt;code># yum update
&lt;/code>&lt;/pre>
&lt;p>Disable SELinux&lt;/p></description></item><item><title>Quantum Espresso 5.0.3 Using Intel Math Kernel Library 11.0 Optimization</title><link>http://blog.pras.my.id/blogs/2014-02-19-quantum-espresso-5-0-3-using-intel-math-kernel-library-11-0-optimization/</link><pubDate>Wed, 19 Feb 2014 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-02-19-quantum-espresso-5-0-3-using-intel-math-kernel-library-11-0-optimization/</guid><description>&lt;p>&lt;a href="http://www.quantum-espresso.org/">Quantum Espresso&lt;/a> is a software for electronic-structure calculations and materials modeling at the nanoscale. The installation of Quantum Espresso is quite easy because it includes external libraries which it needs. But we are encouraged to install Quantum Espresso using our own machine optimized external libraries such as &lt;a href="http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms">Basic Linear Algebra Subprograms (BLAS)&lt;/a>, &lt;a href="http://en.wikipedia.org/wiki/LAPACK">Linear Algebra Package (LAPACK)&lt;/a>, &lt;a href="http://en.wikipedia.org/wiki/ScaLAPACK">Scalable LAPACK (SCALAPACK)&lt;/a>, and &lt;a href="http://en.wikipedia.org/wiki/FFTW">Fastest Fourier Transform in the West (FFTW)&lt;/a>.&lt;/p>
&lt;h2 id="external-libraries">External Libraries&lt;/h2>
&lt;p>There are several repositories or development teams which provide external libraries. For example is &lt;a href="http://netlib.org/">Netlib&lt;/a> which provides &lt;a href="http://netlib.org/blas/">BLAS&lt;/a>, &lt;a href="http://netlib.org/lapack/">LAPACK&lt;/a>, and &lt;a href="http://netlib.org/scalapack/">SCALAPACK&lt;/a>. But, for machines with Intel processor, maybe the best external libraries out there is &lt;a href="http://software.intel.com/en-us/intel-mkl">Intel® Math Kernel Library&lt;/a> which has a non-commercial version as standalone or included in Intel® Parallel Studio XE 2013 for Linux that can be downloaded in &lt;a href="http://software.intel.com/en-us/non-commercial-software-development">Intel Non-Commercial Software Development&lt;/a>. Intel® Math Kernel Library provides BLAS, LAPACK, SCALAPACK, and even FFTW interfaces.&lt;/p></description></item><item><title>Installing Icinga on Scientific Linux 6.4</title><link>http://blog.pras.my.id/blogs/2014-02-12-installing-icinga-on-scientific-linux-6-4/</link><pubDate>Wed, 12 Feb 2014 08:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-02-12-installing-icinga-on-scientific-linux-6-4/</guid><description>&lt;p>&lt;a href="https://www.icinga.org/">Icinga&lt;/a> is a well-known server or &lt;a href="http://en.wikipedia.org/wiki/Network_monitoring">network monitoring&lt;/a> that runs in many Unix/Linux distribution. Server/Network monitoring is an essential part of &lt;a href="http://en.wikipedia.org/wiki/Network_operations_center">Network Operations Center&lt;/a> because by monitoring network engineers can always get the feedback and status from network and production servers. This is a simple documentation of Icinga installation in Scientific Linux 6.4 server.&lt;/p>
&lt;h2 id="getting-started">Getting started&lt;/h2>
&lt;p>Before we install icinga, it best to keep our system updated.&lt;/p>
&lt;pre>&lt;code># yum update
&lt;/code>&lt;/pre>
&lt;p>Search icinga package using &lt;strong>yum search&lt;/strong> in &lt;em>RPMForge&lt;/em> repository.&lt;/p></description></item><item><title>Installing Cacti on Scientific Linux 6.4</title><link>http://blog.pras.my.id/blogs/2014-02-12-installing-cacti-on-scientific-linux-6-4/</link><pubDate>Wed, 12 Feb 2014 07:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-02-12-installing-cacti-on-scientific-linux-6-4/</guid><description>&lt;p>&lt;a href="http://www.cacti.net/">Cacti&lt;/a> is a network graphic monitoring tools which used the potential of &lt;a href="http://oss.oetiker.ch/rrdtool/">RRDTool&lt;/a>. RRDTool is a data logging and graphing system for time series data. Cacti can show us a real time performance of network or servers which make this software become one of the most popular open source monitoring software.
&lt;img alt="Cacti Logo" loading="lazy" src="https://www.cacti.net/images/cacti_banner.png">&lt;/p>
&lt;h2 id="getting-started">Getting Started&lt;/h2>
&lt;p>Always update your box before we install new software.&lt;/p>
&lt;pre>&lt;code># yum update
&lt;/code>&lt;/pre>
&lt;p>Install dependencies for cacti.&lt;/p></description></item><item><title>Installing Postfix and Dovecot on CentOS 6.5</title><link>http://blog.pras.my.id/blogs/2014-02-09-installing-postfix-and-dovecot-on-centos-6-5/</link><pubDate>Sun, 09 Feb 2014 09:00:00 +0000</pubDate><guid>http://blog.pras.my.id/blogs/2014-02-09-installing-postfix-and-dovecot-on-centos-6-5/</guid><description>&lt;p>Hello, I want to share a documentation how to setup a mail server using CentOS 6.5 using &lt;a href="http://www.postfix.org/">Postfix&lt;/a> as &lt;a href="http://tools.ietf.org/html/rfc5321">SMTP&lt;/a> server and &lt;a href="http://www.dovecot.org/">Dovecot&lt;/a> as &lt;a href="http://tools.ietf.org/html/rfc3501">IMAP&lt;/a>/&lt;a href="http://tools.ietf.org/html/rfc1939">POP3&lt;/a> server. Postfix is a well known &lt;a href="http://en.wikipedia.org/wiki/Message_transfer_agent">Message Transfer Agent&lt;/a> that mostly used today and Dovecot is also one of the widely used &lt;a href="http://en.wikipedia.org/wiki/Email_client">Mail User Agent&lt;/a>.&lt;/p>
&lt;h2 id="preparing-the-machine">Preparing The Machine&lt;/h2>
&lt;p>In this documentation we use a CentOS 6.5 server and before we start, let&amp;rsquo;s update the system.&lt;/p>
&lt;pre>&lt;code># yum update
&lt;/code>&lt;/pre>
&lt;p>A mail server needs to have a MX record in its DNS, so make sure we have that. It is also a good thing to set the PTR record pointing to our domain too.&lt;/p></description></item><item><title>Installing Nginx on CentOS 6.5</title><link>http://blog.pras.my.id/blogs/2014-02-09-installing-nginx-on-centos-6-5/</link><pubDate>Sun, 09 Feb 2014 08:00:00 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2014-02-09-installing-nginx-on-centos-6-5/</guid><description>&lt;p>CentOS community now works together with Redhat alongside Fedora. It&amp;rsquo;s good
news. So, we can hope to get a better software and support for next release of
our beloved CentOS. As one of Linux (CentOS) fan, I want to share my experience
installing nginx (engine-x) in CentOS 6.5. My VPS was installed as minimal
server and then I added new packages, such as &amp;ldquo;Development tools&amp;rdquo; group and new
repos (EPEL, CentALT).&lt;/p></description></item><item><title>Installing BIND DNS Server on CentOS 6.5</title><link>http://blog.pras.my.id/blogs/2014-02-09-installing-bind-dns-server-on-centos-6-5/</link><pubDate>Sun, 09 Feb 2014 07:00:00 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2014-02-09-installing-bind-dns-server-on-centos-6-5/</guid><description>&lt;p>When we rent a &lt;a href="http://en.wikipedia.org/wiki/Virtual_private_server">VPS&lt;/a>, we
will get a public &lt;a href="http://en.wikipedia.org/wiki/IP_address">IP address&lt;/a> so we
can access our VPS from anywhere in this world. But, sometimes we want a better
way to access our VPS using &lt;a href="http://en.wikipedia.org/wiki/Domain_name">Domain
Name&lt;/a>. We will have to rent a domain
name from a &lt;a href="http://en.wikipedia.org/wiki/Domain_name_registrar">Domain Name
Registrar&lt;/a> and then set up
our &lt;a href="http://en.wikipedia.org/wiki/Name_server">Name server&lt;/a> so that our domain
name refer to our IP address. There is usually an easier way by using our
registrar control panel to set up &lt;a href="http://en.wikipedia.org/wiki/List_of_DNS_record_types">NS
records&lt;/a>. But, if you
still want to set up your own Name server, I hope this documentation will be
useful for you.&lt;/p></description></item><item><title>Final Project</title><link>http://blog.pras.my.id/blogs/2014-01-19-final-project/</link><pubDate>Sun, 19 Jan 2014 07:00:00 +0700</pubDate><guid>http://blog.pras.my.id/blogs/2014-01-19-final-project/</guid><description>&lt;p>I have reached the eight semester in my undergraduate study and it means this
semester I have to finish a final project (Tugas Akhir, ID) as a requirement to
graduate. Actually I don&amp;rsquo;t really into my final project&amp;rsquo;s topic. There are many
factors behind it. In the new curriculum, my department decide to give a final
project to a team consist of two students. This is a good news because the
possibility of student who will graduate is increased. But, this is somewhat a
setback for me. I don&amp;rsquo;t usually work in a team and for my final project I want
to do a final project which is a original, only for me, my own final project.
The requirement that a final project must be done by a team makes me don&amp;rsquo;t feel
that this is really my own final project.&lt;/p></description></item></channel></rss>