自建Jenkins 推薦的外掛及安裝Docker/Ansbile/Nginx...等 CI/CD 工具
有時會需要在不同地方安裝Devops Tools 所以想說紀錄一篇文章,以下的操作 均在同一台 EC2 上去執行,但官網的建議是希望再多一台 代理機(slave),就看公司規模以及是否有沒有必要這樣做。
OS: ubuntu Version 24
安裝以下套件
- Jenkins
- Ansible
- Docker
- Nginx
Jenkins Install
部署文件 均來自 Jenkins官網
Step.1 Jenkins install in ubuntu
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install jenkins
Step.2 Java Install
sudo apt update
sudo apt install fontconfig openjdk-17-jre
安裝完Java後 可以透過 java -version
確認是否有成功安裝
Step.3 Start Jenkins
開機時 啟動jenkins
sudo systemctl enable jenkins
啟動 Jenkins
sudo systemctl start jenkins
查詢狀態
sudo systemctl status jenkins
Step.4 gitlab/github 允許 Jenkins 能使用 git clone ssh
# 切換到jenkins user
sudo jenkins
# 創建訪問key
ssh-keygen
Jenkins 推薦可以安裝以下外掛插件
# 外掛插件
pipeline
GitLab Plugin
Generic Webhook Trigger
# Stage View
Pipeline Graph Analysis
Pipeline: REST API
Blue Ocean
Git Pipeline for Blue Ocean
Dashboard for Blue Ocean
Web for Blue Ocean
Multibranch Scan Webhook Trigger
Ansible
Build Timestamp # 時間套件
GitLab Authentication
# Docker
Docker
Docker pipeline
Docker Install
安裝腳本來自官網 Docker Shell Install
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
若要讓 Jenkins 能夠有權限使用 Docker命令, ex: build image 可以直接將用戶組加入Docker
查看 jenkins 用戶
sudo id jenkins
將 jenkins 用戶添加到 docker 群組
sudo usermod -aG docker jenkins
重啟 Jenkins 服務使變更生效
sudo systemctl restart jenkins
Ansible Install
可以直接前往以下文章
Nginx Install
apt update
apt install nginx -y
server {
listen 443 ssl http2;
server_name jenkins.test.com;
location / {
proxy_pass http://127.0.0.1:8080; # 将此更改为 Jenkins 的内部地址和端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 支持 WebSocket 的反向代理
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 防止连接超时
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_send_timeout 90;
}
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
ssl_certificate ssls/test.com/cert.pem;
ssl_certificate_key ssls/test.com/key.pem;
}
若需要SSL憑證 可以參考
以上就完成了一個 Jenkins 初始化安裝