中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中安裝部署Docker管理工具Drone的操作方法

發布時間:2021-09-26 11:44:11 來源:億速云 閱讀:162 作者:柒染 欄目:系統運維

今天就跟大家聊聊有關Linux中安裝部署Docker管理工具Drone的操作方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

Drone 是一個構建在Docker之上的開源持續集成平臺(CI)。Drone 提供了一組預建的Docker映像,支持12+種語言和幾乎所有主要的數據庫。這意味著你不必花時間來安裝軟件和配置您的構建環境。當然,如果你需要一個高度定制的環境Drone提供了足夠的靈活性來使用自定義Docker映像。

Drone 完全采用Go語言開發。具有快速,高效的特點。

與其他的CI服務相比有什么不同?
1.Drone是開源的
2.Drone是構建在Docker之上
3.Drone 輕松托管在自己的基礎架構之上
4.Drone 提供一個 CLI 來運行本地構建,在Docker容器中
5.Drone 默認與 GitHub 集成,很快將支持Bitbucket patch

1. 安裝 Docker

首先,我們要安裝 docker,因為這是 Drone 的工作流的最關鍵的元素。Drone 合理的利用了 docker 來構建和測試應用。容器技術提高了應用部署的效率。要安裝 docker ,我們需要在不同的 linux 發行版本運行下面對應的命令,我們這里會說明 Ubuntu 14.04 和 CentOS 7 兩個版本。

Ubuntu

要在 Ubuntu 上安裝 Docker ,我們只需要運行下面的命令。

代碼如下:


# apt-get update
# apt-get install docker.io


安裝之后我們需要使用service 命令重啟 docker 引擎。

代碼如下:


# service docker restart


然后我們讓 docker 在系統啟動時自動啟動。

代碼如下:


# update-rc.d docker defaults
Adding system startup for /etc/init.d/docker ...
/etc/rc0.d/K20docker -> ../init.d/docker
/etc/rc1.d/K20docker -> ../init.d/docker
/etc/rc6.d/K20docker -> ../init.d/docker
/etc/rc2.d/S20docker -> ../init.d/docker
/etc/rc3.d/S20docker -> ../init.d/docker
/etc/rc4.d/S20docker -> ../init.d/docker
/etc/rc5.d/S20docker -> ../init.d/docker


CentOS

第一,我們要更新機器上已經安裝的軟件包。我們可以使用下面的命令。

代碼如下:


#  sudo yum update


要在 centos 上安裝 docker,我們可以簡單的運行下面的命令。

代碼如下:


#  curl -sSL https://get.docker.com/ | sh


安裝好 docker 引擎之后我么只需要簡單使用下面的systemd 命令啟動 docker,因為 centos 7 的默認初始化系統是 systemd。

代碼如下:


# systemctl start docker


然后我們要讓 docker 在系統啟動時自動啟動。

代碼如下:


# systemctl enable docker

代碼如下:


ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service'

2. 安裝 SQlite 驅動

Drone 默認使用 SQlite3 數據庫服務器來保存數據和信息。它會在 /var/lib/drone/ 自動創建名為 drone.sqlite 的數據庫來處理數據庫模式的創建和遷移。要安裝 SQlite3 我們要完成以下幾步。

Ubuntu 14.04

因為 SQlite3 存在于 Ubuntu 14.04 的默認軟件庫,我們只需要簡單的使用 apt 命令安裝它。

代碼如下:


# apt-get install libsqlite3-dev


CentOS 7

要在 Centos 7 上安裝需要使用下面的 yum 命令。

代碼如下:


# yum install sqlite-devel

3. 安裝 Drone

最后,我們安裝好依賴的軟件,我們現在更進一步的接近安裝 Drone。在這一步里我們只簡單的從官方鏈接下載對應的二進制軟件包,然后使用默認軟件包管理器安裝 Drone。

Ubuntu

我們將使用 wget 從官方的 Debian 文件下載鏈接下載 drone 的 debian 軟件包。下面就是下載命令。

代碼如下:


# wget downloads.drone.io/master/drone.deb
Resolving downloads.drone.io (downloads.drone.io)... 54.231.48.98
Connecting to downloads.drone.io (downloads.drone.io)|54.231.48.98|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7722384 (7.4M) [application/x-debian-package]
Saving to: 'drone.deb'
100%[======================================>] 7,722,384 1.38MB/s in 17s
2015-11-06 14:09:28 (456 KB/s) - 'drone.deb' saved [7722384/7722384]


下載好之后,我們將使用 dpkg 軟件包管理器安裝它。

代碼如下:


