Vi/VIM
To insert characters on the beginning of a line. Example, insert // from line 1 to 10
:1,10s!^!//!
Sample in creating folding in vim. Insert #{{{ text here #}}} provided everything was properly setup on vimrc
~/workspace/puppetworks $ cat site.pp
node 'chrisp.lab.local' {#{{{
}#}}}
pressing zc will close the folded texts
+-- 6 lines: node 'chrisp.lab.local' {#----------------------------------------------------------------------------
ref: http://www.linux.com/learn/tutorials/442438-vim-tips-folding-fun
Separating logs per hostname on a Central rsyslog server
Under /etc/rsyslog.conf append
$FileCreateMode 0655
$DirCreateMode 0755
$Umask 0022
$template default,"/srv/logs/%HOSTNAME%/%$now%.log"
*.* ?default
this will create directories under /srv/logs/
Apology Accepted!!!
Vmware apologizes for technical difficulties on the recent webcast Technology Day Online. It looks like the webcast provider was caught off guard on the situation. To compensate, VMware will be sending me a USB memory stick containing all of the materials presented on the said event.
Well.. apology accepted!!!!! :)
Our Samsung LCD TV retired
Our Samsung LCD TV retired after exactly 3 yrs of service. Bad thing is that it is already out of warranty. Yesterday the screen suddenly turns to white that you can barely see the images.
sed Galore
Find and replace string recursively
find /home/penoycentral/whichfolder -type f -print0| xargs -0 sed -i 's/oldstring/newstring/g'
If you want to make sure that you are changing which, use the old grep first
find /home/penoycentral/whichfolder -type f -print0| xargs -0 grep -i oldstring
Example Problem: Change /etc/bind to /var/named/master in named.conf
Just print what will be changed
sed -n 's/\/etc\/bind/\/var\/named\/master/p' named.conf
to change:
sed -i 's/\/etc\/bind/\/var\/named\/masterr/g' named.conf
Change double qoute to single qoute
sed -i "s/[\"]/\'/g" some-file.pp
Referrence:
http://stackoverflow.com/questions/1583219/awk-sed-how-to-do-a-recursive-find-replace-of-a-string
How to check DNS change global Propagation
DNS change progation is one of sysads problem. After a dns record change, nslookup result will differ depending on which region you are in.
Check your DNS global progation
http://www.whatsmydns.net/
Mercurial hgwebdir on CentOS 6
Note this setup is unsecured and just for the purpose of having my own lab svn repo.
Install mercurial on your server
yum install mercurial
Setup the mercurial site on apache
mkdir /var/www/cgi-hg
cp /usr/share/doc/mercurial-1.4/hgwebdir.cgi /var/www/cgi-hg/
chmod +x /var/www/cgi-hg/hgwebdir.cgi
Create the hgweb.config
/var/www/cgi-hg/hgweb.config
[paths]
#VIRTUAL_PATH = /REAL/PATH
#myproject = myproject
lab = /srv/hg
Reload apache
service httpd reload
Make sure everything has the right permission on selinux or you can temporarily disable selinux
Your site now is accessible thru http://servername/hg
To test push functionality,you might try to disable ssl and allow push to all
/srv/hg/.hg/hgrc
[web]
allow_push = *
push_ssl = false
Ref:
http://mercurial.selenic.com/wiki/RHEL4HgWebDirSetup
http://mercurial.selenic.com/wiki/PublishingRepositories
Quick iptables gateway setup
eth0 - with internet connection as they say
eth2 - local network
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth2 -j ACCEPT
Quick mail sending test
penoy@fedora:~$ mail -s "test sending mail from nix server" penoy@example.com < /dev/null
Port forwarding to a different IP:port using iptables
sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport 3129 -j DNAT --to-destination ip-address:3128
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -L
iptables -t nat -L -n -v
iptables-save
Puppet starting the service before package install
Here's an example of a simple manifest file that will install a package (ex. apache) and will ensure that that the service was started after install
package {'httpd':
ensure => installed,
source => '/var/tmp/httpd-2.2.3-53.el5.centos.i386.rpm',
}
service {'httpd':
ensure => running,
enable => true,
hasstatus => true,
hasrestart => true,
}
Seems legit. Let's apply the manifest
[root@learn tmp]# puppet apply httpd.install.pp
err: /Stage[main]//Service[httpd]/ensure: change from stopped to running failed: Could not start Service[httpd]: Execution of '/sbin/service httpd start' returned 1: at /var/tmp/httpd.install.pp:11
notice: /Stage[main]//Package[httpd]/ensure: created
notice: Finished catalog run in 31.04 seconds
hmmm.. it seems that puppet was starting the service before the install. Let's modify the file
package { 'httpd':
ensure => installed,
source => '/var/tmp/httpd-2.2.3-53.el5.centos.i386.rpm',
}
service { 'httpd':
require => Package['httpd'],
ensure => running,
enable => true,
hasstatus => true,
hasrestart => true,
}
Now let's apply the new manifest file
[root@learn tmp]# puppet apply httpd.install.pp
notice: /Stage[main]//Package[httpd]/ensure: created
notice: /Stage[main]//Service[httpd]/ensure: ensure changed 'stopped' to 'running'
notice: Finished catalog run in 34.10 seconds
[root@learn tmp]# chkconfig --list |grep httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
pe-httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@learn tmp]# rpm -qa |grep httpd
pe-httpd-2.2.3-17.pe.el5
pe-httpd-passenger-2.2.11-11.pe.el5
httpd-2.2.3-63.el5.centos.1
[root@learn tmp]# service httpd status
httpd (pid 15355) is running...
Disclaimer: im still a puppetlabs newbie. :)
Changing Timezone in RHEL/Centos
This is one way of changing your server timezone and resync on the ntp server
service ntpd stop
cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
ntpdate
service ntpd start
more info: http://www.redhat.com/advice/tips/timezone.html
remove host key under known_hosts
Normally after a server rebuild you will receive a warning that the host identification has changed
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
One solution is to remove the offending host key
ssh-keygen -f "/home/chris/.ssh/known_hosts" -R ip-address-of-the-host
mysql wont start after server crashed
My mysql database crashed after saving a snapshot thru KVM. Restarting mysqld shows errors under /var/log/mysqld.log
..check that your my.cnf matches the ibdata files..
one solution was to move all ib* data and restart mysqld
mkdir /srv/mysql/old
mv /srv/mysql/ib* /srv/mysql/old
service mysqld restart
KVM commands
To install with prompt
virt-install --prompt
List virtual machine
virsh list
Stop virtual machine
virsh destroy
Configure VM autostart
virsh autostart
Unconfigure VM autostart
virsh autostart --disable
To install using kickstart
virt-install --name=rhel03.localdomain -r 768 --disk path=/var/lib/libvirt/images/rhel03.localdomain.img,size=8 -l http://192.168.122.1/pub/inst -x "ks=http://192.168.122.1/pub/ks/rhel03.cfg"
To create VM snapshot
virsh save centos01 centos01.snap.$(date +%y%m%d)
To restore VM snapshot
virsh shutdown centos01
virsh restore centos01.snap
Clone vm
virt-clone --original centos01 --name centos02 --file /home/penoycentral/images/centos02.img
Troubleshooting KVM
Error when starting the VM snapshot
error restoring domain unable to read from monitor
To fix
virsh managedsave-remove domain-name
mysql commands
Set mysql root password
mysqladmin -u root password 'new-password'
Show databases
mysql> show databases;
mysql> use databasename;
Show tables
mysql> show tables;
Show columns
mysql> select column from tables;
Backup database
$mysqldump -u-p > backupdatabase.sql
Restore database
mysql -u-p < databasebackup.sql
RHCSA/RHCE Red Hat Linux Certification Practice Exams with Virtual Machines (Exams EX200 & EX300)
vmnetcfg in VMware Player running in Fedora 16
where is vmnetcfg in VMware Player running in Fedora 16?
It is found under:
/usr/lib/vmware/bin/vmware-netcfg
Accelerated NCDA Boot Camp Data ONTAP 8.0 7-Mode - (ANCDA-D87M)
I will be sitting for Netapp Accelerated NCDA bootcamp Ontap 8.0.7-Mode next week. It will be delivered by Fastlane Singapore, one of the authorized Netapp learning Centers. Hopefully this vendor training will help me to fastrack since my company deploys Netapp storage solutions to our clients.
Will post some reviews next week (if again i have the time :) )