Jenkins裝好後無法執行pipeline工作(即使是簡單的hello world pipeline)。點擊pipeline的[Build Now],只顯示"Build scheduled",但[Build History]沒有出現任何運行紀錄。
問題環境:
- AWS EC2 t2.small, Amazon Linix 2023
- Jenkins 2.440.2
仔細一看是Build-In Node的狀態是[offline](下線),這就是pipeline不工作的原因,因為pipeline是透過Node執行。(Dashboard > Manage Jenkins ≫ Nodes > Built-In Node
)
而Node下限的原因是[Free Swap Space]和[Free Temp Space]不足,出現Disk space is below threshold of 1.00 Gib. Only 974.74 MiB out of 978.03 MiB left on /tmp.
錯誤訊息。
解決方式如下。
增加Free Swap Space空間
在Jenkins伺服器(這邊為EC2 Linux),輸入free|grep -i Swap
可看到Swap space為0。
$ free|grep -i Swap
Swap: 0 0 0
輸入sudo dd if=/dev/zero of=/swapfile bs=1M count=2K
配置swapfile檔案2GiB的大小(1M x 1K)。
$ sudo dd if=/dev/zero of=/swapfile bs=1M count=2K
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 28.9261 s, 74.2 MB/s
輸入sudo chmod 600 /swapfile
修改swapfile讀寫權限。
$ sudo chmod 600 /swapfile
輸入sudo mkswap /swapfile
設定swap交換區。
$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=8e9ec486-d3c5-46bc-847a-c192b084bfa6
輸入sudo swapon /swapfile
把swapfile設定為swap交換空間。
$ sudo swapon /swapfile
輸入sudo swapon -s
確認設定成功。
$ sudo swapon -s
Filename Type Size Used Priority
/swapfile file 2097148 0 -2
輸入free|grep -i Swap
可看到Swap空間已經增加。
$ free|grep -i Swap
Swap: 2097148 0 2097148
重啟Jenkins,可看到Build-In Node的[Free Swap Space]變成2.00GiB。
增加Free Temp Space空間
輸入df -h
檢查檔案系統狀況,可看到/tmp
的可用容量為975M,此即為Jenkins使用的Free Temp Space。
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 979M 0 979M 0% /dev/shm
tmpfs 392M 5.4M 386M 2% /run
/dev/xvda1 20G 4.3G 16G 22% /
tmpfs 979M 3.3M 975M 1% /tmp
/dev/xvda128 10M 1.3M 8.7M 13% /boot/efi
tmpfs 196M 0 196M 0% /run/user/1000
輸入sudo mount -o remount,size=2G /tmp
重新掛載/tmp
為2GiB大小。
$ sudo mount -o remount,size=2G /tmp
再次輸入df -h
,可看到/tmp
的可用容量變為2.0G。
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 979M 0 979M 0% /dev/shm
tmpfs 392M 5.4M 386M 2% /run
/dev/xvda1 20G 4.3G 16G 22% /
tmpfs 2.0G 3.3M 2.0G 1% /tmp
/dev/xvda128 10M 1.3M 8.7M 13% /boot/efi
tmpfs 196M 0 196M 0% /run/user/1000
重啟Jenkins,可看到Build-In Node的[Free Swap Space]變成2.00GiB。
完成以上後,pipeline便可以正常執行。
沒有留言:
張貼留言