hmc-php53.spec 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. ##
  2. #
  3. #/*
  4. # * Licensed to the Apache Software Foundation (ASF) under one
  5. # * or more contributor license agreements. See the NOTICE file
  6. # * distributed with this work for additional information
  7. # * regarding copyright ownership. The ASF licenses this file
  8. # * to you under the Apache License, Version 2.0 (the
  9. # * "License"); you may not use this file except in compliance
  10. # * with the License. You may obtain a copy of the License at
  11. # *
  12. # * http://www.apache.org/licenses/LICENSE-2.0
  13. # *
  14. # * Unless required by applicable law or agreed to in writing, software
  15. # * distributed under the License is distributed on an "AS IS" BASIS,
  16. # * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  17. # * See the License for the specific language governing permissions and
  18. # * limitations under the License.
  19. # */
  20. #
  21. # RPM Spec file for HMC
  22. #
  23. Summary: HMC for PHP 5.3
  24. Name: hmc-php53
  25. Version: 1.0.0
  26. URL: http://incubator.apache.org/projects/ambari.html
  27. Release: 2%{?dist}
  28. License: Apache License, Version 2.0
  29. Vendor: Apache Software Foundation <ambari-dev@incubator.apache.org>
  30. Group: System Environment/Base
  31. Source: hmc-%{version}.tar.gz
  32. Source1: hmc.init.in
  33. BuildRoot: %{_tmppath}/hmc-%{version}-buildroot
  34. Requires: php53, php53-process, php53-pdo, sqlite >= 3, httpd, puppet = 2.7.9, pdsh, httpd-devel, ruby-devel, rubygems, mod_passenger, mod_ssl
  35. %define web_prefixdir %{_prefix}/share/hmc
  36. %define httpd_confdir %{_sysconfdir}/httpd/conf.d
  37. %define puppet_master_dir %{_sysconfdir}/puppet/master
  38. %define hmc_passwd_dir %{_sysconfdir}/hmc
  39. %define hmc_db_dir %{_var}/db/hmc
  40. %define hmc_run_dir %{_var}/run/hmc
  41. %define hmc_log_dir %{_var}/log/hmc
  42. BuildArch: noarch
  43. %description
  44. This package provides a Management Console for Hadoop Cluster.
  45. %prep
  46. %setup -q -n hmc-%{version}
  47. %build
  48. %pre
  49. # Make a backup of existing database before installing new package
  50. if [ -f /var/db/hmc/data/data.db ]; then
  51. DATE=`date +%d-%m-%y-%H%M`
  52. mv /var/db/hmc/data/data.db /var/db/hmc/data/data.db.$DATE
  53. fi
  54. %install
  55. # Flush any old RPM build root
  56. %__rm -rf $RPM_BUILD_ROOT
  57. %__install -D -m0755 "%{SOURCE1}" "$RPM_BUILD_ROOT/etc/init.d/hmc"
  58. %__mkdir -p $RPM_BUILD_ROOT/usr/lib/ruby/site_ruby/1.8/puppet/reports/
  59. %__mkdir -p $RPM_BUILD_ROOT/%{web_prefixdir}/
  60. %__mkdir -p $RPM_BUILD_ROOT/%{web_prefixdir}/bin/
  61. %__mkdir -p $RPM_BUILD_ROOT/%{web_prefixdir}/yum_repo/
  62. %__mkdir -p $RPM_BUILD_ROOT/%{puppet_master_dir}/
  63. %__mkdir -p $RPM_BUILD_ROOT/%{puppet_master_dir}/manifests
  64. %__mkdir -p $RPM_BUILD_ROOT/%{web_prefixdir}/
  65. %__install -d "%{buildroot}%{hmc_db_dir}"
  66. %__install -d "%{buildroot}%{hmc_log_dir}"
  67. %__install -d "%{buildroot}%{hmc_run_dir}"
  68. %__install -d "%{buildroot}%{hmc_run_dir}/downloads"
  69. %__mkdir -p $RPM_BUILD_ROOT/%{hmc_db_dir}/data
  70. %__mkdir -p $RPM_BUILD_ROOT/%{hmc_passwd_dir}
  71. %__mkdir -p $RPM_BUILD_ROOT/%{httpd_confdir}/
  72. %__cp -rf css $RPM_BUILD_ROOT/%{web_prefixdir}/
  73. %__cp -rf fonts $RPM_BUILD_ROOT/%{web_prefixdir}/
  74. %__cp -rf licenses $RPM_BUILD_ROOT/%{web_prefixdir}/
  75. %__cp -rf db $RPM_BUILD_ROOT/%{web_prefixdir}/
  76. %__cp -rf html $RPM_BUILD_ROOT/%{web_prefixdir}/
  77. %__cp -rf ShellScripts $RPM_BUILD_ROOT/%{web_prefixdir}/
  78. %__cp -rf images $RPM_BUILD_ROOT/%{web_prefixdir}/
  79. %__cp -rf js $RPM_BUILD_ROOT/%{web_prefixdir}/
  80. %__cp -rf puppet $RPM_BUILD_ROOT/%{web_prefixdir}/
  81. %__cp -rf php $RPM_BUILD_ROOT/%{web_prefixdir}/
  82. %__cp -rf conf $RPM_BUILD_ROOT/%{web_prefixdir}/
  83. %__cp -rf puppet/manifestloader $RPM_BUILD_ROOT/%{puppet_master_dir}
  84. %__cp -rf puppet/modules $RPM_BUILD_ROOT/%{puppet_master_dir}
  85. %__mkdir -p $RPM_BUILD_ROOT/%{puppet_master_dir}/modules/catalog/files
  86. %__install -D -m0755 puppet/reports/get_revision $RPM_BUILD_ROOT/%{web_prefixdir}/bin
  87. %__cp -rf puppet/reports/hmcreport.rb $RPM_BUILD_ROOT/usr/lib/ruby/site_ruby/1.8/puppet/reports/
  88. %post
  89. if test X"$RPM_INSTALL_PREFIX0" = X"" ; then
  90. RPM_INSTALL_PREFIX0="/usr"
  91. fi
  92. echo "Alias /hdp $RPM_INSTALL_PREFIX0/share/hdp" > /etc/httpd/conf.d/hdp_mon_dashboard.conf
  93. php $RPM_INSTALL_PREFIX0/share/hmc/php/frontend/initializeHMC.php /var/db/hmc/data/data.db $RPM_INSTALL_PREFIX0/share/hmc/db/schema.dump
  94. sed -i 's/User\ apache/User\ puppet/g' /etc/httpd/conf/httpd.conf
  95. chmod 666 /var/db/hmc/data/data.db
  96. chown -R puppet:apache /var/db/hmc/
  97. chown -R puppet:apache /var/run/hmc
  98. chown -R puppet:apache /var/log/hmc
  99. chown -R puppet:apache /etc/puppet
  100. mkdir -p /etc/puppet/rack/public
  101. mkdir -p /etc/puppet/rack/tmp
  102. touch /var/run/hmc/lockfile
  103. chown puppet:apache /var/run/hmc/lockfile
  104. touch /var/run/hmc/lockfile.clusterstate
  105. chown puppet:apache /var/run/hmc/lockfile.clusterstate
  106. cp /usr/share/puppet/ext/rack/files/config.ru /etc/puppet/rack
  107. chown puppet /etc/puppet/rack/config.ru
  108. cp $RPM_INSTALL_PREFIX0/share/hmc/puppet/conf/puppetmaster.conf.template /etc/httpd/conf.d/puppetmaster.conf
  109. cp $RPM_INSTALL_PREFIX0/share/hmc/conf/hmc.conf /etc/httpd/conf.d/hmc.conf
  110. host=`hostname -f | tr '[:upper:]' '[:lower:]'`
  111. sed -i "s/__TODO_HOSTNAME__/$host/g" /etc/httpd/conf.d/puppetmaster.conf
  112. cp $RPM_INSTALL_PREFIX0/share/hmc/puppet/conf/puppet.conf.template /etc/puppet/puppet.conf
  113. echo 0 > /selinux/enforce
  114. htpasswd -mbc /etc/hmc/htpasswd.users hmcadmin hmcadmin &> /dev/null
  115. #chown apache:apache /var/db/hmc/data/data.db
  116. chown -R puppet:apache /etc/hmc
  117. %postun
  118. rm -rf /var/run/hmc/clusters/
  119. rm -rf /var/lib/puppet/reports/*
  120. rm -rf /var/lib/puppet/puppet_kick_version.txt
  121. rm -rf /etc/puppet/master
  122. rm -rf /var/run/hmc/license
  123. rm -rf /var/run/hmc/puppetmaster.boot
  124. %files
  125. %defattr(-,root,root)
  126. %{web_prefixdir}/*
  127. /usr/lib/ruby/site_ruby/1.8/puppet/reports/hmcreport.rb
  128. %config /etc/init.d/hmc
  129. %{hmc_passwd_dir}*
  130. %{puppet_master_dir}/*
  131. %{hmc_db_dir}
  132. %{hmc_log_dir}
  133. %{hmc_run_dir}/*
  134. #%clean
  135. #%__rm -rf $RPM_BUILD_ROOT
  136. %changelog
  137. * Thu Jun 07 2012 Ambari <ambari-dev@incubator.apache.org>
  138. - Initial version