用 Ansible 安裝 Drone CI/CD 開源專案

栏目: 服务器 · 发布时间: 6年前

内容简介:相信大家對於首先在您的電腦上安裝 ansible 環境,在 MacOS 很簡單,只需要透過

用 Ansible 安裝 Drone CI/CD 開源專案

相信大家對於 Drone 開源專案 並不陌生,如果對於 Drone 不了解的朋友們,可以直接看之前寫的系列文章,本篇要教大家如何使用 Ansible 來安裝 Drone CI/CD 開源專案。目前 Drone 可以支援兩種安裝方式: 1. 使用 Docker 2. 使用 binary,如果您是進階開發者,可以使用 binary 方式來安裝,像是在 Debug 就可以透過 build binary 方式來測試。一般來說都是使用 Docker 方式來安裝,在使用 ansible 之前,請先準備一台 Ubuntu 或 Debian 作業系統的 VM 來測試。

事前準備

首先在您的電腦上安裝 ansible 環境,在 MacOS 很簡單,只需要透過 pip 就可以安裝完成

$ pip install ansible

更多安裝方式,可以直接看 官方文件 Installation Guide

Ansible 環境

來看看 Ansible 專案目錄結構

├── Makefile
├── host.ini
├── playbook.yml
├── roles
│   ├── base
│   └── docker
└── vars
    ├── drone-agent.yml
    └── drone-server.yml

其中 roles 目錄是放置原本專案的角色,本篇內容不會提到,接著我們一一講解每個檔案,首先是 Makefile ,裡面其實很簡單,只是兩個 ansible 指令,透過 ansible-lint 可以驗證 playbook 語法是否有錯誤,可以選用。

all: ansible

lint:
    ansible-lint playbook.yml

ansible: lint
    ansible-playbook -i host.ini playbook.yml

接著定義要在哪一台 VM 上面安裝 drone-server 或 drone-agent,請打開 host.ini

[drone_server]
dog ansible_user=multipass ansible_host=192.168.64.11 ansible_port=22

[drone_agent]
cat ansible_user=multipass ansible_host=192.168.64.11 ansible_port=22

這邊先暫時把 server 跟 agent 裝在同一台,如果要多台 drone-agent,請自行修改。接下來寫 playbook

- hosts: drone_server
  become: true
  become_user: root
  roles:
    - { role: appleboy.drone }
  vars_files:
    - vars/drone-server.yml

- hosts: drone_agent
  become: true
  become_user: root
  roles:
    - { role: appleboy.drone }
  vars_files:
    - vars/drone-agent.yml

可以看到其中 var 目錄底下是放 server 跟 agent 的設定檔案,server 預設是跑 sqlite 資料庫。其中 drone_server_enable 要設定為 true ,代表要安裝 drone-server

drone_server_enable: "true"
drone_version: "latest"
drone_github_client_id: "e2bdde88b88f7ccf873a"
drone_github_client_secret: "b0412c975bbf2b6fcd9b3cf5f19c8165b1c14d0c"
drone_server_host: "368a7a66.ngrok.io"
drone_server_proto: "https"
drone_rpc_secret: "30075d074bfd9e74cfd0b84a5886b986"

接著看 drone-agent.yml ,也會看到要安裝 agent 就必須設定 drone_agent_enabletrue

drone_agent_enable: "true"
drone_version: "latest"
drone_rpc_server: "http://192.168.64.2:8081"
drone_rpc_secret: "30075d074bfd9e74cfd0b84a5886b986"

更多變數內容請參考 這邊

Ansible 套件

我寫了 ansible-drone 角色來讓開發者可以快速安裝 drone 服務,安裝方式如下

$ ansible-galaxy install appleboy.drone

上面步驟是安裝 master 版本,如果要指定穩定版本請改成如下 (後面接上 ,0.0.2 版號)

$ ansible-galaxy install appleboy.drone,0.0.2

安裝角色後,就可以直接執行了,過程中會將機器先安裝好 Docker 環境,才會接著安裝 server 及 agent。

$ ansible-playbook -i host.ini playbook.yml

心得

如果有多台機器需要建置,用 Ansible 非常方便。如果是多個 VM 需要快速開啟跟關閉,請透過 packer 來建置 Image 來達到快速 auto scale。更多詳細的設定可以參考 drone role of ansible


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法引论

算法引论

[美]Udi Manber / 黄林鹏、谢瑾奎、陆首博、等 / 电子工业出版社 / 2005-9-1 / 35.00元

本书是国际算法大师乌迪·曼博(Udi Manber)博士撰写的一本享有盛誉的著作。全书共分12章:第1章到第4章为介绍性内容,涉及数学归纳法、算法分析、数据结构等内容;第5章提出了与归纳证明进行类比的算法设计思想;第6章到第9章分别给出了4个领域的算法,如序列和集合的算法、图算法、几何算法、代数和数值算法;第10章涉及归约,也是第11章的序幕,而后者涉及NP完全问题;第12章则介绍了并行算法;最后......一起来看看 《算法引论》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器