Working through Michael Hartl's Ruby on Rails Tutorial, chapter 6 calls for the SQLite Database Browser.
Just wanted to put a note out there for anyone building this on CentOS6: make sure you check the version of qt that your qmake command runs against.
The below commands show how to check which version you're using, and run the correct one to build Sqlite Database Browser.
check installed qt versions
[user@dev-workstation sqlitebrowser]$ which qmake
/usr/lib64/qt-3.3/bin/qmake
[user@dev-workstation sqlitebrowser]$ ls /usr/lib64/qt*
/usr/lib64/qt-3.3:
bin include lib mkspecs phrasebooks plugins translations
/usr/lib64/qt4:
bin mkspecs phrasebooks plugins q3porting.xml
confirm qt4/bin/qmake is there
[user@dev-workstation sqlitebrowser]$ ls /usr/lib64/qt4/bin/qmake
/usr/lib64/qt4/bin/qmake
commands to run to build Sqlite Database Browser
[user@dev-workstation sqlitebrowser]$ /usr/lib64/qt4/bin/qmake
[user@dev-workstation sqlitebrowser]$ make
after building, move to your ~/bin folder and enjoy
[user@dev-workstation sqlitebrowser]$ cp sqlitebrowser ~/bin/
[user@dev-workstation sqlitebrowser]$ which sqlitebrowser
~/bin/sqlitebrowser
[user@dev-workstation sqlitebrowser]$ sqlitebrowser &
[user@dev-workstation sqlitebrowser]$
hope this helps. :)
Saturday, February 9, 2013
Saturday, February 2, 2013
Setting up Ruby on Rails dev environment
We are working on a ruby app for one of my CS classes, and found that it was easier to set up a virutal linux system than it was to try to get ruby working on windows (mainly because we don't have any stick time on that, and spinning the VM was cheaper).
The principle behind our decision to do this was that it's easier to get help from the community when you stick with the main focus of the community. See an app out there that is primarily linux, but you're a windows admin? It's easier for you to get help by installing and learning linux than it is to try to make it work under windows, even if this is a possibility. I've had to learn this the hard way at work, and it was much easier to move forward with the software when I finally bit the bullet and went all in on linux.
The argument against this goes something like: "we have experience in the company with 'blah' and this can be made to run on 'blah', so we'd like to leverage our existing expertise..." etc. Unless you're looking to become the pioneers in making it work, you're better off just sticking with the primary environment the software was built in.
The place this really matters is smaller companies. Most of you out there probably use windows for your day-to-day work, because it's familiar, but the software you'd like to use runs on linux, which you don't really know. If you're trying to avoid the cost of having it hosted (read "managed") by another company, learn linux.
I'm interested to know what others think of this, if they have experiences that are similar to mine, or if you think I'm nuts. (OK, you're right on that last part :-D ).
Here's what we did to get our ruby environment set up. If anyone has feedback on these instructions, I'm all ears. Have fun.
(it should be noted that the instructions below were used in conjunction with http://ruby.railstutorial.org/book. The part on bitbucket and heroku were based on having already published an app per that tutorial).
installing CentOS 6.3 on virtual box
===========
install virtual box
for windows: http://download.virtualbox.org/virtualbox/4.2.6/VirtualBox-4.2.6-82870-Win.exe
for mac: http://download.virtualbox.org/virtualbox/4.2.6/VirtualBox-4.2.6-82870-OSX.dmg
setup VM virtual box config
Create Virtual Machine
click new
name virtual system (ie: Centos6 x64)
if not already selected, select "Linux" and "Red Hat 64 bit"
click next
set for 1024 MB RAM
create a virtual hard drive now, click create
VDI, click next
Dynamically allocated, click next
set for 16GB, click create
click settings
Configure Network Connections
select "Network" in left tree
set as follows:
Adatper 1:
Enabled
Attached to: Bridged Adapter
Name: (your wired ethernet connection)
Adapter 2:
Enabled
Attached to: Bridged Adapter
Name: (you wireless ethernet connection)
Configure iso for install at boot
click settings
select "Storage" in left tree
select CD drive ("Empty") under Storage Tree on right
click CD icon at right of "IDE Secondary Master" drop down
select "Choose a virtual CD/DVD disk file"
find the CentOS6 DVD iso
click ok to confirm VM settings
config/install CentOS OS
start vm
click in vm screen to capture input
click enter to start install
once CentOS 6 logo loads, you can set one of the following:
right-CTRL+F = full screen
right-CTRL+C = scaled
(I find scaled set to full screen works the best)
proceed with install:
click next (3x)
basic storage device, click next
click "yes, discard any data" (this is for the virtual disk)
click configure network (lower left)
for each adapter:
double-click on name
select "connect automaticaly"
click "Apply"
click "close"
change hostname if desired (ie: centos6-dev)
time zone = America/Denver
uncheck "System clock uses UTC"
click next
set root password, click next
select "use all space", click next
click "write changes to disk"
select "Software Development Workstation"
click next (this starts installing packages)
let install run
reboot
click forward
"yes, I agree", click forward
create your user, click forward
check "Synchronize date and time over the network", click forward (allow ntp to start)
click ok when prompted by kdump
click finish
To open firefox:
click icon
To open Terminal:
Applications > System Tools > Terminal
set up sudo access and harden ssh login
$ su - root (enter root password when prompted)
allow wheel access to root via sudo
# visudo
arrow down to the "wheel" group
press [i]
for the line with %wheel ALL=(ALL) ALL, delete the # sign at the beginning
press [ESC][:][X][ENTER]
give yourself wheel group membership
# usermod -G wheel <username>
confirm
# id <username> wheel(10) should show up in the list of groups
change #PermitRootLogin yes to PermitRootLogin without-password
# vi /etc/ssh/sshd_config
arrow down and over
press [i]
use arrows, backspace and keys to change line
press [ESC][:][X][ENTER]
# service sshd restart
what this will do is allow you to log in and switch users as needed, and prevents someone from logging in as root unless they are using ssh keys
update the system
as root:
# yum -y update
as your user
$ sudo yum -y update
reboot
Install Eclipse Juno:
http://www.if-not-true-then-false.com/2010/linux-install-eclipse-on-fedora-centos-red-hat-rhel/
Install Eclipse plugins:
eclipse marketplace
aptana studio
dynamic languages toolkit - Ruby Development tools
dynamic languages toolkit - core framework
eclipse EGit
Eclipse JGit
eclipse web developer tools
Import the project:
download the repo from bitbucket
(this can be done from the terminal view in the eclipse web perspective)
$ cd ~/workspace
$ git clone https://$user_name@bitbucket.org/$user_name/$app_name.git
$ cd $app_name
$ git checkout master
Import the project to eclipse with this project:
choose ruby perspective
window > show view > project explorer
method 1 (may not work):
expand local filesystem, browse /path/to/git/advising_app
right-click on advising app, choose "Promote to project"
open App Explorer, and you should see the project
method 2 (known to work:
right click in project explorer, select import
select General > Existing Project into workspace
browse to advising_app folder
click check box by folder on left side
click finish
To open a CLI terminal in Eclipse:
From Web perspective, it will be in the bottom portion of your screen
From Ruby (or any other perspective):
Window menu > Show View > click Other > Studio > Terminal
If you would like a terminal editor (same place as files), click the bigger icon in the view
Some of the next steps might need to be run from a system terminal rather than an eclipse terminal, I can't remember which
Install Ruby on Rails environment
Install RVM:
$ \curl -L https://get.rvm.io | bash -s stable
Install Ruby, RubyGems, Rails, etc.
see section 1.2.2 of http://ruby.railstutorial.org/book
Install Heroku toolbelt:
$ wget -qO- https://toolbelt.heroku.com/install.sh | sh
$ cd ~/workspace/advising_app
$ heroku login
enter your heroku account credentials when prompted
The principle behind our decision to do this was that it's easier to get help from the community when you stick with the main focus of the community. See an app out there that is primarily linux, but you're a windows admin? It's easier for you to get help by installing and learning linux than it is to try to make it work under windows, even if this is a possibility. I've had to learn this the hard way at work, and it was much easier to move forward with the software when I finally bit the bullet and went all in on linux.
The argument against this goes something like: "we have experience in the company with 'blah' and this can be made to run on 'blah', so we'd like to leverage our existing expertise..." etc. Unless you're looking to become the pioneers in making it work, you're better off just sticking with the primary environment the software was built in.
The place this really matters is smaller companies. Most of you out there probably use windows for your day-to-day work, because it's familiar, but the software you'd like to use runs on linux, which you don't really know. If you're trying to avoid the cost of having it hosted (read "managed") by another company, learn linux.
I'm interested to know what others think of this, if they have experiences that are similar to mine, or if you think I'm nuts. (OK, you're right on that last part :-D ).
Here's what we did to get our ruby environment set up. If anyone has feedback on these instructions, I'm all ears. Have fun.
(it should be noted that the instructions below were used in conjunction with http://ruby.railstutorial.org/book. The part on bitbucket and heroku were based on having already published an app per that tutorial).
installing CentOS 6.3 on virtual box
===========
install virtual box
for windows: http://download.virtualbox.org/virtualbox/4.2.6/VirtualBox-4.2.6-82870-Win.exe
for mac: http://download.virtualbox.org/virtualbox/4.2.6/VirtualBox-4.2.6-82870-OSX.dmg
setup VM virtual box config
Create Virtual Machine
click new
name virtual system (ie: Centos6 x64)
if not already selected, select "Linux" and "Red Hat 64 bit"
click next
set for 1024 MB RAM
create a virtual hard drive now, click create
VDI, click next
Dynamically allocated, click next
set for 16GB, click create
click settings
Configure Network Connections
select "Network" in left tree
set as follows:
Adatper 1:
Enabled
Attached to: Bridged Adapter
Name: (your wired ethernet connection)
Adapter 2:
Enabled
Attached to: Bridged Adapter
Name: (you wireless ethernet connection)
Configure iso for install at boot
click settings
select "Storage" in left tree
select CD drive ("Empty") under Storage Tree on right
click CD icon at right of "IDE Secondary Master" drop down
select "Choose a virtual CD/DVD disk file"
find the CentOS6 DVD iso
click ok to confirm VM settings
config/install CentOS OS
start vm
click in vm screen to capture input
click enter to start install
once CentOS 6 logo loads, you can set one of the following:
right-CTRL+F = full screen
right-CTRL+C = scaled
(I find scaled set to full screen works the best)
proceed with install:
click next (3x)
basic storage device, click next
click "yes, discard any data" (this is for the virtual disk)
click configure network (lower left)
for each adapter:
double-click on name
select "connect automaticaly"
click "Apply"
click "close"
change hostname if desired (ie: centos6-dev)
time zone = America/Denver
uncheck "System clock uses UTC"
click next
set root password, click next
select "use all space", click next
click "write changes to disk"
select "Software Development Workstation"
click next (this starts installing packages)
let install run
reboot
click forward
"yes, I agree", click forward
create your user, click forward
check "Synchronize date and time over the network", click forward (allow ntp to start)
click ok when prompted by kdump
click finish
To open firefox:
click icon
To open Terminal:
Applications > System Tools > Terminal
set up sudo access and harden ssh login
$ su - root (enter root password when prompted)
allow wheel access to root via sudo
# visudo
arrow down to the "wheel" group
press [i]
for the line with %wheel ALL=(ALL) ALL, delete the # sign at the beginning
press [ESC][:][X][ENTER]
give yourself wheel group membership
# usermod -G wheel <username>
confirm
# id <username> wheel(10) should show up in the list of groups
change #PermitRootLogin yes to PermitRootLogin without-password
# vi /etc/ssh/sshd_config
arrow down and over
press [i]
use arrows, backspace and keys to change line
press [ESC][:][X][ENTER]
# service sshd restart
what this will do is allow you to log in and switch users as needed, and prevents someone from logging in as root unless they are using ssh keys
update the system
as root:
# yum -y update
as your user
$ sudo yum -y update
reboot
Install Eclipse Juno:
http://www.if-not-true-then-false.com/2010/linux-install-eclipse-on-fedora-centos-red-hat-rhel/
Install Eclipse plugins:
eclipse marketplace
aptana studio
dynamic languages toolkit - Ruby Development tools
dynamic languages toolkit - core framework
eclipse EGit
Eclipse JGit
eclipse web developer tools
Import the project:
download the repo from bitbucket
(this can be done from the terminal view in the eclipse web perspective)
$ cd ~/workspace
$ git clone https://$user_name@bitbucket.org/$user_name/$app_name.git
$ cd $app_name
$ git checkout master
Import the project to eclipse with this project:
choose ruby perspective
window > show view > project explorer
method 1 (may not work):
expand local filesystem, browse /path/to/git/advising_app
right-click on advising app, choose "Promote to project"
open App Explorer, and you should see the project
method 2 (known to work:
right click in project explorer, select import
select General > Existing Project into workspace
browse to advising_app folder
click check box by folder on left side
click finish
To open a CLI terminal in Eclipse:
From Web perspective, it will be in the bottom portion of your screen
From Ruby (or any other perspective):
Window menu > Show View > click Other > Studio > Terminal
If you would like a terminal editor (same place as files), click the bigger icon in the view
Some of the next steps might need to be run from a system terminal rather than an eclipse terminal, I can't remember which
Install Ruby on Rails environment
Install RVM:
$ \curl -L https://get.rvm.io | bash -s stable
Install Ruby, RubyGems, Rails, etc.
see section 1.2.2 of http://ruby.railstutorial.org/book
Install Heroku toolbelt:
$ wget -qO- https://toolbelt.heroku.com/install.sh | sh
$ cd ~/workspace/advising_app
$ heroku login
enter your heroku account credentials when prompted
Friday, January 25, 2013
BitBucket: git familiar with Atlassian's repo service
I've recently started using a new hosted git provider: Atlassian's BitBucket. While most everyone out there is probably using github, there were two things I noticed about Bitbucket that I liked:
While I am a huge supporter of open source software, until now, I wasn't aware of any public cloud options for having a private repo without setting up a billed account (other than installing and managing your own server). Simply put, I'd rather not add yet another copy of whatever tutorial I'm working through to the web. (I will however, write about it :) ) Not everything should be public.
I'm also interesting in hearing what you have to say about this. Will you be migrating everything as soon as you can? Will you be sticking with GitHub? Some mix of the two? What arguments could or should be considered for paying for this kind of service? I do have to say that I'm glad there is another option, since competition leads to better products and services for those using them.
- They have made https work for checking in with git version 1.7.1 (default yum install git from CentOS 6.x)
- They allow the option to have private repositories
While I am a huge supporter of open source software, until now, I wasn't aware of any public cloud options for having a private repo without setting up a billed account (other than installing and managing your own server). Simply put, I'd rather not add yet another copy of whatever tutorial I'm working through to the web. (I will however, write about it :) ) Not everything should be public.
I'm also interesting in hearing what you have to say about this. Will you be migrating everything as soon as you can? Will you be sticking with GitHub? Some mix of the two? What arguments could or should be considered for paying for this kind of service? I do have to say that I'm glad there is another option, since competition leads to better products and services for those using them.
Friday, July 20, 2012
Configuring MantisBT
Once you're done Installing MantisBT, the web interface is available. However, in order to create/reset user accounts, you need to have email configured so emails can be sent out. I did the following:
vi /opt/mantisbt-1.2.11/config_defaults_inc.php
search for "g_smtp_host"
change the following settings (I used one of my existing email accounts):
$g_phpMailer_method = PHPMAILER_METHOD_SMTP;
$g_smtp_host = 'smtp.example.com';
$g_smtp_username = 'account@mailserver.com';
$g_smtp_password = 'THIS_IS_CLEAR_TEXT';
$g_smtp_connection_mode = 'ssl';
$g_smtp_port = 465;
At this point, I was able to send email to my account and get logged in with an account other than the default administrator account.
While MantisBT did well at the install, the configuration interface leaves a few things to be desired. First, there are settings beyond getting the system to use the web server or database that cannot be configured in the web gui. Secondly, while all of the possible settings are well documented, grep is your friend; there is no clear indication where they are located.
Total score for ease of administrative configuration: 3/10
Major failing: unable to edit full config from the web interface.
vi /opt/mantisbt-1.2.11/config_defaults_inc.php
search for "g_smtp_host"
change the following settings (I used one of my existing email accounts):
$g_phpMailer_method = PHPMAILER_METHOD_SMTP;
$g_smtp_host = 'smtp.example.com';
$g_smtp_username = 'account@mailserver.com';
$g_smtp_password = 'THIS_IS_CLEAR_TEXT';
$g_smtp_connection_mode = 'ssl';
$g_smtp_port = 465;
At this point, I was able to send email to my account and get logged in with an account other than the default administrator account.
While MantisBT did well at the install, the configuration interface leaves a few things to be desired. First, there are settings beyond getting the system to use the web server or database that cannot be configured in the web gui. Secondly, while all of the possible settings are well documented, grep is your friend; there is no clear indication where they are located.
Total score for ease of administrative configuration: 3/10
Major failing: unable to edit full config from the web interface.
Installing MantisBT
from a fresh CentOS 6 install (don't forget yum -y update and a reboot), run the following commands:
Total time with Cobbler from PXE boot to creating your first project: ~20 - 25 mins. This includes the time to install the OS from scratch, update it, reboot, and go through the commands above manually. For those interested in specs, this was run on my setup.
Once you're done here, you'll want to start Configuring MantisBT.
Total score for ease of install: 8/10
- cd /tmp
- wget http://sourceforge.net/projects/mantisbt/files/mantis-stable/1.2.11/mantisbt-1.2.11.tar.gz/download
- wget http://sourceforge.net/projects/mantisbt/files/mantis-stable/1.2.11/mantisbt-1.2.11.tar.gz.digests/download
- md5sum -c mantisbt-1.2.11.tar.gz.digests
- tar -xzf mantisbt-1.2.11.tar.gz
- mv mantisbt-1.2.11/ /opt/mantisbt-1.2.11
- chown -R apache:apache /opt/mantisbt-1.2.11
- ls -n /opt/mantisbt-1.2.11/ /var/www/html/mantisbt
- yum -y install httpd mysql mysql-server php php-mysql
- vi /etc/php.ini
- change line 946 to match:
- date.timezone = "America/New_York" (should match cat /etc/sysconfig/clock output)
- chkconfig httpd on
- chkconfig mysqld on
- service httpd start
- service mysqld start
- mysqladmin -u root password 'newPassword'
- mysqladmin -u root -p -h localhost.localdomain password 'newPassword' (enter newPassword from above when prompted)
- iptables -I INPUT 5 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
- iptables -I INPUT 6 -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
- now open your browser, and point it to:
- http://yourServerOrIPHere/mantisbt/admin/install.php
- add newPassword from above in the password field
- click the "Install" button.
Total time with Cobbler from PXE boot to creating your first project: ~20 - 25 mins. This includes the time to install the OS from scratch, update it, reboot, and go through the commands above manually. For those interested in specs, this was run on my setup.
Once you're done here, you'll want to start Configuring MantisBT.
Total score for ease of install: 8/10
Saturday, July 14, 2012
My testing/working environment
Below is the current config that I have set up for all the testing/installing, etc. that I do as part of this blog.
2x Dell 1950 2x Xeon 5130 @ 2.00GHz w/ 8GB RAM and 4x 73GB 10K 2.5" SAS HDD in RAID 5
runs: VMware ESXi 4.1 build-260247
2x Dell 2850 2x Xeon DC @ 2.80GHz w/ 8GB RAM and 6x 146GB 10K 3.5" SCSI HDD in RAID 5
runs: OpenFiler 2.3 x86_64
Connecting the two is a Linksys SGE2000 running Jumbo Frames for 1GbE connections, and I'm serving up the storage from the 2850 as iSCSI storage to the 1950.
Finally, I have an APC SMX1500RM2U SmartUPS protecting everything from power bumps (I would get some occasionally that weren't enough to power off the systems, but were enough to make them reboot). It provides about 5-7 mins of run-time currently.
Everything runs off a single 15A 120V circuit in my basement. Total cost: ~$2600 - $3000. This assumes you already have cooling for your room.
2x Dell 1950 2x Xeon 5130 @ 2.00GHz w/ 8GB RAM and 4x 73GB 10K 2.5" SAS HDD in RAID 5
runs: VMware ESXi 4.1 build-260247
2x Dell 2850 2x Xeon DC @ 2.80GHz w/ 8GB RAM and 6x 146GB 10K 3.5" SCSI HDD in RAID 5
runs: OpenFiler 2.3 x86_64
Connecting the two is a Linksys SGE2000 running Jumbo Frames for 1GbE connections, and I'm serving up the storage from the 2850 as iSCSI storage to the 1950.
Finally, I have an APC SMX1500RM2U SmartUPS protecting everything from power bumps (I would get some occasionally that weren't enough to power off the systems, but were enough to make them reboot). It provides about 5-7 mins of run-time currently.
Everything runs off a single 15A 120V circuit in my basement. Total cost: ~$2600 - $3000. This assumes you already have cooling for your room.
Saturday, July 7, 2012
Cobbler DHCP config
I'm working on installing Cobbler so that I have a reliable way to automate the install of my linux systems. Following my first post will get the software installed, so now I was ready to move on to actually getting a PXE boot to install from Cobbler.
Looked up the directions here, and the steps are pretty straight forward. If you're continuing from my previous post, it would look something like this:
option routers 10.1.2.1;
option domain-name-servers 68.87.85.102 68.87.69.150;
option subnet-mask 255.255.255.0;
range dynamic-bootp 10.1.2.100 10.1.2.254;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server 10.1.2.26;
}
All is well, we're now ready to PXE boot clients, and Cobbler will..... what's this?
running: dhcpd -t -q
received on stdout:
received on stderr:
dhcpd -t failed
Exception occured: <class 'cobbler.cexceptions.CX'>
Exception value: 'cobbler trigger failed: cobbler.modules.sync_post_restart_services'
Exception Info:
File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 89, in run
rc = self._run(self)
File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 184, in runner
return self.remote.api.sync(self.options.get("verbose",False),logger=self.logger)
File "/usr/lib/python2.6/site-packages/cobbler/api.py", line 701, in sync
return sync.run()
File "/usr/lib/python2.6/site-packages/cobbler/action_sync.py", line 155, in run
utils.run_triggers(self.api, None, "/var/lib/cobbler/triggers/sync/post/*", logger=self.logger)
File "/usr/lib/python2.6/site-packages/cobbler/utils.py", line 918, in run_triggers
raise CX("cobbler trigger failed: %s" % m.__name__)
!!! TASK FAILED !!!
hmm.. well, we can see that there is an issue with dhcpd, lets try to start the service on it's own:
Here's the log from /var/log/messages while trying to start the service above:
Jul 2 17:38:48 OPS8-Cobbler dhcpd: Internet Systems Consortium DHCP Server 4.1.1-P1
Jul 2 17:38:48 OPS8-Cobbler dhcpd: Copyright 2004-2010 Internet Systems Consortium.
Jul 2 17:38:48 OPS8-Cobbler dhcpd: All rights reserved.
Jul 2 17:38:48 OPS8-Cobbler dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Jul 2 17:38:48 OPS8-Cobbler dhcpd: /etc/dhcp/dhcpd.conf line 19: semicolon expected.
Jul 2 17:38:48 OPS8-Cobbler dhcpd: option domain-name-servers 68.87.85.102 68.
Jul 2 17:38:48 OPS8-Cobbler dhcpd: ^
Jul 2 17:38:48 OPS8-Cobbler dhcpd: Configuration file errors encountered -- exiting
Jul 2 17:38:48 OPS8-Cobbler dhcpd:
Looking at /etc/dhcp/dhcpd.conf, I realized that I'd left a comma out of the template config. It should look like the following in /etc/cobbler/dhcp.template:
subnet 10.1.2.0 netmask 255.255.255.0 {
option routers 10.1.2.1;
option domain-name-servers 68.87.85.102, 68.87.69.150;
option subnet-mask 255.255.255.0;
range dynamic-bootp 10.1.2.100 10.1.2.254;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server 10.1.2.26;
}
Now we restart the service and run a sync....
much better.
A simple PXE test confirms that the service is working and providing addresses successfully. However, I wasn't able to get the PXE menu to load on a network boot... turns out that I didn't have the proper Firewall settings. You can test by stopping your firewall (service iptables stop) and trying again; watch out for tcp/udp differences!! After using the information under Firewall on this page I was able to get the PXE boot menu to load and test the install.
Looked up the directions here, and the steps are pretty straight forward. If you're continuing from my previous post, it would look something like this:
- insert your dvd with the distro
- yum -y install dhcp
- mount /dev/dvd /media
- cobbler import --path=/media --name=CentOS6 (this takes a while, press [CTRL+Z], then run bg [ENTER] to send it to the background)
- vi /etc/cobbler/dhcp.template
- edit per your network, mine looked like this:
option routers 10.1.2.1;
option domain-name-servers 68.87.85.102 68.87.69.150;
option subnet-mask 255.255.255.0;
range dynamic-bootp 10.1.2.100 10.1.2.254;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server 10.1.2.26;
}
- service cobblerd restart
- cobbler sync
All is well, we're now ready to PXE boot clients, and Cobbler will..... what's this?
running: dhcpd -t -q
received on stdout:
received on stderr:
dhcpd -t failed
Exception occured: <class 'cobbler.cexceptions.CX'>
Exception value: 'cobbler trigger failed: cobbler.modules.sync_post_restart_services'
Exception Info:
File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 89, in run
rc = self._run(self)
File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 184, in runner
return self.remote.api.sync(self.options.get("verbose",False),logger=self.logger)
File "/usr/lib/python2.6/site-packages/cobbler/api.py", line 701, in sync
return sync.run()
File "/usr/lib/python2.6/site-packages/cobbler/action_sync.py", line 155, in run
utils.run_triggers(self.api, None, "/var/lib/cobbler/triggers/sync/post/*", logger=self.logger)
File "/usr/lib/python2.6/site-packages/cobbler/utils.py", line 918, in run_triggers
raise CX("cobbler trigger failed: %s" % m.__name__)
!!! TASK FAILED !!!
hmm.. well, we can see that there is an issue with dhcpd, lets try to start the service on it's own:
[root@OPS8-Cobbler ~]# service dhcpd start
Starting dhcpd: [FAILED]
[root@OPS8-Cobbler ~]#
Starting dhcpd: [FAILED]
[root@OPS8-Cobbler ~]#
Here's the log from /var/log/messages while trying to start the service above:
Jul 2 17:38:48 OPS8-Cobbler dhcpd: Internet Systems Consortium DHCP Server 4.1.1-P1
Jul 2 17:38:48 OPS8-Cobbler dhcpd: Copyright 2004-2010 Internet Systems Consortium.
Jul 2 17:38:48 OPS8-Cobbler dhcpd: All rights reserved.
Jul 2 17:38:48 OPS8-Cobbler dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Jul 2 17:38:48 OPS8-Cobbler dhcpd: /etc/dhcp/dhcpd.conf line 19: semicolon expected.
Jul 2 17:38:48 OPS8-Cobbler dhcpd: option domain-name-servers 68.87.85.102 68.
Jul 2 17:38:48 OPS8-Cobbler dhcpd: ^
Jul 2 17:38:48 OPS8-Cobbler dhcpd: Configuration file errors encountered -- exiting
Jul 2 17:38:48 OPS8-Cobbler dhcpd:
Looking at /etc/dhcp/dhcpd.conf, I realized that I'd left a comma out of the template config. It should look like the following in /etc/cobbler/dhcp.template:
subnet 10.1.2.0 netmask 255.255.255.0 {
option routers 10.1.2.1;
option domain-name-servers 68.87.85.102, 68.87.69.150;
option subnet-mask 255.255.255.0;
range dynamic-bootp 10.1.2.100 10.1.2.254;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server 10.1.2.26;
}
Now we restart the service and run a sync....
[root@OPS8-Cobbler ~]# service cobblerd restart
Stopping cobbler daemon: [ OK ]
Starting cobbler daemon: [ OK ]
[root@OPS8-Cobbler ~]# cobbler sync
task started: 2012-07-02_174015_sync
task started (id=Sync, time=Mon Jul 2 17:40:15 2012)
...
rendering DHCP files
generating /etc/dhcp/dhcpd.conf
...
running: dhcpd -t -q
received on stdout:
received on stderr:
running: service dhcpd restart
received on stdout: Starting dhcpd: [ OK ]
...
*** TASK COMPLETE ***
[root@OPS8-Cobbler ~]#
much better.
A simple PXE test confirms that the service is working and providing addresses successfully. However, I wasn't able to get the PXE menu to load on a network boot... turns out that I didn't have the proper Firewall settings. You can test by stopping your firewall (service iptables stop) and trying again; watch out for tcp/udp differences!! After using the information under Firewall on this page I was able to get the PXE boot menu to load and test the install.
Subscribe to:
Posts (Atom)