jenkins使用docker api配置自签证书 +发布项目

打印 上一主题 下一主题

主题 549|帖子 549|积分 1657

配置证书

1、创建目录/etc/docker/certs,

在该目录下执行下列下令
  1. openssl genrsa -aes256 -out ca-key.pem 4096
  2. openssl req -new -x509 -days 3650 -key ca-key.pem -sha256 -out ca.pem
  3. openssl genrsa -out server-key.pem 4096 \
  4. openssl req -subj "/CN=server" -sha256 -new -key server-key.pem -out server.csr \
  5. echo subjectAltName = DNS:223.5.5.5,IP:106.14.114.xx,IP:172.22.251.52,IP:127.0.0.1 >> extfile.cnf \
  6. echo extendedKeyUsage = serverAuth >> extfile.cnf \
  7. openssl x509 -req -days 3650 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf
  8. //备注 ip为自己服务器的内外网地址
  9. openssl genrsa -out key.pem 4096 \
  10. openssl req -subj '/CN=client' -new -key key.pem -out client.csr \
  11. echo extendedKeyUsage = clientAuth > extfile-client.cnf \
  12. openssl x509 -req -days 3650 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile-client.cnf
  13. rm -rf -v client.csr server.csr extfile.cnf extfile-client.cnf \
  14. chmod -v 0400 ca-key.pem key.pem server-key.pem \
  15. chmod -v 0444 ca.pem server-cert.pem cert.pem
复制代码
2、文件配置(/lib/systemd/system/docker.service )
编辑该文件如下:
  1. [Service]
  2. ExecStart=
  3. ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/certs/ca.pem --tlscert=/etc/docker/certs/server-cert.pem --tlskey=/etc/docker/certs/server-key.pem -H fd:// -H tcp://0.0.0.0:2376
复制代码
3、重启docker服务
  1. systemctl enable docker.service && systemctl daemon-reload  && systemctl start docker.service
  2. systemctl status docker.service
复制代码
4、检察docker api服务是否乐成
  1. netstat -lntp | grep dockerd
复制代码
二、Jenkins配置

1、配置coding代码仓库访问权限。
2、配置docker镜像
3、docker api配置:Jenkins配置三个证书(ca.pem、cert.pem、key.pem)




三、新建试图、配置使命

使命:新建使命——>流水线——>选择“Pipeline script from SCM”——>选择“git”(配置Jenkinsfile路径、取消“轻量级检出”)
四. jenkinsfile上的配置

  1. stage('Deploy to docker') {
  2.             environment {
  3.                 // docker客户端证书凭证,若不需要ssl访问则注释
  4.                 DOCKER_CERT_PATH = credentials('saidi252-credit')
  5.             }
  6.             steps {
  7.                 script {
  8.                     container_port = 80
  9.                     container_port_map = ""
  10.                     docker_client_env = ""
  11.                     if (params.container_port) {
  12.                         container_port = "${params.container_port}"
  13.                         container_port_map = " -p ${params.container_port}:80 "
  14.                     }
  15.                     if (params.docker_remotes) {
  16.                         def docker_remote_arr = "${params.docker_remotes}".split(",")
  17.                         // 部署服务处理
  18.                         for (int i = 0; i < docker_remote_arr.size(); ++i) {
  19.                             docker_remote = "${docker_remote_arr[i]}"
  20.                             docker_client_env = "export DOCKER_TLS_VERIFY=1; export DOCKER_HOST=tcp://${docker_remote}:2377; docker_remote=${docker_remote};"
  21.                             sh "$docker_client_env docker rm -f $DOMAIN_NAME"
  22.                             //部署服务
  23.                             sh "$docker_client_env docker run -d --name ${DOMAIN_NAME} --restart=always \
  24.                             -e TZ='Asia/Shanghai'  -e CONTAINER_PORT=${container_port} -m ${LIMIT_MEMORY}M \
  25.                             $container_port_map -v /etc/localtime:/etc/localtime:ro   \
  26.                             $docker_image"
  27.                            echo "清理过时的镜像"
  28.                            sh "$docker_client_env docker images $docker_image_name -q --filter before=$docker_image | xargs --no-run-if-empty docker rmi "
  29.                         }
  30.                     }
  31.                 }
  32.             }
  33.         }
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

泉缘泉

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表