博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在阿里云容器服务上,轻松搭建Concourse CI
阅读量:5880 次
发布时间:2019-06-19

本文共 2509 字,大约阅读时间需要 8 分钟。

Concourse CI是一款CI/CD工具,它的魅力在于极简设计,被广泛应用于Cloud Foundry各个模块的CI/CD。阿里云也推出了CI工具,开箱即用,推荐试用。

image

Concourse CI官方提供了标准的Docker镜像,在阿里云容器服务部署一套 Concourse CI应用是很轻松的一件事儿。

准备Docker集群

  • 首先,在阿里云容器服务创建一个集群。简单起见,这里节点数为1,网络类型为经典网络。

集群创建过程大约几分钟,成功后的状态如下图:

image

  • 然后需要开启8080端口的入网权限:

image

  • 接下来,SSH到节点上,创建容器目录,脚本如下:
  1. -p keys/web keys/worker
    ssh-keygen -t rsa -f ./keys/web/tsa_host_key -N ''
    ssh-keygen -t rsa -f ./keys/web/session_signing_key -N ''
    ssh-keygen -t rsa -f ./keys/worker/worker_key -N ''
  2. ./keys/worker/worker_key.pub ./keys/web/authorized_worker_keys
  3. ./keys/web/tsa_host_key.pub ./keys/worker

部署Concourse CI

  • 在容器服务控制台, 填写基本信息如下图:

image

  • 用compose模板来创建应用,模板如下:

    version: '2'services:  concourse-db:    image: postgres:9.5    privileged: true    environment:      POSTGRES_DB: concourse      POSTGRES_USER: concourse      POSTGRES_PASSWORD: changeme      PGDATA: /database  concourse-web:    image: concourse/concourse    links: [concourse-db]    command: web    privileged: true    depends_on: [concourse-db]    ports: ["8080:8080"]    volumes: ["/keys/web:/concourse-keys"]    restart: unless-stopped # required so that it retries until conocurse-db comes up    environment:      CONCOURSE_BASIC_AUTH_USERNAME: concourse      CONCOURSE_BASIC_AUTH_PASSWORD: changeme      CONCOURSE_EXTERNAL_URL: "${CONCOURSE_EXTERNAL_URL}"      CONCOURSE_POSTGRES_HOST: concourse-db      CONCOURSE_POSTGRES_USER: concourse      CONCOURSE_POSTGRES_PASSWORD: changeme      CONCOURSE_POSTGRES_DATABASE: concourse  concourse-worker:    image: concourse/concourse    privileged: true    links: [concourse-web]    depends_on: [concourse-web]    command: worker    volumes: ["/keys/worker:/concourse-keys"]    environment:      CONCOURSE_TSA_HOST: concourse-web    dns: 8.8.8.8
  • 在创建应用之前需要填写模板参数, CONCOURSE_EXTERNAL_URL,值为 http://your-ecs-public-ip:8080,如下图所示:

image

  • 创建之后会启动3个服务,DB、Web和Worker,如下图:

image

  • 至此,Concourse CI部署完成,在浏览器输入http://your-ecs-public-ip:8080即可访问。用户名密码是concourse/changeme
    image

第一个CI任务(Hello world)

  • 安装CLI客户端,在上一步浏览器中下载对应您操作系统的CLI. 本例以ECS(ubuntu16.04),安装之后可以查看一下版本

  1. -v

    3.4.0

  • 连接Target, 用户名密码是concourse/changeme

  1. -t lite login -c
  2. in to team 'main'
    username: concourse
    password:
  3. saved

  • 一个简单的配置模板, 保存为hello.yml

    jobs:- name: hello-world  plan:  - task: say-hello    config:      platform: linux      image_resource:        type: docker-image        source: {repository: ubuntu}      run:        path: echo        args: ["Hello, world!"]
  • 注册任务

  1. -t lite set-pipeline -p hello-world -c hello.yml

  • 启动任务

  1. -t lite unpause-pipeline -p hello-world

  • 成功执行的界面如下

image

最后

本文仅仅是安装引导,欢迎探索Concourse CI更多特性。

参考

转载地址:http://nkjix.baihongyu.com/

你可能感兴趣的文章
mysql多实例配置
查看>>
libvlc设置
查看>>
我的友情链接
查看>>
学生机房虚拟化(九)系统操作设计思路
查看>>
JQ笔记之选择器
查看>>
从自动化测试到持续部署,你需要了解这些
查看>>
linux文件系统
查看>>
处理不同jQuery版本的兼容性问题
查看>>
UITabbarViewController
查看>>
nginx 报错 upstream timed out (110: Connection timed out)解决方案
查看>>
hashMap的代码
查看>>
[iOS] iOS调用系统通知(二)
查看>>
Python教程:[30]写入Excel
查看>>
android帧切换播放动画
查看>>
ssh锁定(chroot)普通账号的活动目录
查看>>
Crontab
查看>>
使用概要管理工具创建定制概要文件,并在此节点上 创建集群以及在集群服务器中部署应用...
查看>>
Shiro基础
查看>>
我的友情链接
查看>>
ThreadLocal
查看>>