• docker&git&gitlab-安装/部署/新建


    我准备自己要做的事是写一套发布流程方案,然后部署起来,希望能在今年完成并搞到精通,然后然后,然后生活可能就会变得美好起来吧。

    利用Tower发布工具从本地代码下载到git服务器,然后提交到第一套gitlab平台上,选择-->发到试运行或者生产-->第二套gitlab做启动容器或者暂停容器-->k8s查询容器状态。 

    准备工作:

    172.23.210.30/16 172.23.255.237 gitlab
    4*4g*30g
    172.23.210.31/16 172.23.255.237 gitlab2
    4*4g*40g

    CPU,内存,都是有一定的要求,我这个物理配置已经是比较低配的了,否则最后安装完成还是打不开,有运行不起来的情况。 网关必须是跟物理机上的一致,否则连不上网。

    安装各种依赖,常用的先安装好吧,不喜欢中途报错各种花时间找原因,重装等。

    --安装gcc
    yum -y install gcc
    
    --安装g++
    yum -y install gcc-c++
    
    --安装编译所需的包
    yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
    yum -y install gcc perl-ExtUtils-MakeMaker

    ######## 编译安装的git ############

    ###先卸载旧版git####

    find / -name gitlab | xargs rm -rf #删除所有包含git文件
    yum remove git #卸载git

    ###下载安装指定版本git###

    https://mirrors.edge.kernel.org/pub/software/scm/git/

    yum -y install lrzsz
    tar -zxvf git-2.17.1.tar.gz
    cd git-2.17.1
    ./configure --prefix=/usr/local/git
    make && make install
    vim /etc/profile
    export PATH=$PATH:/usr/local/git/bin
    source /etc/profile
    git --version

    ./configure --prefix=/usr/local/git --with-config-file-path=/usr/local/git --with-openssl

     ##测试

    mkdir -p /jpdata/project/shengyijia/api-1/
    
    cd /jpdata/project/shengyijia/api-1/
    git init  #初始化仓库 
    git config
    --global user.name "wangzq" #设置用户名
    git config
    --global user.email "wangzq@****.com" #设置邮箱
    vim .git/config
    [core] repositoryformatversion
    = 0 filemode = true bare = false logallrefupdates = true [remote "origin"]
    url
    = http://192.168.1.12:8090/mml/demo/jp-spt-web-1.git
    fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master

    ###### 安装docker ###########
    3、卸载旧版本(如果安装过旧版本的话)
    $ sudo yum remove docker docker-common docker-selinux docker-engine

    4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
    $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 #已安装

    5、设置yum源
    $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    6、可以查看所有仓库中所有docker版本,并选择特定版本安装
    $ yum list docker-ce --showduplicates | sort -r #已测试

    7、安装docker

    $ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0	#安装错误
    $ sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce	#已安装成功
    

      

    8、启动并加入开机启动
    $ sudo systemctl start docker
    $ sudo systemctl enable docker

    9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
    $ docker version #已验证

    systemctl status docker #已验证

    ######docker 安装gitlab #######建议本地安装包安装,配置和权限等就会少很多麻烦 ####
    [root@nginx ~]# docker pull gitlab/gitlab-ce:11.11.4-ce.0

    1、通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。
    mkdir -p /mnt/gitlab/etc
    mkdir -p /mnt/gitlab/log
    mkdir -p /mnt/gitlab/data

    [root@nginx ~]# docker run -d
    --hostname 172.23.210.30
    -p 8443:443
    -p 80:80
    -p 2222:22
    -p 9090:9090
    --name gitlab
    --restart always
    -v /mnt/gitlab/etc:/etc/gitlab
    -v /mnt/gitlab/log:/var/log/gitlab
    -v /mnt/gitlab/data:/var/opt/gitlab
    gitlab/gitlab-ce:11.11.4-ce.0


    netstat -tnl #再查看本机端口状态


    1、修改/mnt/gitlab/etc/gitlab.rb
    vim /mnt/gitlab/etc/gitlab.rb #把external_url改成部署机器的域名或者IP地址
    external_url 'http://172.23.210.30'

    2、修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.yml #将host的值改成映射的外部主机ip地址和端口,这里会显示在gitlab克隆地址
    vim /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml
    port: 80

    打开浏览器测试,我用的是谷歌   http://172.23.210.31/

    #### 使用 docker 安装 runner 并且配置 runner 服务 ###

    #先关闭防火墙,不然后面会报错

    [root@localhost ~]# systemctl stop firewalld
    [root@localhost ~]# systemctl disable firewalld



    docker pull gitlab/gitlab-runner:v11.11.3 启动 docker run -d --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:v11.11.3 将gitlab上的项目注册到gitlab-runner中,注册步骤参考方式一: sudo docker exec -it gitlab-runner gitlab-ci-multi-runner register
    1、gitlab ci的地址以及token,管理中心-->Rrunner-->shared Runner URL: http:172.23.210.31/ #shared Runner,对所有工程开放使用
    2. 填写令牌:HjkxCccWSDweAkTeXGUa
    3. ssh 4.test-runner 5.test-runner 6.直接回车 7.直接回车

    如图:

    编辑打钩(否则build一直提示卡住,等待):

    成功后,可以看到gitlab->你的项目->settings -> CI/CD ->Runners settings 页面下面有以下内容:

    创建 gitlab用户
    useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

    gpasswd -a gitlab-runner root  #给gitlab-runner的权限跟root一样
    su gitlab-runner  #登陆gitlab-runner账号

    mkdir /home/gitlab-runner/  #创建gitlab-runner目录

    chown -R gitlab-runner:gitlab-runner gitlab-runner #该目录所属gitlab-runner组

    chmod -R 700 gitlab-runner   #该目录权限设置

    ssh-keygen -t rsa  #生成gitlab-runner专属秘钥

    cat /home/gitlab-runner/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys   #让本机能够访问gitlab-runner目录

    docker ps 

    docker exec  -it  gitlab-runner bash  #进入gitlab-runner容器

    cd  /home/gitlab-runner/ #查看容器内有没有秘钥,没有也要生成秘钥

    ssh-keygen -t rsa

    cat /home/gitlab-runner/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys   #让容器也能够访问gitlab-runner目录

    修改gitlab-runner 配置文件:

    vim /etc/gitlab-runner/config.toml

    concurrent = 1
    check_interval = 0

    [session_server]

    session_timeout = 1800

    [[runners]]
    name = "test-runner"
    url = "http://172.23.210.30/"
    token = "MzxnakxkYjQ4xT7Soy4y"
    executor = "ssh"
    builds_dir = "/jpdata/backup/gitlabrunner/"
    [runners.custom_build_dir]
    [runners.ssh]
    user = "root"
    host = "172.23.210.30"
    port = "22"
    identity_file = "/home/gitlab-runner/.ssh/id_rsa"
    [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]

    docker restart gitlab.runner  #docker的方式重启gitlab-runner

    sudo gitlab-runner start  #本地方式启动gitlab-runner
     
  • 相关阅读:
    C#获取指定日期为一年中的第几周
    Javascript arguments详解
    select2 插件
    [转]oracle存储过程中update不成功的一个原因
    [转]Oracle存储过程给变量赋值的方法
    [转]cron表达式详解
    [转]ssh中如何实现定时任务(spring对quartz的支持)
    [转]Oracle存储过程总结
    [转]Oracle 树操作(select…start with…connect by…prior)
    [转]oracle在删除表表空间用户时,如何释放磁盘空间
  • 原文地址:https://www.cnblogs.com/zhiqiao/p/11060218.html
Copyright © 2020-2023  润新知