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. ##Let’s start… ###Puppet benefits:
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 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 you@example.com
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.