Замена GitLab¶
-
fetch
(configs_dir)¶ Функция, в которой осуществляется вся предварительная выгрузка конфигурационных файлов для анализа.
В секции GitLab вызывается функция fetch_git()
, которая отвечает за выгрузку из Git.
Можно исправить ее, или добавить свою секцию в конфигурационный файл и дописать еще одну функцию.
Например, для прямого получения по ssh можно использовать что-то вроде:
def fetch_ssh(self):
from subprocess import call, check_output
# Imported in __init__.py
# from os.path import join as pjoin
for server in servers:
call([
"scp",
"%s.example.com:/etc/nginx/nginx.conf" % server,
pjoin(self.configs, "nginx.%s.all" % server)
])
config = open(pjoin(self.configs, "nginx.%s.all" % server), "r").read()
with open(pjoin(self.configs, "nginx.%s.all" % server), "a") as main:
for incl in re.findall(r"(?:^i|^ +i)nclude (.+);$", config, re.M):
inc_conf = check_output([
"ssh", "%s.example.com" % server,
"cat", "/etc/nginx/%s" % incl
])
config = config.replace("include " + incl + ";", inc_conf)
main.write(conf)
call(["scp",
"%s.example.com:/etc/haproxy/haproxy.cfg" % server,
pjoin(self.configs, "haproxy.%s.all" % server)])