Last active
August 29, 2015 14:11
-
-
Save el-dude/eb9bb946f1939697deac to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
# | |
### | |
import logging | |
from util import color_stream | |
handler = color_stream.ColorizingStreamHandler() | |
handler.setFormatter(logging.Formatter(\ | |
"%(asctime)s [%(levelname)5s] %(name)s - %(message)s")) | |
root = logging.getLogger() | |
root.addHandler(handler) | |
root.setLevel(logging.WARN) | |
logger = logging.getLogger(__name__) | |
## will apply to all child modules of this package, as well | |
logger.setLevel(logging.DEBUG) | |
import re | |
import os, platform, sys | |
import urllib2 | |
url = "http://repos.fedorapeople.org/repos/pulp/pulp/rhel-pulp.repo" | |
file_name = url.split('/')[-1] | |
u = urllib2.urlopen(url) | |
f = open("/etc/yum.repos.d/"+file_name, 'wb') | |
meta = u.info() | |
file_size = int(meta.getheaders("Content-Length")[0]) | |
print "Downloading: %s Bytes: %s" % (file_name, file_size) | |
file_size_dl = 0 | |
block_sz = 8192 | |
while True: | |
buffer = u.read(block_sz) | |
if not buffer: | |
break | |
file_size_dl += len(buffer) | |
f.write(buffer) | |
status = r"%10d [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size) | |
status = status + chr(8)*(len(status)+1) | |
print status, | |
f.close() | |
v6 = "el6" | |
v7 = "el7" | |
os_version = platform.release() | |
if re.search(v6, os_version): | |
url = "https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm" | |
mongo_start = "service mongod start" | |
mongo_on = "chkconfig mongod on" | |
qpid_start = "service qpidd start" | |
qpid_on = "chkconfig qpidd on" | |
httpd_start = "service httpd start" | |
httpd_on = "chkconfig httpd on" | |
elif re.search(v7, os_version): | |
url = "https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm" | |
mongo_start = "systemctl enable mongod" | |
mongo_on = "systemctl start mongod" | |
qpid_start = "systemctl enable qpidd" | |
qpid_on = "systemctl start qpidd" | |
httpd_start = "systemctl start httpd" | |
httpd_on = "systemctl enable httpd" | |
else: | |
#logger.error('OS %s not supported. \ | |
# the following Versions are supported: %s %s') % ( os_version, v6, v7 ) | |
print("ERR OS %s not supported. \ | |
the following Versions are supported: %s %s") % ( os_version, v6, v7 ) | |
def cmd_runner(cmd): | |
assert str(cmd), "ERR cmd is not defined" | |
run = os.system(cmd) | |
return run | |
# Pulp pkg's to isntall | |
pulp_pkgs = [ | |
"mongodb-server", | |
"boost-1.41.0-25.el6.x86_64", | |
"python-ordereddict", | |
"python-kombu", | |
"python-billiard", | |
"pytz", | |
"python-setuptools", | |
"python-importlib", | |
"python-dateutil", | |
"pyparsing", | |
"python-requests", | |
"python-qpid-common", | |
"python-gofer", | |
"python-gofer-qpid", | |
"python-isodate", | |
"python-ldap", | |
"python-nectar", | |
"python-pulp-common", | |
"apr", | |
"apr-util", | |
"apr-util-ldap", | |
"httpd-tools", | |
"mailcap", | |
"genisoimage", | |
"httpd", | |
"m2crypto", | |
"mod_ssl", | |
"mod_wsgi", | |
"python-deltarpm", | |
"python-simplejson", | |
"setools-libs-python", | |
"createrepo", | |
"python-lxml", | |
"python-pulp-rpm-common", | |
"python-rhsm", | |
"qpid-cpp-server", | |
"qpid-cpp-server-store"] | |
pulp_grp_install = "pulp-server-qpid" | |
# Install EPEL Repo: | |
# If this doesn't work, like if you get an error about | |
# Error: Package: pulp-server-2.5.0-1.el6.noarch (pulp-2-stable) | |
# Then make sure that the Repo is enabled in | |
# /etc/yum.repos.d/epel.repo | |
# it should be set to: enabled=1 | |
install_epel = "rpm -Uvh %s" % url | |
cmd_runner(install_epel) | |
# Install Pulp Pkg's: | |
for pkg in pulp_pkgs: | |
yum_install = "yum install %s -y" % pkg | |
cmd_runner(yum_install) | |
grp_install_cmd = "yum groupinstall %s -y" % pulp_grp_install | |
cmd_runner(grp_install_cmd) | |
### Post install chkconfig/systemd: | |
# Enable mongodb: | |
cmd_runner(mongo_start) | |
cmd_runner(mongo_on) | |
# Enable qpid: | |
cmd_runner(qpid_start) | |
cmd_runner(qpid_on) | |
### Initialize Pulp’s database: | |
initdb = "sudo -u apache pulp-manage-db" | |
cmd_runner(initdb) | |
# Enable httpd: | |
cmd_runner(httpd_start) | |
cmd_runner(httpd_on) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment