请选择 进入手机版 | 继续访问电脑版

[LINUX] Linux中安装部署Docker管理工具Drone全攻略

[复制链接]
查看66 | 回复10 | 2021-9-4 23:40:08 | 显示全部楼层 |阅读模式

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 。

2016418120124670.png (1028×504)

要创建一个应用,我们必要 在 New Application 页面点击 Register,然后如下所示填表。

2016418120156929.png (748×582)

我们应该保证在应用的设置 项里设置了授权回调链接,链接看起来类似 http://drone.linoxide.com/api/auth/github.com。然后我们点击注册应用。全部 都做好之后我们会看到我们必要 在我们的 Drone 设置 文件里设置 的客户端 ID 和客户端密钥。

2016418120210857.png (429×142)

在这些都完成之后我们必要 利用 文本编辑器编辑 drone 设置 文件,比如利用 下面的下令 。

复制代码代码如下:
# nano /etc/drone/drone.toml

然后我们会在 drone 的设置 文件内里 找到[github] 部分,紧接着的是下面所示的设置 内容

复制代码代码如下:
[github]
client="3dd44b969709c518603c"
secret="4ee261abdb431bdc5e96b19cc3c498403853632a"
# orgs=[]
# open=false

2016418120225384.png (680×400)

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"

2016418120243724.png (641×406)

注意 :这里的 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 就行了。在我们精确 的完成了上述操作后,我们就可以看到登录界面了。

2016418120302266.png (682×360)

由于 在上面的步骤里设置 了 Github,我们如今 只必要 简单的选择 github 然后进入应用授权步骤,这些完成后我们就可以进入工作台了。

2016418120324032.png (799×472)

这里它会同步我们在 github 上的代码库,然后扣问 我们要在 drone 上构建谁人 代码库。

2016418120339592.png (614×220)

这一步完成后,它会扣问 我们在代码库里添加.drone.yml 文件的新名称,并且在这个文件里定义构建的过程和设置 项,比如利用 谁人 docker 镜像,实行 那些下令 和脚本来编译,等等。

我们按照下面的内容来设置 我们的.drone.yml。

复制代码代码如下:
image: python
script:
- python helloworld.py
- echo "Build has been completed."

这一步完成后我们就可以利用 drone 应用里的 YAML 格式的设置 文件来构建我们的应用了。全部 对代码库的提交和改变此时都会同步到这个仓库。一旦提交完成了,drone 就会自动 开始构建。

2016418120357398.png (947×268)

全部 操作都完成后,我们就能在终端看到构建的结果 了。

2016418120416903.png (840×299)


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 123457389 | 2021-9-19 07:22:31 | 显示全部楼层
admin楼主的头像是本人吗?
回复

使用道具 举报

avatar 下一个秋天1 | 2021-10-6 03:47:14 | 显示全部楼层
收藏了,admin楼主加油!
回复

使用道具 举报

avatar 下一站美安好 | 2021-10-6 05:10:25 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的源码论坛他的站点都是商业源码,还是免费下载的那种!特别好用。访问地址:http://www.mxswl.com 猫先森网络
回复

使用道具 举报

avatar 123457245 | 2021-10-6 14:38:05 | 显示全部楼层
admin楼主写的很经典!
回复

使用道具 举报

admin楼主的文笔不错!
回复

使用道具 举报

好东西,赞一个!
回复

使用道具 举报

admin楼主会死的很有节奏的!
回复

使用道具 举报

avatar 华梦一生 | 前天 22:11 | 显示全部楼层
楼上的心情不错啊!
回复

使用道具 举报

这一年啥事没干,光研究admin楼主的帖子了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则