mirror of
https://github.com/ansible/awx.git
synced 2024-11-01 08:21:15 +03:00
eb42214d90
* Move the ansible-tower service script to a normal bin utility * Modify the playbook to not call the old meta init script but to use the specific services that are needed
145 lines
5.0 KiB
Python
Executable File
145 lines
5.0 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
# Copyright (c) 2014 AnsibleWorks, Inc.
|
|
# All Rights Reserved.
|
|
|
|
import os
|
|
import datetime
|
|
import glob
|
|
import sys
|
|
import shutil
|
|
from setuptools import setup
|
|
|
|
from awx import __version__
|
|
|
|
if os.getenv('OFFICIAL', 'no') == 'yes':
|
|
build_timestamp = ''
|
|
else:
|
|
build_timestamp = '-' + os.getenv("BUILD", datetime.datetime.now().strftime('0.git%Y%m%d%H%M'))
|
|
|
|
# Paths we'll use later
|
|
etcpath = "/etc/tower"
|
|
homedir = "/var/lib/awx"
|
|
sharedir = "/usr/share/awx"
|
|
bindir = "/usr/bin"
|
|
munin_plugin_path = "/etc/munin/plugins/"
|
|
munin_plugin_conf_path = "/etc/munin/plugin-conf.d"
|
|
|
|
if os.path.exists("/etc/debian_version"):
|
|
sysinit = "/etc/init.d"
|
|
webconfig = "/etc/apache2/conf.d"
|
|
shutil.copy("config/awx-munin-ubuntu.conf", "config/awx-munin.conf")
|
|
# sosreport-3.1 (and newer) look in '/usr/share/sosreport/sos/plugins'
|
|
# sosreport-3.0 looks in '/usr/lib/python2.7/dist-packages/sos/plugins'
|
|
# debian/<package>.links will create symlinks to support both versions
|
|
sosconfig = "/usr/share/sosreport/sos/plugins"
|
|
else:
|
|
sysinit = "/etc/rc.d/init.d"
|
|
webconfig = "/etc/httpd/conf.d"
|
|
shutil.copy("config/awx-munin-el.conf", "config/awx-munin.conf")
|
|
# The .spec will create symlinks to support multiple versions of sosreport
|
|
sosconfig = "/usr/share/sosreport/sos/plugins"
|
|
|
|
#####################################################################
|
|
# Helper Functions
|
|
|
|
def explode_glob_path(path):
|
|
"""Take a glob and hand back the full recursive expansion,
|
|
ignoring links.
|
|
"""
|
|
|
|
result = []
|
|
includes = glob.glob(path)
|
|
for item in includes:
|
|
if os.path.isdir(item) and not os.path.islink(item):
|
|
result.extend(explode_glob_path(os.path.join(item, "*")))
|
|
else:
|
|
result.append(item)
|
|
return result
|
|
|
|
|
|
def proc_data_files(data_files):
|
|
"""Because data_files doesn't natively support globs...
|
|
let's add them.
|
|
"""
|
|
|
|
result = []
|
|
|
|
# If running in a virtualenv, don't return data files that would install to
|
|
# system paths (mainly useful for running tests via tox).
|
|
if hasattr(sys, 'real_prefix'):
|
|
return result
|
|
|
|
for dir,files in data_files:
|
|
includes = []
|
|
for item in files:
|
|
includes.extend(explode_glob_path(item))
|
|
result.append((dir, includes))
|
|
return result
|
|
|
|
#####################################################################
|
|
|
|
setup(
|
|
name='ansible-tower',
|
|
version=__version__.split("-")[0], # FIXME: Should keep full version here?
|
|
author='Ansible, Inc.',
|
|
author_email='support@ansible.com',
|
|
description='ansible-tower: API, UI and Task Engine for Ansible',
|
|
long_description='AWX provides a web-based user interface, REST API and '
|
|
'task engine built on top of Ansible',
|
|
license='Proprietary',
|
|
keywords='ansible',
|
|
url='http://github.com/ansible/ansible-commander',
|
|
packages=['awx'],
|
|
include_package_data=True,
|
|
zip_safe=False,
|
|
setup_requires=[],
|
|
classifiers=[
|
|
'Development Status :: 5 - Production/Stable',
|
|
'Environment :: Web Environment',
|
|
'Framework :: Django',
|
|
'Intended Audience :: Developers',
|
|
'Intended Audience :: Information Technology',
|
|
'Intended Audience :: System Administrators'
|
|
'License :: Other/Proprietary License',
|
|
'Natural Language :: English',
|
|
'Operating System :: OS Independent',
|
|
'Operating System :: POSIX',
|
|
'Programming Language :: Python',
|
|
'Topic :: System :: Installation/Setup',
|
|
'Topic :: System :: Systems Administration',
|
|
],
|
|
entry_points = {
|
|
'console_scripts': [
|
|
'awx-manage = awx:manage',
|
|
'tower-manage = awx:manage',
|
|
],
|
|
},
|
|
data_files = proc_data_files([
|
|
("%s" % homedir, ["config/wsgi.py",
|
|
"awx/static/favicon.ico"]),
|
|
("%s" % webconfig, ["config/awx-httpd-80.conf",
|
|
"config/awx-httpd-443.conf",
|
|
"config/awx-munin.conf"]),
|
|
("%s" % sharedir, ["tools/scripts/request_tower_configuration.sh",]),
|
|
("%s" % munin_plugin_path, ["tools/munin_monitors/tower_jobs",
|
|
"tools/munin_monitors/callbackr_alive",
|
|
"tools/munin_monitors/celery_alive",
|
|
"tools/munin_monitors/postgres_alive",
|
|
"tools/munin_monitors/redis_alive",
|
|
"tools/munin_monitors/socketio_alive",
|
|
"tools/munin_monitors/taskmanager_alive"]),
|
|
("%s" % munin_plugin_conf_path, ["config/awx_munin_tower_jobs"]),
|
|
("%s" % bindir, ["tools/scripts/ansible-tower-service"]),
|
|
("%s" % sosconfig, ["tools/sosreport/tower.py"])]),
|
|
options = {
|
|
'egg_info': {
|
|
'tag_build': build_timestamp,
|
|
},
|
|
'aliases': {
|
|
'dev_build': 'clean --all egg_info sdist',
|
|
'release_build': 'clean --all egg_info -b "" sdist',
|
|
},
|
|
},
|
|
)
|