| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| # Overridable variables; |
| %if %{?!AURORA_VERSION:1}0 |
| %global AURORA_VERSION 0.18.0 |
| %endif |
| |
| %if %{?!AURORA_INTERNAL_VERSION:1}0 |
| %global AURORA_INTERNAL_VERSION %{AURORA_VERSION} |
| %endif |
| |
| %if %{?!AURORA_USER:1}0 |
| %global AURORA_USER aurora |
| %endif |
| |
| %if %{?!AURORA_GROUP:1}0 |
| %global AURORA_GROUP aurora |
| %endif |
| |
| %if %{?!GRADLE_BASEURL:1}0 |
| %global GRADLE_BASEURL https://services.gradle.org/distributions |
| %endif |
| |
| %if %{?!GRADLE_VERSION:1}0 |
| %global GRADLE_VERSION 3.1 |
| %endif |
| |
| %if %{?!JAVA_VERSION:!}0 |
| %global JAVA_VERSION 1.8.0 |
| %endif |
| |
| %if %{?!MESOS_VERSION:1}0 |
| %global MESOS_VERSION 1.2.0 |
| %endif |
| |
| %if %{?!PEX_BINARIES:1}0 |
| %global PEX_BINARIES aurora aurora_admin thermos thermos_executor thermos_runner thermos_observer |
| %endif |
| |
| %if %{?!PYTHON_VERSION:1}0 |
| %global PYTHON_VERSION 2.7 |
| %endif |
| |
| |
| Name: aurora-scheduler |
| Version: %{AURORA_VERSION} |
| Release: 1%{?dist}.aurora |
| Summary: A Mesos framework for scheduling and executing long-running services and cron jobs. |
| Group: Applications/System |
| License: ASL 2.0 |
| URL: https://aurora.apache.org/ |
| |
| Source0: http://www.apache.org/dyn/closer.cgi?action=download&filename=aurora/%{version}/apache-aurora-%{version}.tar.gz#/apache-aurora-%{version}.tar.gz |
| Source1: aurora-scheduler.service |
| Source2: thermos.service |
| Source3: aurora-scheduler.init.sh |
| Source4: thermos.init.sh |
| Source5: aurora-scheduler.startup.sh |
| Source6: thermos.startup.sh |
| Source7: aurora-scheduler.sysconfig |
| Source8: thermos.sysconfig |
| Source9: aurora-scheduler.logrotate |
| Source10: thermos.logrotate |
| Source11: clusters.json |
| Source12: aurora-pants.ini |
| |
| BuildRequires: apr-devel |
| BuildRequires: cyrus-sasl-devel |
| BuildRequires: gcc |
| BuildRequires: gcc-c++ |
| BuildRequires: git |
| BuildRequires: java-%{JAVA_VERSION}-openjdk-devel |
| BuildRequires: krb5-devel |
| BuildRequires: libcurl-devel |
| BuildRequires: openssl |
| BuildRequires: patch |
| %if 0%{?rhel} && 0%{?rhel} < 7 |
| BuildRequires: python27 |
| BuildRequires: python27-scldevel |
| %else |
| BuildRequires: python |
| BuildRequires: python-devel |
| %endif |
| BuildRequires: subversion-devel |
| BuildRequires: tar |
| BuildRequires: unzip |
| BuildRequires: wget |
| BuildRequires: zlib-devel |
| |
| %if 0%{?rhel} && 0%{?rhel} < 7 |
| Requires: daemonize |
| %endif |
| Requires: java-%{JAVA_VERSION}-headless |
| Requires: mesos >= %{MESOS_VERSION} |
| |
| |
| %description |
| Apache Aurora is a service scheduler that runs on top of Mesos, enabling you to schedule |
| long-running services that take advantage of Mesos' scalability, fault-tolerance, and |
| resource isolation. |
| |
| |
| %package -n aurora-tools |
| Summary: A client for scheduling services against the Aurora scheduler |
| Group: Development/Tools |
| |
| Requires: krb5-libs |
| %if 0%{?rhel} && 0%{?rhel} < 7 |
| Requires: python27 |
| %else |
| Requires: python |
| %endif |
| |
| %description -n aurora-tools |
| A set of command-line applications used for interacting with and administering Aurora |
| schedulers. |
| |
| |
| %package -n aurora-executor |
| Summary: Mesos executor that runs and monitors tasks scheduled by the Aurora scheduler |
| Group: Applications/System |
| |
| Requires: mesos >= %{MESOS_VERSION} |
| Requires: cyrus-sasl |
| %if 0%{?rhel} && 0%{?rhel} < 7 |
| Requires: python27 |
| %else |
| Requires: python |
| %endif |
| |
| %description -n aurora-executor |
| Thermos a simple process management framework used for orchestrating dependent processes |
| within a single Mesos chroot. It works in tandem with Aurora to ensure that tasks |
| scheduled by it are properly executed on Mesos slaves and provides a Web UI to monitor the |
| state of all running tasks. |
| |
| |
| %prep |
| %setup -n apache-aurora-%{AURORA_INTERNAL_VERSION} |
| |
| %build |
| # Preferences SCL-installed Python 2.7 if we're building on EL6. |
| %if 0%{?rhel} && 0%{?rhel} < 7 |
| export PATH=/opt/rh/python27/root/usr/bin${PATH:+:${PATH}} |
| export LD_LIBRARY_PATH=/opt/rh/python27/root/usr/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} |
| export MANPATH=/opt/rh/python27/root/usr/share/man:${MANPATH} |
| # For systemtap |
| export XDG_DATA_DIRS=/opt/rh/python27/root/usr/share${XDG_DATA_DIRS:+:${XDG_DATA_DIRS}} |
| # For pkg-config |
| export PKG_CONFIG_PATH=/opt/rh/python27/root/usr/lib64/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}} |
| %endif |
| |
| # Preferences Java 1.8 over any other Java version. |
| export PATH=/usr/lib/jvm/java-1.8.0/bin:${PATH} |
| |
| # Downloads Gradle executable. |
| wget %{GRADLE_BASEURL}/gradle-%{GRADLE_VERSION}-bin.zip |
| unzip gradle-%{GRADLE_VERSION}-bin.zip |
| |
| # Builds the Aurora scheduler. |
| ./gradle-%{GRADLE_VERSION}/bin/gradle installDist |
| |
| # Configures pants to use our distributed platform-specific eggs. |
| # This avoids building mesos to produce them. |
| %{__mkdir_p} %{buildroot} |
| %{__cp} %{SOURCE12} %{buildroot} |
| export PANTS_CONFIG_OVERRIDE="['%{buildroot}/aurora-pants.ini']" |
| |
| # Builds Aurora client PEX binaries. |
| ./pants binary src/main/python/apache/aurora/kerberos:kaurora |
| mv dist/kaurora.pex dist/aurora.pex |
| ./pants binary src/main/python/apache/aurora/kerberos:kaurora_admin |
| mv dist/kaurora_admin.pex dist/aurora_admin.pex |
| |
| # Builds Aurora Thermos and GC executor PEX binaries. |
| ./pants binary src/main/python/apache/aurora/executor:thermos_executor |
| ./pants binary src/main/python/apache/aurora/tools:thermos |
| ./pants binary src/main/python/apache/aurora/tools:thermos_observer |
| ./pants binary src/main/python/apache/thermos/runner:thermos_runner |
| |
| # Packages the Thermos runner within the Thermos executor. |
| build-support/embed_runner_in_executor.py |
| |
| %install |
| rm -rf $RPM_BUILD_ROOT |
| |
| # Builds installation directory structure. |
| mkdir -p %{buildroot}%{_bindir} |
| mkdir -p %{buildroot}%{_docdir}/aurora-%{version} |
| mkdir -p %{buildroot}%{_prefix}/lib/aurora |
| mkdir -p %{buildroot}%{_sharedstatedir} |
| mkdir -p %{buildroot}%{_localstatedir}/lib/aurora |
| mkdir -p %{buildroot}%{_localstatedir}/log/aurora |
| mkdir -p %{buildroot}%{_localstatedir}/log/thermos |
| mkdir -p %{buildroot}%{_localstatedir}/run/thermos |
| mkdir -p %{buildroot}%{_sysconfdir}/aurora |
| mkdir -p %{buildroot}%{_sysconfdir}/init.d |
| mkdir -p %{buildroot}%{_sysconfdir}/systemd/system |
| mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d |
| mkdir -p %{buildroot}%{_sysconfdir}/sysconfig |
| |
| # Installs the Aurora scheduler that was just built into /usr/lib/aurora. |
| cp -r dist/install/aurora-scheduler/* %{buildroot}%{_prefix}/lib/aurora |
| |
| # Installs all PEX binaries. |
| for pex_binary in %{PEX_BINARIES}; do |
| install -m 755 dist/${pex_binary}.pex %{buildroot}%{_bindir}/${pex_binary} |
| done |
| |
| # Installs all support scripting. |
| %if 0%{?fedora} || 0%{?rhel} > 6 |
| install -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/systemd/system/aurora-scheduler.service |
| install -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/systemd/system/thermos.service |
| %else |
| install -m 755 %{SOURCE3} %{buildroot}%{_sysconfdir}/init.d/aurora-scheduler |
| install -m 755 %{SOURCE4} %{buildroot}%{_sysconfdir}/init.d/thermos |
| %endif |
| |
| install -m 755 %{SOURCE5} %{buildroot}%{_bindir}/aurora-scheduler-startup |
| install -m 755 %{SOURCE6} %{buildroot}%{_bindir}/thermos-startup |
| |
| install -m 644 %{SOURCE7} %{buildroot}%{_sysconfdir}/sysconfig/aurora-scheduler |
| install -m 644 %{SOURCE8} %{buildroot}%{_sysconfdir}/sysconfig/thermos |
| |
| install -m 644 %{SOURCE9} %{buildroot}%{_sysconfdir}/logrotate.d/aurora-scheduler |
| install -m 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/logrotate.d/thermos |
| |
| install -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/aurora/clusters.json |
| |
| |
| %pre |
| getent group %{AURORA_GROUP} > /dev/null || groupadd -r %{AURORA_GROUP} |
| getent passwd %{AURORA_USER} > /dev/null || \ |
| useradd -r -d %{_localstatedir}/lib/aurora -g %{AURORA_GROUP} \ |
| -s /bin/bash -c "Aurora Scheduler" %{AURORA_USER} |
| exit 0 |
| |
| # Pre/post installation scripts: |
| %post |
| %if 0%{?fedora} || 0%{?rhel} > 6 |
| %systemd_post aurora-scheduler.service |
| %else |
| /sbin/chkconfig --add aurora-scheduler |
| %endif |
| |
| %preun |
| %if 0%{?fedora} || 0%{?rhel} > 6 |
| %systemd_preun aurora-scheduler.service |
| %else |
| /sbin/service aurora-scheduler stop >/dev/null 2>&1 |
| /sbin/chkconfig --del aurora-scheduler |
| %endif |
| |
| %postun |
| %if 0%{?fedora} || 0%{?rhel} > 6 |
| %systemd_postun_with_restart aurora-scheduler.service |
| %else |
| /sbin/service aurora-scheduler start >/dev/null 2>&1 |
| %endif |
| |
| |
| %post -n aurora-executor |
| %if 0%{?fedora} || 0%{?rhel} > 6 |
| %systemd_post thermos.service |
| %else |
| /sbin/chkconfig --add thermos |
| %endif |
| |
| %preun -n aurora-executor |
| %if 0%{?fedora} || 0%{?rhel} > 6 |
| %systemd_preun thermos.service |
| %else |
| /sbin/service thermos stop >/dev/null 2>&1 |
| /sbin/chkconfig --del thermos |
| %endif |
| |
| %postun -n aurora-executor |
| %if 0%{?fedora} || 0%{?rhel} > 6 |
| %systemd_postun_with_restart thermos.service |
| %else |
| /sbin/service thermos start >/dev/null 2>&1 |
| %endif |
| |
| |
| %files |
| %defattr(-,root,root,-) |
| %doc docs/*.md |
| %{_bindir}/aurora-scheduler-startup |
| %attr(-,%{AURORA_USER},%{AURORA_GROUP}) %{_localstatedir}/lib/aurora |
| %attr(-,%{AURORA_USER},%{AURORA_GROUP}) %{_localstatedir}/log/aurora |
| %{_prefix}/lib/aurora/bin/* |
| %{_prefix}/lib/aurora/etc/* |
| %{_prefix}/lib/aurora/lib/* |
| %if 0%{?fedora} || 0%{?rhel} > 6 |
| %{_sysconfdir}/systemd/system/aurora-scheduler.service |
| %else |
| %{_sysconfdir}/init.d/aurora-scheduler |
| %endif |
| %config(noreplace) %{_sysconfdir}/logrotate.d/aurora-scheduler |
| %config(noreplace) %{_sysconfdir}/sysconfig/aurora-scheduler |
| |
| |
| %files -n aurora-tools |
| %defattr(-,root,root,-) |
| %{_bindir}/aurora |
| %{_bindir}/aurora_admin |
| %config(noreplace) %{_sysconfdir}/aurora/clusters.json |
| |
| |
| %files -n aurora-executor |
| %defattr(-,root,root,-) |
| %{_bindir}/thermos |
| %{_bindir}/thermos_executor |
| %{_bindir}/thermos_observer |
| %{_bindir}/thermos_runner |
| %{_bindir}/thermos-startup |
| %{_localstatedir}/log/thermos |
| %{_localstatedir}/run/thermos |
| %if 0%{?fedora} || 0%{?rhel} > 6 |
| %{_sysconfdir}/systemd/system/thermos.service |
| %else |
| %{_sysconfdir}/init.d/thermos |
| %endif |
| %config(noreplace) %{_sysconfdir}/logrotate.d/thermos |
| %config(noreplace) %{_sysconfdir}/sysconfig/thermos |
| |
| |
| %changelog |
| * Mon Jun 21 2016 Apache Aurora <dev@aurora.apache.org> 0.13.0-1.el7 |
| - Updated to Apache Aurora 0.13.0 |
| - Renamed the aurora service and all associated configurations to |
| aurora-scheduler. |
| - Renamed the thermos-observer service and all associated configurations |
| to thermos. |
| - Changed the example cluster name from 'main' to 'example'. |
| - Changed the default native_log_zk_group_path from '/aurora/native-log' |
| to '/aurora/replicated-log'. |
| - Updated example clusters.json to include all mandatory options. |
| |
| * Mon Mar 7 2016 Apache Aurora <dev@aurora.apache.org> 0.12.0-1.el7 |
| - Updated to Apache Aurora 0.12.0 |
| |
| * Wed Dec 23 2015 Apache Aurora <dev@aurora.apache.org> 0.11.0-1.el7 |
| - Updated to Apache Aurora 0.11.0 |
| |
| * Wed Dec 2 2015 Bill Farner <wfarner@apache.org> 0.10.0-1.el7 |
| - Updated to Apache Aurora 0.10.0 |
| |
| * Mon Aug 31 2015 Bill Farner <wfarner@apache.org> 0.9.0-1.el7 |
| - Apache Aurora 0.9.0 |