人妻丰满熟妇无码区乱com|久久婷婷午夜精品二区|一道本国产不卡视频|国产孕妇故爱A级高清片免费看

<tbody id="geoqw"></tbody>
  • <center id="geoqw"></center>
  • <menu id="geoqw"></menu>
  • <center id="geoqw"></center>
    
    <menu id="geoqw"></menu>
  • Linux中安裝部署Docker管理工具Drone全攻略

    時間:2021-01-22 09:40:14 網(wǎng)絡(luò)知識 我要投稿

    Linux中安裝部署Docker管理工具Drone全攻略

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

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

      與其他的CI服務(wù)相比有什么不同?

      1.Drone是開源的

      2.Drone是構(gòu)建在Docker之上

      3.Drone 輕松托管在自己的基礎(chǔ)架構(gòu)之上

      4.Drone 提供一個 CLI 來運行本地構(gòu)建,在Docker容器中

      5.Drone 默認與 GitHub 集成,很快將支持Bitbucket patch

      1. 安裝 Docker

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

      Ubuntu

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

      代碼如下:

      # apt-get update

      # apt-get install docker.io

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

      復制代碼

      代碼如下:

      # service docker restart

      然后我們讓 docker 在系統(tǒng)啟動時自動啟動。

      代碼如下:

      # 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

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

      代碼如下:

      # sudo yum update

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

      代碼如下:

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

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

      代碼如下:

      # systemctl start docker

      然后我們要讓 docker 在系統(tǒng)啟動時自動啟動。

      代碼如下:

      # systemctl enable docker

      代碼如下:

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

      2. 安裝 SQlite 驅(qū)動

      Drone 默認使用 SQlite3 數(shù)據(jù)庫服務(wù)器來保存數(shù)據(jù)和信息。它會在 /var/lib/drone/ 自動創(chuàng)建名為 drone.sqlite 的數(shù)據(jù)庫來處理數(shù)據(jù)庫模式的創(chuàng)建和遷移。要安裝 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

      最后,我們安裝好依賴的軟件,我們現(xiàn)在更進一步的接近安裝 Drone。在這一步里我們只簡單的從官方鏈接下載對應(yīng)的二進制軟件包,然后使用默認軟件包管理器安裝 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 塊對應(yīng)的值。

      代碼如下:

      [server]

      port=":80"

      5. 集成 Github

      為了運行 Drone 我們必須設(shè)置最少一個和 GitHub、GitHub 企業(yè)版,Gitlab,Gogs,Bitbucket 關(guān)聯(lián)的集成點。在本文里我們只集成了 github,但是如果我們要集成其他的服務(wù),我們可以在配置文件做修改。為了集成 github 我們需要在github 的設(shè)置里創(chuàng)建一個新的應(yīng)用:https://github.com/settings/developers 。

      要創(chuàng)建一個應(yīng)用,我們需要在 New Application 頁面點擊 Register,然后如下所示填表。

      我們應(yīng)該保證在應(yīng)用的配置項里設(shè)置了授權(quán)回調(diào)鏈接,鏈接看起來類似 http://drone.linoxide.com/api/auth/github.com。然后我們點擊注冊應(yīng)用。所有都做好之后我們會看到我們需要在我們的 Drone 配置文件里配置的客戶端 ID 和客戶端密鑰。

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

      代碼如下:

      # nano /etc/drone/drone.toml

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

      代碼如下:

      [github]

      client="3dd44b969709c518603c"

      secret="4ee261abdb431bdc5e96b19cc3c498403853632a"

      # orgs=[]

      # open=false

      6. 配置 SMTP 服務(wù)器

      如果我們想讓 drone 使用 email 發(fā)送通知,那么我們需要在 SMTP 配置里面設(shè)置我們的 SMTP 服務(wù)器。如果我們已經(jīng)有了一個 SMTP 服務(wù),那就只需要簡單的.使用它的配置文件就行了,但是因為我們沒有一個 SMTP 服務(wù)器,我們需要安裝一個 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

      現(xiàn)在開始配置 drone 配置文件里的 SMTP 部分。

      代碼如下:

      # nano /etc/drone/drone.toml

      找到[smtp] 部分補充上下面的內(nèi)容。

      代碼如下:

      [smtp]

      host = "drone.linoxide.com"

      port = "587"

      from = "root@drone.linoxide.com"

      user = "root"

      pass = "password"

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

      7. 配置 Worker

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

      代碼如下:

      # nano /etc/drone/drone.toml

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

      代碼如下:

      [worker]

      nodes=[

      "unix:///var/run/docker.sock",

      "unix:///var/run/docker.sock"

      ]

      這里我們只設(shè)置了兩個節(jié)點,這意味著上面的配置文件只能同時執(zhí)行2 個構(gòu)建操作。要提高并發(fā)性可以增大節(jié)點的值。

      代碼如下:

      [worker]

      nodes=[

      "unix:///var/run/docker.sock",

      "unix:///var/run/docker.sock",

      "unix:///var/run/docker.sock",

      "unix:///var/run/docker.sock"

      ]

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

      8. 重啟 Drone

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

      Ubuntu

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

      代碼如下:

      # service drone restart

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

      代碼如下:

      # update-rc.d drone defaults

      CentOS

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

      代碼如下:

      # systemctl restart drone

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

      代碼如下:

      # systemctl enable drone

      9. 添加防火墻例外規(guī)則

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

      Ubuntu 14.04

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

      復制代碼

      代碼如下:

      # 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 服務(wù)),我們需要執(zhí)行下面的命令。

      復制代碼

      代碼如下:

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

      success

      # firewall-cmd --reload

      success

      10. 訪問 web 界面

      現(xiàn)在我們將在我們最喜歡的瀏覽器上通過 web 界面打開 drone。要完成這些我們要把瀏覽器指向運行 drone 的服務(wù)器。因為 drone 默認使用80 端口而我們有沒有修改過,所以我們只需要在瀏覽器里根據(jù)我們的配置輸入http://ip-address/ 或 http://drone.linoxide.com 就行了。在我們正確的完成了上述操作后,我們就可以看到登錄界面了。

      因為在上面的步驟里配置了 Github,我們現(xiàn)在只需要簡單的選擇 github 然后進入應(yīng)用授權(quán)步驟,這些完成后我們就可以進入工作臺了。

      這里它會同步我們在 github 上的代碼庫,然后詢問我們要在 drone 上構(gòu)建那個代碼庫。

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

      我們按照下面的內(nèi)容來配置我們的.drone.yml。

      復制代碼

      代碼如下:

      image: python

      script:

      - python helloworld.py

      - echo "Build has been completed."

      這一步完成后我們就可以使用 drone 應(yīng)用里的 YAML 格式的配置文件來構(gòu)建我們的應(yīng)用了。所有對代碼庫的提交和改變此時都會同步到這個倉庫。一旦提交完成了,drone 就會自動開始構(gòu)建。

      所有操作都完成后,我們就能在終端看到構(gòu)建的結(jié)果了。

    【Linux中安裝部署Docker管理工具Drone全攻略】相關(guān)文章:

    如何在Linux服務(wù)器上部署.NetCore09-05

    linux操作系統(tǒng)怎么安裝01-29

    Linux軟件包thefuck的安裝使用教程09-07

    Windows軟件授權(quán)管理工具介紹01-25

    在Linux系統(tǒng)中限制CPU占用率的方法02-19

    電腦清潔全攻略10-24

    Linux防范病毒的方法09-05

    linux系統(tǒng)哪個版本好用01-29

    Linux操作系統(tǒng)簡介10-16

    Linux系統(tǒng)的主要特性09-18