--- ace-ovirt.spec | 2 +- ace-ovirt/modules/ovirt/manifests/dns.pp | 21 ++++++++---- ace-ovirt/modules/ovirt/ovirt-installer | 4 ++- rakefile.rb | 53 ++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 9 deletions(-) create mode 100644 rakefile.rb diff --git a/ace-ovirt.spec b/ace-ovirt.spec index 7c72962..451ce4b 100755 --- a/ace-ovirt.spec +++ b/ace-ovirt.spec @@ -44,7 +44,7 @@ install -d %{buildroot}/%{acehome} install -d %{buildroot}/%{ruby_sitelibdir} install -d %{buildroot}/%{_bindir} install -d %{buildroot}/%{_initrddir} -cp -pr %{pbuild}/modules %{buildroot}/%{acehome} +cp -pr %{pbuild}/ace-ovirt/modules %{buildroot}/%{acehome} diff --git a/ace-ovirt/modules/ovirt/manifests/dns.pp b/ace-ovirt/modules/ovirt/manifests/dns.pp index 8665b99..f6a82a5 100644 --- a/ace-ovirt/modules/ovirt/manifests/dns.pp +++ b/ace-ovirt/modules/ovirt/manifests/dns.pp @@ -18,8 +18,7 @@ # Author: Joey Boggs <jboggs at redhat.com> #-- - -define dns::bundled($mgmt_ipaddr="", $prov_ipaddr="",$mgmt_dev="",$prov_dev="") { +define dns::common($mgmt_ipaddr="", $prov_ipaddr="",$mgmt_dev="",$prov_dev="") { package {"dnsmasq": ensure => installed, @@ -45,10 +44,6 @@ define dns::bundled($mgmt_ipaddr="", $prov_ipaddr="",$mgmt_dev="",$prov_dev="") require => [Single_exec["add_mgmt_server_to_etc_hosts"],Single_exec["set_hostname"]] } - single_exec {"add_mgmt_server_to_etc_hosts": - command => "/bin/echo $mgmt_ipaddr $ipa_host >> /etc/hosts", - notify => Service[dnsmasq] - } file_replacement {"dnsmasq_configdir": file => "/etc/dnsmasq.conf", @@ -63,7 +58,17 @@ define dns::bundled($mgmt_ipaddr="", $prov_ipaddr="",$mgmt_dev="",$prov_dev="") } -class dns::remote { +define dns::bundled($mgmt_ipaddr="", $prov_ipaddr="",$mgmt_dev="",$prov_dev="") { + + dns::common("setup": mgmt_ipaddr=>$mgmt_ipaddr, prov_ipaddr=>$prov_ipaddr, mgmt_dev=>$mgmt_dev, prov_dev=>$prov_dev) + + single_exec {"add_mgmt_server_to_etc_hosts": + command => "/bin/echo $mgmt_ipaddr $ipa_host >> /etc/hosts", + notify => Service[dnsmasq] + } +} + +define dns::remote($mgmt_ipaddr="", $prov_ipaddr="",$mgmt_dev="",$prov_dev="") { # On the pxe server you will need to ensure that the # next server option points to the ip address of the tftp server @@ -81,4 +86,6 @@ class dns::remote { # Also A records must be present for each oVirt node. Without this they are unable # to determine their hostname and locate the management server. + dns::common("setup": mgmt_ipaddr=>$mgmt_ipaddr, prov_ipaddr=>$prov_ipaddr, mgmt_dev=>$mgmt_dev, prov_dev=>$prov_dev) + } diff --git a/ace-ovirt/modules/ovirt/ovirt-installer b/ace-ovirt/modules/ovirt/ovirt-installer index 7d7b9d8..902b916 100755 --- a/ace-ovirt/modules/ovirt/ovirt-installer +++ b/ace-ovirt/modules/ovirt/ovirt-installer @@ -123,16 +123,18 @@ mgmt_ipaddr= mgmt_ip.scan(/\s*inet addr:([\d.]+)/) prov_ip = `ifconfig #{prov_dev}` prov_ipaddr= prov_ip.scan(/\s*inet addr:([\d.]+)/) -if dns_servers == "n" config_file.write "# dns configuration\n" config_file.write "$mgmt_ipaddr = '#{mgmt_ipaddr}'\n" config_file.write "$prov_ipaddr = '#{prov_ipaddr}'\n" config_file.write "$ovirt_host = '#{ovirt_host}'\n" config_file.write "$ipa_host = '#{ipa_host}'\n\n" + +if dns_servers == "n" config_file.write "dns::bundled{setup: mgmt_ipaddr=> $mgmt_ipaddr, prov_ipaddr=> $prov_ipaddr, mgmt_dev => '#{mgmt_dev}', prov_dev => '#{prov_dev}'}\n\n" end if dns_servers == "y" +config_file.write "dns::remote{setup: mgmt_ipaddr=> $mgmt_ipaddr, prov_ipaddr=> $prov_ipaddr, mgmt_dev => '#{mgmt_dev}', prov_dev => '#{prov_dev}'}\n\n" host_lookup = Socket.getaddrinfo(ipa_host,nil) hostip = host_lookup[1][3] if hostip.to_s != mgmt_ipaddr.to_s diff --git a/rakefile.rb b/rakefile.rb new file mode 100644 index 0000000..a2fae18 --- /dev/null +++ b/rakefile.rb @@ -0,0 +1,53 @@ +# -*- ruby -*- +# Rakefile: build appliance configuration engine rpms +# +# Copyright (C) 2007 Red Hat, Inc. +# +# Distributed under the GNU Lesser General Public License v2.1 or later. +# See COPYING for details +# +# Bryan Kearney <bkearney at redhat.com> + +require 'rake/clean' +require 'rake/rdoctask' +require 'rake/testtask' +require 'rake/packagetask' + +ROOT_DIR = File::expand_path(".") +PKG_VERSION="0.0.94" +PACKAGE_DIR = ROOT_DIR + "/pkg" + +# +# Files to clean up +# + +CLEAN.include("**/*~","pkg") + + +# Packaging Tasks +# +Rake::PackageTask.new("ace-ovirt", PKG_VERSION) do |pkg| + pkg.need_tar_gz = true + pkg.package_files.include(Dir["ace-ovirt/**/*"]) +end + + +# +# Tasks to build the rpms +# + +# Set up the directories +task :rpm => [ :package ] do |t| + Dir["*.spec"].each do |specfile| + spec = File.basename(specfile) + cp(specfile, "pkg") + puts("Building with spec file #{spec}") + Dir::chdir("pkg") do |dir| + dir = File::expand_path(".") + system("rpmbuild --define '_topdir #{dir}' --define '_sourcedir #{dir}' --define '_srcrpmdir #{dir}' --define '_rpmdir #{dir}' --define '_builddir #{dir}' -ba #{spec} > #{spec}.rpmbuild.log 2>&1") + if $? != 0 + raise "rpmbuild failed" + end + end + end +end -- 1.6.0.4