基于Ubuntu18.04部署Jenkins使用方法
Jenkins簡介
- 好處:使開發(fā)者從繁雜的集成中解脫出來,專注于更為重要的業(yè)務邏輯實現(xiàn)上。
- Jenkins中文網(wǎng)站:http://www.jenkins.org.cn/。
- 說白了就是:可持續(xù)集成。
什么是可持續(xù)集成呢?持續(xù)集成系統(tǒng)的組成
一個自動構(gòu)建過程,包括自動編譯、分發(fā)、部署和測試等。一個代碼存儲庫,即需要版本控制軟件來保障代碼的可維護性,同時作為構(gòu)建過程的素材庫。一個持續(xù)集成的服務器。
持續(xù)集成的原則
版本控制
需要版本控制軟件保障團隊成員提交的代碼不會導致集成失敗。常用的版本控制軟件有 svn,Git, ClearCase 等。
集成服務器
需要有專門的集成服務器來執(zhí)行集成構(gòu)建。根據(jù)項目的具體實際,集成構(gòu)建可以被軟件的修改來直接觸發(fā),也可以定時啟動,如每半個小時構(gòu)建一次。
構(gòu)建的成功
必須保證構(gòu)建的成功。如果構(gòu)建失敗,修復構(gòu)建過程中的錯誤是優(yōu)先級最高的工作。一旦修復,需要手動啟動一次構(gòu)建。
docker部署
# 安裝docker
sudo apt-get update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt install -y docker-ce
#可選項目,如果需要非root用戶啟動執(zhí)行這個
# 配置amaozaji用戶操作docker
sudo group add docker
adduser amaozaji
passwd amaozaji
sudo gpasswd -a amaozaji docker
sudo systemctl restart docker
# 關(guān)閉swap
swapoff -a
# 系統(tǒng)參數(shù)調(diào)整
echo "vm.max_map_count = 262144" >> /etc/sysctl.conf
sysctl -p
# 修改docker默認的存儲路徑
Ubuntu18.04下:
添加配置文件:/etc/systemd/system/docker.service.d/docker-overlay.conf
內(nèi)容如下:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph="/data/var/lib/docker" --storage-driver=overlay
# 修改容器內(nèi)日志文件大小和個數(shù)
vim /etc/docker/daemon.json
{
"log-driver":"json-file",
"log-opts": {
"max-size":"100m",
"max-file":"10"
}
}
# 重載配置文件并重啟服務
systemctl daemon-reload
systemctl restart docker
# 安裝docker模塊(如果沒有pip工具,先安裝:apt-get install python-pip)
pip install docker==4.0.0
保存生成配置文件
使用 main_config_editor 保存生成一個配置文件,可以直接用默認配置開始。每次修改會實時生效,且保存在本地文件夾中。
可以直接用默認配置開始。
同時支持 PUT 和 GET 請求修改配置文件,便于 CI 集成。
腳本 update_config_editor.sh :
#!/bin/bash
set -e
set -x
docker pull config_editor
docker rm -f config_editor || echo "ok"
docker run -d --name config_editor -p 8000:8000 --restart=always -v /data/source_config:/config config_editor
啟動后訪問 http://主機名:8000/ 確認是否可以看到配置文件編輯器。
在需要控制的主機上增加認證公鑰
增加認證公鑰,只需要被 jenkins 控制并安裝組件的機器上執(zhí)行(需要sudo權(quán)限):
mkdir /root/.ssh/
echo 'ssh-rsa AA2EAAAADAQABAAABAQDgsoxCDtHGSaPqwVppkhRsZ6Qha85q77etYuzNM/dEkJJwMKmCxw1q/iBecopL0XRDyUVlK7y2eWZ0KCom5tpMf+pCZkK1SRUxcI5eId4juZnDKHqSXqVaalJDRr9zD7vKYdpaDTALX5RLhC3jr3cF/SImAlpTlQ0bmBttk7pJkF1AjBYRIDYezCN4nITsuGnqSgD/XUzSpjivO8P7SNnxRY8eHASstKiJC8zU2GQF6exGVGPAWdPi99y/3/HPJn jenkins' >> /root/.ssh/authorized_keys
如果操作無誤但Jenkins執(zhí)行任務時還是認證失敗,可以通過 jenkins 的私鑰連接確認。
ssh -i private_key.pem root
下載啟動 jenkins
常用腳本,CONFIG_URL 是配置文件的訪問地址,即上一步配置文件修改器的訪問地址。
腳本 update_jenkins.sh :
##!/bin/bash
set -e
set -x
# 下載jenkins docker
docker pull jenkins
docker rm -f amaozaji_jenkins || echo "No need to rm amaozaji_jenkins"
# 啟動 docker 并設置配置文件下載地址
docker run --name amaozaji_jenkins -d --net=host -e CONFIG_URL=http://localhost:8000/main.yaml jenkins
啟動后訪問 http://主機名:8080/ 確認是否可以看到Jenkins頁面。