# dpkg -i drone.deb
Selecting previously unselected package drone.
(Reading database ... 28077 files and directories currently installed.)
Preparing to unpack drone.deb ...
Unpacking drone (0.3.0-alpha-1442513246) ...
Setting up drone (0.3.0-alpha-1442513246) ...
Your system ubuntu 14: using upstart to control Drone
drone start/running, process 9512


CentOS

在 CentOS 機器上我們要使用 wget 命令從下載鏈接下載 RPM 包。

代碼如下:


# wget downloads.drone.io/master/drone.rpm
--2015-11-06 11:06:45-- http://downloads.drone.io/master/drone.rpm
Resolving downloads.drone.io (downloads.drone.io)... 54.231.114.18
Connecting to downloads.drone.io (downloads.drone.io)|54.231.114.18|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7763311 (7.4M) [application/x-redhat-package-manager]
Saving to: ‘drone.rpm’
100%[======================================>] 7,763,311 1.18MB/s in 20s
2015-11-06 11:07:06 (374 KB/s) - ‘drone.rpm’ saved [7763311/7763311]


然后我們使用 yum 安裝 rpm 包。

代碼如下:


# yum localinstall drone.rpm

4. 配置端口

安裝完成之后,我們要先進行配置才能工作起來。drone 的配置文件在/etc/drone/drone.toml 。默認情況下 drone 的 web 接口使用的是80,而這也是 http 默認的端口,如果我們修改它,請按下面所示的修改配置文件里 server 塊對應的值。

代碼如下:


[server]
port=":80"

5. 集成 Github

為了運行 Drone 我們必須設置最少一個和 GitHub、GitHub 企業版,Gitlab,Gogs,Bitbucket 關聯的集成點。在本文里我們只集成了 github,但是如果我們要集成其他的服務,我們可以在配置文件做修改。為了集成 github 我們需要在github 的設置里創建一個新的應用:https://github.com/settings/developers 。
Linux中安裝部署Docker管理工具Drone的操作方法

要創建一個應用,我們需要在 New Application 頁面點擊 Register,然后如下所示填表。
Linux中安裝部署Docker管理工具Drone的操作方法

我們應該保證在應用的配置項里設置了授權回調鏈接,鏈接看起來類似 http://drone.linoxide.com/api/auth/github.com。然后我們點擊注冊應用。所有都做好之后我們會看到我們需要在我們的 Drone 配置文件里配置的客戶端 ID 和客戶端密鑰。
Linux中安裝部署Docker管理工具Drone的操作方法

在這些都完成之后我們需要使用文本編輯器編輯 drone 配置文件,比如使用下面的命令。

代碼如下:


# nano /etc/drone/drone.toml


然后我們會在 drone 的配置文件里面找到[github] 部分,緊接著的是下面所示的配置內容

代碼如下:


[github]
client="3dd44b969709c518603c"
secret="4ee261abdb431bdc5e96b19cc3c498403853632a"
# orgs=[]
# open=false


Linux中安裝部署Docker管理工具Drone的操作方法

6. 配置 SMTP 服務器

如果我們想讓 drone 使用 email 發送通知,那么我們需要在 SMTP 配置里面設置我們的 SMTP 服務器。如果我們已經有了一個 SMTP 服務,那就只需要簡單的使用它的配置文件就行了,但是因為我們沒有一個 SMTP 服務器,我們需要安裝一個 MTA 比如 Postfix,然后在 drone 配置文件里配置好 SMTP。

Ubuntu

在 ubuntu 里使用下面的 apt 命令安裝 postfix。

代碼如下:


# apt-get install postfix


CentOS

在 CentOS 里使用下面的 yum 命令安裝 postfix。

代碼如下:


# yum install postfix


安裝好之后,我們需要編輯我們的 postfix 配置文件。

代碼如下:


# nano /etc/postfix/main.cf


然后我們要把 myhostname 的值替換為我們自己的 FQDN,比如 drone.linoxide.com。

代碼如下:


myhostname = drone.linoxide.com


現在開始配置 drone 配置文件里的 SMTP 部分。

代碼如下:


# nano /etc/drone/drone.toml


找到[smtp] 部分補充上下面的內容。

代碼如下:


[smtp]
host = "drone.linoxide.com"
port = "587"
from = "root@drone.linoxide.com"
user = "root"
pass = "password"


Linux中安裝部署Docker管理工具Drone的操作方法

注意:這里的 user 和 pass 參數強烈推薦一定要改成某個具體用戶的配置。

7. 配置 Worker

如我們所知的 drone 利用了 docker 完成構建、測試任務,我們需要把 docker 配置為 drone 的 worker。要完成這些需要修改 drone 配置文件里的[worker] 部分。

代碼如下:


# nano /etc/drone/drone.toml


