Quantcast
Channel: 小惡魔 – 電腦技術 – 工作筆記 – AppleBOY
Viewing all articles
Browse latest Browse all 325

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

$
0
0

drone and ansible

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

影片教學

更多實戰影片可以參考我的 Udemy 教學系列

事前準備

首先在您的電腦上安裝 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

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

- name: "deploy drone agent."
  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 程式碼可以直接從這邊下載

心得

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


Viewing all articles
Browse latest Browse all 325

Trending Articles


Girasoles para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Tagalog Quotes About Crush – Tagalog Love Quotes


OFW quotes : Pinoy Tagalog Quotes


Long Distance Relationship Tagalog Love Quotes


Tagalog Quotes To Move on and More Love Love Love Quotes


5 Tagalog Relationship Rules


Best Crush Tagalog Quotes And Sayings 2017


Re:Mutton Pies (lleechef)


FORECLOSURE OF REAL ESTATE MORTGAGE


Sapos para colorear


tagalog love Quotes – Tiwala Quotes


Break up Quotes Tagalog Love Quote – Broken Hearted Quotes Tagalog


Patama Quotes : Tagalog Inspirational Quotes


Pamatay na Banat and Mga Patama Love Quotes


Tagalog Long Distance Relationship Love Quotes


BARKADA TAGALOG QUOTES


“BAHAY KUBO HUGOT”


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.