gitlab自动触发jenkins

    技术2022-07-11  83

    设置jenkins:

    手动触发:

    [root@server6 ~]# chmod 777 /var/run/docker.sock   ##权限

    查看控制台:

    在harbor查看:

    自动触发:

    添加插件:

    在gitlab中打开外部请求:管理中心—>设置(网路)

    之后进入到项目中:设置(webhooks)

    在gitlab中:

    测试jenkins是否可以触发,上传镜像到harbor:

    第十次触发:

    在harbor仓库中查看:

    构建好jenkins自动触发:

    [root@server5 demo]# git add index.html [root@server5 demo]# git commit -a -m "updata index.html"

    [root@server5 demo]# git push -u origin master

    手动触发docker:

    [root@server6 ~]# curl localhost

    查看harbor仓库:

    远程构建镜像:

    在远程主机server8上安装docker

    [root@server6 sysctl.d]# scp bridge.conf root@192.168.21.139:/etc/sysctl.d/

    [root@server8 sysctl.d]# sysctl --system    ##使文件生效

    Jenkins使用tls方式连接docker构建主机:

    生成key和ca证书:

    [root@server8 ~]# openssl genrsa -aes256 -out ca-key.pem 4096

    [root@server8 ~]# openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem

    生成相应的文件:

    生成server-key和csr文件:

    [root@server8 ~]# openssl genrsa -out server-key.pem 4096

    [root@server8 ~]# openssl req -subj "/CN=server8" -sha256 -new -key server-key.pem -out server.csr

    可以使用ip地址方式进行tls连接:

    [root@server8 ~]# echo subjectAltName = DNS:server8,IP:192.168.21.139,IP:127.0.0.1 >> extfile.cnf

    [root@server8 ~]# echo extendedKeyUsage = serverAuth >> extfile.cnf

    [root@server8 ~]# openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem   -CAcreateserial -out server-cert.pem -extfile extfile.cnf

    安装docker证书:

    [root@server8 ~]# cp /usr/lib/systemd/system/docker.service /etc/systemd/system/docker.service

    [root@server8 ~]# vim /etc/systemd/system/docker.service

    [root@server8 ~]# cp ca.pem server-cert.pem server-key.pem /etc/docker/    ##将本机用到的证书移动到/etc/docker中

    [root@server8 ~]# systemctl daemon-reload      ##重新加载 [root@server8 ~]# systemctl restart docker         ##重启docker

    [root@server8 ~]# netstat -antlp      ##查看端口

    生成客户端key和证书:

    [root@server8 ~]# openssl genrsa -out key.pem 4096

    [root@server8 ~]# openssl req -subj '/CN=client' -new -key key.pem -out client.csr

    [root@server8 ~]# echo extendedKeyUsage = clientAuth > extfile.cnf

    [root@server8 ~]# openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem   -CAcreateserial -out cert.pem -extfile extfile.cnf

    在jenkins主机server6中:

    测试:

    禁用docker:(在server8添加解析)

    [root@server5 demo]# vim index.html

    [root@server5 demo]# git commit -a -m "update index.html v4"

    [root@server5 demo]# git push -u origin master

    [root@server8 docker]# vim /etc/hosts     ##添加解析

    [root@server6 docker]# scp -r certs.d/ root@192.168.21.139:/etc/docker/        ##复制证书

    手动触发:

    Processed: 0.016, SQL: 9