然后取消底下幾行的注釋并且補充上下面的內容。

代碼如下:


[worker]
nodes=[
"unix:///var/run/docker.sock",
"unix:///var/run/docker.sock"
]


這里我們只設置了兩個節點,這意味著上面的配置文件只能同時執行2 個構建操作。要提高并發性可以增大節點的值。

代碼如下:


[worker]
nodes=[
"unix:///var/run/docker.sock",
"unix:///var/run/docker.sock",
"unix:///var/run/docker.sock",
"unix:///var/run/docker.sock"
]


使用上面的配置文件 drone 被配置為使用本地的 docker 守護程序可以同時構建4個任務。

8. 重啟 Drone

最后,當所有的安裝和配置都準備好之后,我們現在要在本地的 linux 機器上啟動 drone 服務器。

Ubuntu

因為 ubuntu 14.04 使用了 sysvinit 作為默認的初始化系統,所以只需要簡單執行下面的 service 命令就可以啟動 drone 了。

代碼如下:


# service drone restart


要讓 drone 在系統啟動時也自動運行,需要運行下面的命令。

代碼如下:


# update-rc.d drone defaults


CentOS

因為 CentOS 7使用 systemd 作為初始化系統,所以只需要運行下面的 systemd 命令就可以重啟 drone。

代碼如下:


# systemctl restart drone


要讓 drone 自動運行只需要運行下面的命令。

代碼如下:


# systemctl enable drone

9. 添加防火墻例外規則

眾所周知 drone 默認使用了80 端口而我們又沒有修改它,所以我們需要配置防火墻程序允許80 端口(http)開放并允許其他機器可以通過網絡連接。

Ubuntu 14.04

iptables 是最流行的防火墻程序,并且 ubuntu 默認安裝了它。我們需要修改 iptable 以暴露端口80,這樣我們才能讓 drone 的 web 界面在網絡上被大家訪問。

代碼如下:


# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# /etc/init.d/iptables save


CentOS 7

因為 CentOS 7 默認安裝了 systemd,它使用 firewalld 作為防火墻程序。為了在 firewalld 上打開80端口(http 服務),我們需要執行下面的命令。

代碼如下:


# firewall-cmd --permanent --add-service=http
success
# firewall-cmd --reload
success

10. 訪問 web 界面

現在我們將在我們最喜歡的瀏覽器上通過 web 界面打開 drone。要完成這些我們要把瀏覽器指向運行 drone 的服務器。因為 drone 默認使用80 端口而我們有沒有修改過,所以我們只需要在瀏覽器里根據我們的配置輸入http://ip-address/ 或 http://drone.linoxide.com 就行了。在我們正確的完成了上述操作后,我們就可以看到登錄界面了。
Linux中安裝部署Docker管理工具Drone的操作方法

因為在上面的步驟里配置了 Github,我們現在只需要簡單的選擇 github 然后進入應用授權步驟,這些完成后我們就可以進入工作臺了。
Linux中安裝部署Docker管理工具Drone的操作方法

這里它會同步我們在 github 上的代碼庫,然后詢問我們要在 drone 上構建那個代碼庫。
Linux中安裝部署Docker管理工具Drone的操作方法

這一步完成后,它會詢問我們在代碼庫里添加.drone.yml 文件的新名稱,并且在這個文件里定義構建的過程和配置項,比如使用那個 docker 鏡像,執行那些命令和腳本來編譯,等等。

我們按照下面的內容來配置我們的.drone.yml。

代碼如下:


image: python
script:
- python helloworld.py
- echo "Build has been completed."


這一步完成后我們就可以使用 drone 應用里的 YAML 格式的配置文件來構建我們的應用了。所有對代碼庫的提交和改變此時都會同步到這個倉庫。一旦提交完成了,drone 就會自動開始構建。
Linux中安裝部署Docker管理工具Drone的操作方法

所有操作都完成后,我們就能在終端看到構建的結果了。
Linux中安裝部署Docker管理工具Drone的操作方法

看完上述內容,你們對Linux中安裝部署Docker管理工具Drone的操作方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄石市| 宿松县| 榆林市| 祁连县| 双辽市| 东乌珠穆沁旗| 怀宁县| 仪征市| 遂昌县| 利辛县| 塘沽区| 梓潼县| 綦江县| 巩留县| 罗山县| 马公市| 永兴县| 正安县| 裕民县| 乳源| 辛集市| 曲沃县| 平原县| 余庆县| 沙雅县| 达尔| 尼玛县| 申扎县| 水富县| 巧家县| 封丘县| 五华县| 嘉定区| 门源| 张掖市| 石嘴山市| 赞皇县| 昭通市| 商丘市| 榆中县| 洛扎县|