设为首页 收藏本站
查看: 1262|回复: 0

[经验分享] k8s与CICD

[复制链接]

尚未签到

发表于 2018-1-6 07:41:45 | 显示全部楼层 |阅读模式
  一直没有时间完成drone系列文章。drone-wechat插件实现了一半,由于企业微信token申请比较麻烦,所以也没有进展。今天抽出时间,研究了一下scp插件,主要目的是实现非容器项目的部署。其实就是借助scp插件,将构建好的go项目可执行文件和配置文件发布到指定主机上。本项目依旧基于baa-cicd项目。

.drone.yml
  直接上.drone.yml 文件
  

workspace:  
  base: /go
  
  path: src/gogs.xxx.com/baa-cicd
  
pipeline:
  
  build:
  
    image: golang:latest
  
    commands:
  
      - go build -o baa-cicd
  # publish:
  #   image: plugins/docker
  #   registry: registry.xxx.com
  #   repo: registry.xxx.com/test/baa-cicd
  #   tags: latest
  #   secrets: [ docker_username, docker_password ]
  #   insecure: true
  
  scp:
  
    image: appleboy/drone-scp
  
    host: 10.xx.xx.170
  
    username: root
  
    key_path: deploy_rsa
  
    rm: true
  
    target:
  
     - /rc/local
  
    source:
  
     - baa-cicd
  
  ssh:
  
    image: appleboy/drone-ssh
  
    host:10.xx.xx.170
  
    username: root
  
    key_path: deploy_rsa
  
    script:

  
      - supervisorctl -c /rc/conf/supervisord.conf>  

notify:  

image: plugins/slack  

webhook: https://hooks.slack.com/ www.dijiuyy.com services/xxx/xxx/xxx  

channel: dev  

template: >{{#success build.status}}  build
{{build.number}} succeeded. Good job.{{else}}  build
{{build.number}} failed. Fix me please.  {{/success}}
  


  • scp 插件基于ssh实现。所以关键是ssh的相关设置比较重要。比如允许root用户ssh登录,以及密码和rsa秘钥几种登录方式的配置。我们这边基本上都是openssh,所以可以先了解一下openssh的设置。这边我主要允许root登录,编辑 /etc/ssh/sshd_config,注意:PermitRootLogin yes。
  • 关于rsa秘钥登录,这边就不做更多介绍了。
  • 此处deploy_rsa是放置了ssh登录秘钥的文件。
  • 当然光是拷贝了文件,并不能完成部署。所以此处引用了另外一个插件ssh,简单假设项目是用supervisior管理进程,那么ssh执行supervisorctl -c /rc/conf/supervisord.conf>
  • 其实此处再引入一个插件并不是特别合适,感觉有点麻烦,其实个人感觉scp引入一个script参数,比较好,第九影院执行一些拷贝完成以后的操作指令。
scp 插件介绍
  配置简介:
  scp插件通过ssh拷贝文件到目标主机,下面是如何在drone中使用的sample
  

pipeline:  
  scp:
  
    image: appleboy/drone-scp
  
    host: example.com
  
    target: /home/deploy/web

  
    source:>  

  自定义用户名和密码以及端口的配置示例:
  

pipeline:  scp:
  image: appleboy/drone-scp
  host: example.com
  
+   username: appleboy
  
+   password: 12345678
  
+   port: 4430
  target: /home/deploy/web

  source:>  

  项目需要从多个文件拷贝到目的主机多个文件的配置示例:
  

pipeline:  
  scp:
  
    image: appleboy/drone-scp
  
    host: example.com
  
    target:
  
+     - /home/deploy/web1
  
+     - /home/deploy/web2
  
    source:

  
+     ->
  
+     ->  

  此处注意的就是一一对应关系。我理解的场景是,在项目中配置文件和可执行文件处于不同的文件夹下,或多个配置文件。
  一般项目部署为了高可用,会将项目部署在多台主机上,所以下面是一个多目标主机的配置示例:
  

pipeline:  scp:
  image: appleboy/drone-scp
  
-   host: example.com
  
+   host:
  
+     - example1.com
  
+     - example2.com
  target: /home/deploy/web

  source:>  

  当然文件比较多的时候,如果一一写出就过于麻烦了,该scp支持模式匹配:
  

pipeline:  scp:
  image: appleboy/drone-scp
  host:
  - example1.com
  - example2.com
  target: /home/deploy/web
  source:

  
-     ->
  
-     ->
  
+     ->  

  当然依旧可以定义触发条件:
  

pipeline:  scp:
  image: appleboy/drone-scp
  host: example.com
  target: /home/deploy/web

  source:>  
+   when:
  
+     status: success
  
+     event: tag
  

  参数简介:
  

host  
目的主机的域名或是ip
  

  
port
  
目标主机的ssh端口
  

  
username
  
目的主机ssh用户名
  

  
password
  
目的主机ssh密码
  

  
key
  
访问主机的秘钥
  

  
target
  
目的主机目的文件路径
  

  
source
  
想要拷贝的文件列表
  

  
rm
  
在拷贝之前删除原文件的开关
  

  
timeout
  
建立tcp连接的最大超时时间
  

  

插件源码
  该插件作者貌似是一个台湾同胞。贡献了其他很多的drone插件,比如k8s 和telegram。这里源码地址,大致可以看看,主要是了解drone插件的编写思路。等不忙的时候,继续完成我的drone-wechat。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432106-1-1.html 上篇帖子: k8s学习(一) 下篇帖子: 基于window 10 hype-v搭建k8s集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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