def add_cronjobs(): conn = consul_kv.Connection(endpoint="http://consul:8500/v1/") target_path_env = "facebook-auto-feed/config/ENVIRONMENT" target_path_platform = "facebook-auto-feed/config/PLATFORM" try: raw_env = conn.get(target_path_env) raw_platform = conn.get(target_path_platform) except: print("problem connecting to consul...ignoring") return None regex_string = "^facebook-auto-feed/config/" for k, v in raw_env.items(): env = re.sub(regex_string, '', v) for k, v in raw_platform.items(): platform = re.sub(regex_string, '', v) cronjob_home_s3_sync = "*/3 * * * * aws s3 sync /home s3://facebook-auto-feed-{0}-{1}".format( env, platform) cmd0 = "echo \"{}\" >> /var/spool/cron/crontabs/admin".format( cronjob_home_s3_sync) p = subprocess.Popen(cmd0, shell=True) cronjob_rl_data_s3_sync = "*/4 * * * * aws s3 sync /rl/data s3://facebook-auto-feed-{0}-{1}".format( env, platform) cmd1 = "echo \"{}\" >> /var/spool/cron/crontabs/admin".format( cronjob_rl_data_s3_sync) p = subprocess.Popen(cmd1, shell=True) subprocess.run(["chgrp", "crontab", "/var/spool/cron/crontabs/admin"]) os.waitpid(p.pid, 0) time.sleep(10) subprocess.run(["service", "cron", "restart"])
def __init__(self, profile): # example: curl -s http://consul.media.dev.usa.reachlocalservices.com:8500/v1/kv/tf_managed/media-gateway?keys #response = requests.get("http://consul.media.dev.usa.reachlocalservices.com:8500/v1/kv/tf_managed/media-gateway?keys") # this dictionary is a kludge until networking is sorted out for consul # see terraform-configurations/aws_core_services/consul endpoints = { 'dev-usa': 'http://consul.media.dev.usa.reachlocalservices.com:8500/v1/', 'qa-aus': 'http://consul.media.qa.aus.reachlocalservices.com:8500/v1/', 'qa-can': 'http://consul.media.qa.can.reachlocalservices.com:8500/v1/', 'qa-eur': 'http://consul.media.qa.eur.reachlocalservices.com:8500/v1/', 'qa-gbr': 'http://consul.media.qa.gbr.reachlocalservices.com:8500/v1/', 'qa-jpn': 'http://consul.media.qa.jpn.reachlocalservices.com:8500/v1/', 'qa-usa': 'http://consul.media.qa.usa.reachlocalservices.com:8500/v1/', 'prod-aus': 'https://consul-external.media.prod.aus.reachlocalservices.com/v1/', 'prod-can': 'https://consul-external.media.prod.can.reachlocalservices.com/v1/', 'prod-gbr': 'https://consul-external.media.prod.gbr.reachlocalservices.com/v1/', 'prod-eur': 'https://consul-external.media.prod.eur.reachlocalservices.com/v1/', 'prod-jpn': 'https://consul-external.media.prod.jpn.reachlocalservices.com/v1/', 'prod-usa': 'https://consul-external.media.prod.usa.reachlocalservices.com/v1/' } self.conn = consul_kv.Connection(endpoint=endpoints[profile])
def scrape_consul_for_users(): try: conn = consul_kv.Connection(endpoint="http://consul:8500/v1/") target_path = "facebook-auto-feed/users" allusers = conn.get(target_path, recurse=True) return allusers except: print("problem scraping consul for users...ignoring") return None
def get_role_id(self): #TODO: delete this after 06/2022 #conn = consul_kv.Connection(endpoint="http://consul.media.dev.usa.reachlocalservices.com:8500/v1/") conn = consul_kv.Connection(endpoint="https://consul.dev.usa.media.reachlocalservices.com/v1/") target_path = "jenkins-rl-bin/config/role_id" try: raw_target_path = conn.get(target_path) role_id = raw_target_path['jenkins-rl-bin/config/role_id'] return role_id except: print("problem scraping consul role_id...ignoring") return None
def create_admin_user(): # get admin user password from consul conn = consul_kv.Connection(endpoint="http://consul:8500/v1/") target_path = "facebook-auto-feed/config/admin" try: admin = conn.get(target_path) except: print("problem connecting to consul...ignoring") return None for raw_username, raw_password in admin.items(): regex_string = "^facebook-auto-feed/config/" username = re.sub(regex_string, '', raw_username) password = raw_password homedir = "/home/{}".format(username) subprocess.run([ "useradd", "-c", "gecos", "-d", "/tmp/admin", "-N", "-p", password, username ]) time.sleep(3) print("update admin password") subprocess.run(["usermod", "-p", password, username])
def __init__(self): # example: curl -s http://consul.media.dev.usa.reachlocalservices.com:8500/v1/kv/tf_managed/media-gateway?keys #response = requests.get("http://consul.media.dev.usa.reachlocalservices.com:8500/v1/kv/tf_managed/media-gateway?keys") self.conn = consul_kv.Connection( endpoint= 'http://consul.media.dev.usa.reachlocalservices.com:8500/v1/')