加载中...

jenkins部署


最近一直在玩 CI&CD,正好手上有闲置的服务器,就用来部署 Jenkins 了。

Jenkins 的安装及配置

本着能 docker 就 docker 的原则,就上 Google 搜了下,果然有 docker 部署 Jenkins 的教程

https://www.linuxidc.com/Linux/2020-01/161895.htm

Docker 环境下的安装

  • 在 Docker 容器中运行 Jenkins:

    docker run -p 8080:8080 -p 50000:5000 --name jenkins \
    -u root \
    -v /etc/localtime:/etc/localtime \
    -v /data/jenkins_home:/var/jenkins_home \
    -e Java_OPTS=-Duser.timezone=Asia/Shanghai \
    -d jenkins/jenkins:lts
  • echo ‘Asia/Shanghai’ >/etc/timezone

然后安装过程按照自己的需求来,大体可以参考上面链接的内容。

配置 https 及反代

自动话部署还是需要 ssl 来保证安全问题。

建站

方便起见,直接使用宝塔管理网站。

ssl

证书直接在宝塔里使用 Let’s Encrypt 申请。

反代

开始我用的宝塔自带的反代,结果一直出现”反代设置有误“

按照网上的教程做也没有,后来换了proxy_pass

upstream jenkins {
  server 127.0.0.1:8080 fail_timeout=0;
}

server {
  listen 80;
  server_name jenkins.domain.tld;
  return 301 https://$host$request_uri;
}

server {
  listen 443 ssl;
  server_name jenkins.domain.tld;

  ssl_certificate /etc/nginx/ssl/server.crt;
  ssl_certificate_key /etc/nginx/ssl/server.key;

  location / {
    proxy_set_header        Host $host:$server_port;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        X-Forwarded-Proto $scheme;
    proxy_redirect http:// https://;
    proxy_pass              http://jenkins;
    # Required for new HTTP-based CLI
    proxy_http_version 1.1;
    proxy_request_buffering off;
    proxy_buffering off; # Required for HTTP-based CLI to work over SSL
    # workaround for https://issues.jenkins-ci.org/browse/JENKINS-45651
    add_header 'X-SSH-Endpoint' 'jenkins.domain.tld:50022' always;
  }
}

但是进入网页发现图标大小不对,图片无法加载的问题,赶快再回去看 nginx 的配置,果然宝塔的默认配置设置了 css,图片的位置,注释掉就好了。

最后在系统管理-系统配置-Jenkins Location 中把 Jenkins URL 换成你的域名,就 ok 了。

更新

因为使用 docker 部署,所以用 Jenkins 执行 shell 的时候需要进 dockers 容器进行测试。(我一开始执行 python,怎么都找不到路劲,后来进容器安装了 anaconda。)

docker exec -it jenkins bash

像调整时间就需要进容器内设置

#进入容器
docker exec -it jenkins bash

# 查看容器时区
cat /etc/timezone
#Etc/UTC

#修改容器时区
echo  'Asia/Shanghai' > /etc/timezone

#退出容器
exit

# 重启容器
docker restart jenkins

参考链接:

https://www.linuxidc.com/Linux/2020-01/161895.htm

https://www.cnblogs.com/lovesKey/p/11520919.html

https://blog.csdn.net/qq_40168110/article/details/90755684


文章作者: Muryor
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Muryor !
评论
  目录