国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

k8s與CICD--借助scp插件實現非容器項目的部署

pcChao / 2259人閱讀

摘要:插件實現了一半,由于企業微信申請比較麻煩,所以也沒有進展。今天抽出時間,研究了一下插件,主要目的是實現非容器項目的部署。其實就是借助插件,將構建好的項目可執行文件和配置文件發布到指定主機上。直接上文件插件基于實現。完成新項目的部署。

前言

最近連續996加班,一直沒有時間完成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 reload
  notify:
    image: plugins/slack
    webhook: https://hooks.slack.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 reload命令。完成新項目的部署。

其實此處再引入一個插件并不是特別合適,感覺有點麻煩,其實個人感覺scp引入一個script參數,比較好,執行一些拷貝完成以后的操作指令。

scp 插件介紹

配置簡介:

scp插件通過ssh拷貝文件到目標主機,下面是如何在drone中使用的sample

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

自定義用戶名和密碼以及端口的配置示例:

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

項目需要從多個文件拷貝到目的主機多個文件的配置示例:

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

此處注意的就是一一對應關系。我理解的場景是,在項目中配置文件和可執行文件處于不同的文件夾下,或多個配置文件。

一般項目部署為了高可用,會將項目部署在多臺主機上,所以下面是一個多目標主機的配置示例:

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

當然文件比較多的時候,如果一一寫出就過于麻煩了,該scp支持模式匹配:

pipeline:
  scp:
    image: appleboy/drone-scp
    host:
      - example1.com
      - example2.com
    target: /home/deploy/web
    source:
-     - release/backend.tar.gz
-     - release/images.tar.gz
+     - release/*.tar.gz

當然依舊可以定義觸發條件:

pipeline:
  scp:
    image: appleboy/drone-scp
    host: example.com
    target: /home/deploy/web
    source: release.tar.gz
+   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。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/32603.html

相關文章

  • k8sCICD--借助scp插件實現容器項目部署

    摘要:插件實現了一半,由于企業微信申請比較麻煩,所以也沒有進展。今天抽出時間,研究了一下插件,主要目的是實現非容器項目的部署。其實就是借助插件,將構建好的項目可執行文件和配置文件發布到指定主機上。直接上文件插件基于實現。完成新項目的部署。 前言 最近連續996加班,一直沒有時間完成drone系列文章。drone-wechat插件實現了一半,由于企業微信token申請比較麻煩,所以也沒有進展。...

    Half 評論0 收藏0
  • 容器云 UK8S】最佳實踐:基于JenkinsCI/CD實踐

    摘要:擴展性好當集群的資源嚴重不足而導致排隊等待時,可以很容易的添加一個到集群中,從而實現擴展。用法,選擇盡可能使用這個節點鏡像,填寫,這個容器鏡像是我們的運行環境。更新文件,這里我們只是將中的鏡像更換成最新構建出的鏡像。基于Jenkins的CI/CD實踐[TOC]一、概要提到K8S環境下的CI/CD,可以使用的工具有很多,比如Jenkins、Gitlab CI、新興的drone等,考慮到大多公司...

    Tecode 評論0 收藏0
  • k8sCICD--利用helm部署應用到kubernetes

    摘要:本節主要介紹利用部署應用到中。利用部署一個應用,需要原生資源文件如或等。最后一般都會引用通知插件,將構建結果通知部署人員。說到部署策略,不得不說,實現的功能很多,但是足夠的復雜,目前來看,國內只有小紅書用起來了。 前言 本小節應該是這個系列剩下的兩個小節之一了。剩下一個是之前承諾好的drone-wechart插件。本節主要介紹利用helm部署應用到kubernetes中。至于helm,...

    joyqi 評論0 收藏0
  • k8sCICD--利用helm部署應用到kubernetes

    摘要:本節主要介紹利用部署應用到中。利用部署一個應用,需要原生資源文件如或等。最后一般都會引用通知插件,將構建結果通知部署人員。說到部署策略,不得不說,實現的功能很多,但是足夠的復雜,目前來看,國內只有小紅書用起來了。 前言 本小節應該是這個系列剩下的兩個小節之一了。剩下一個是之前承諾好的drone-wechart插件。本節主要介紹利用helm部署應用到kubernetes中。至于helm,...

    鄒立鵬 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<