install_runner.py 2.74 KB
Newer Older
金凯强's avatar
金凯强 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
# coding=utf-8
import os


def install_runner(HSCUSCODE=None):
    # 创建配置文件
    if not HSCUSCODE:
        HSCUSCODE = input("请输入客户代号HSCUSCODE:")
        print(HSCUSCODE)
    if os.path.exists('/etc/gitlab-runner/config.toml'):
        with open('/etc/gitlab-runner/config.toml', 'r') as f:
            content = f.read()
        if 'huansi.{hscode}'.format(hscode=HSCUSCODE) not in content:
            register_huansi_runner(HSCUSCODE)

        # if 'gitlab.{hscode}'.format(hscode=HSCUSCODE) not in content:
        #     register_gitlab_runner(HSCUSCODE)
    else:
        register_huansi_runner(HSCUSCODE)

        # register_gitlab_runner(HSCUSCODE)

    os.system("sudo chmod 777 /etc/gitlab-runner/config.toml")
    with open('/etc/gitlab-runner/config.toml', 'r') as f:
        s = f.read()
        a = s.replace(' volumes = ["/cache"]',
金凯强's avatar
金凯强 committed
27
                      'volumes = ["/var/run/docker.sock:/var/run/docker.sock","/etc/profile.d/huansi.sh:/etc/profile.d/huansi.sh" ,"/cache","/huansi/gitlab-runner/builds:/builds/hs"]')
金凯强's avatar
金凯强 committed
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
    with open('/etc/gitlab-runner/config.toml', 'w') as f:
        f.write(a)

    s2 = os.system("sudo docker run -d --name gitlab-runner --restart always \
                   -v /etc/gitlab-runner:/etc/gitlab-runner \
                   -v /var/run/docker.sock:/var/run/docker.sock \
                   -v /etc/profile.d/huansi.sh:/etc/profile.d/huansi.sh \
                   gitlab/gitlab-runner:latest")
    assert s2 == 0, "安装runner失败"

    s3 = os.system("sudo docker restart gitlab-runner")
    assert s3 == 0, "runner 配置成功"


def register_gitlab_runner(HSCUSCODE):
    s4 = os.system("sudo docker run --rm -t -i -v /etc/gitlab-runner:/etc/gitlab-runner gitlab/gitlab-runner register \
                       -n -u https://gitlab.com/ -r Y1Px-4YpZ8qevi6vCxVY --executor docker --docker-image docker \
                       --description gitlab.{hscode} \
                       --tag-list {hscode}".format(hscode=HSCUSCODE))
    assert s4 == 0, "gitlab_runner配置失败,如果要重新执行,不要再次执行init.py文件,请直接执行install_docker.py文件"


def register_huansi_runner(HSCUSCODE):
    s1 = os.system("sudo docker run --rm -t -i -v /etc/gitlab-runner:/etc/gitlab-runner gitlab/gitlab-runner register \
                       -n -u http://47.110.145.204:8085/ -r WwpzH4qk19KjvAjEwoTz --executor docker --docker-image docker \
                       --description huansi.{hscode} \
                       --tag-list huansi.{hscode}".format(hscode=HSCUSCODE))
    assert s1 == 0, "huansi_runner配置失败,如果要重新执行,不要再次执行init.py文件,请直接执行install_docker.py文件"


if os.path.exists('/etc/gitlab-runner'):
    install_runner()
    print("runner安装成功")