最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

jenkinds安裝及教程使用

2023-02-16 09:26 作者:bili_39183997178  | 我要投稿

安裝Jenkins服務(wù)器

????????????? jenkins的IP地址是:192.168.4.30。它必須能與其他主機(jī)通信

????????????? 關(guān)閉selinux/防火墻

????????????? 安裝jenkins

# 安裝依賴(lài)包
# jenkins需要通過(guò)git下載代碼,所以裝git。
# jenkins是java程序,所以裝java
# postfix和mailx是郵件程序,jenkins可以通過(guò)它們給管理員發(fā)郵件
[root@jenkins ~]# yum install -y git postfix mailx java-11-openjdk

# 把jenkins軟件包拷貝到192.168.4.30
[root@zzgrhel8 ~]# ls /linux-soft/2/jenkins*
/linux-soft/2/jenkins-2.263.1-1.1.noarch.rpm
/linux-soft/2/jenkins_plugins.tar.gz
[root@zzgrhel8 ~]# scp /linux-soft/2/jenkins* 192.168.4.30:/root/

# 在192.168.4.30上安裝jenkins
[root@jenkins ~]# yum install -y jenkins-2.263.1-1.1.noarch.rpm

# 啟動(dòng)服務(wù),并設(shè)置為開(kāi)機(jī)自啟
[root@jenkins ~]# systemctl enable jenkins
jenkins.service is not a native service, redirecting to systemd-sysv-install.?? # 注意:這里不是錯(cuò)誤,忽略即可
Executing: /usr/lib/systemd/systemd-sysv-install enable jenkins
[root@jenkins ~]# systemctl start jenkins

????????????? 訪問(wèn)http://192.168.4.30:8080,進(jìn)行初始化

# 查看初始化密碼
[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
2c58512973be4a44aec3ef5c1463d00a

把查看到的密碼粘貼到文本框中,如下:

不用創(chuàng)建管理員,使用自帶的admin

?vim /etc/rc.d/rc.local?? # 在文件尾部追加一行內(nèi)容如下:
... ...
podman start gitlab
[root@git ~]# chmod +x /etc/rc.d/rc.local

配置jenkins

????????????? 訪問(wèn)http://192.168.4.30:8080,用戶(hù)名是admin

????????????? 安裝插件:jenkins的很多功能都是能過(guò)插件實(shí)現(xiàn)的,比如發(fā)郵件、比如中文支持。

[root@jenkins ~]# yum install -y tar
[root@jenkins ~]# tar xf jenkins_plugins.tar.gz
# 拷貝文件的時(shí)候,注意選項(xiàng),-r可以拷貝目錄,-p保留權(quán)限
[root@jenkins ~]# cp -rp jenkins_plugins/* /var/lib/jenkins/plugins/
[root@jenkins ~]# systemctl restart jenkins
# 刷新web頁(yè)面,如果出現(xiàn)中文,則插件安裝成功

軟件版本管理????????????

????????????? 可以在git中使用tag標(biāo)記將某一次commit提交標(biāo)識(shí)為某一版本

[root@develop ~]# cd myproject/??? # 進(jìn)入項(xiàng)目目錄
[root@develop myproject]# git tag? # 查看標(biāo)記,默認(rèn)沒(méi)有標(biāo)記
[root@develop myproject]# git tag 1.0? # 將當(dāng)前提交,標(biāo)識(shí)為1.0
[root@develop myproject]# git tag
1.0
[root@develop myproject]# echo 'hello world' > index.html
[root@develop myproject]# git add .
[root@develop myproject]# git commit -m "add index.html"
[root@develop myproject]# git tag 1.1

# 將本地文件和tag推送到gitlab服務(wù)器
[root@develop myproject]# git push??? # 只推送文件,不推送標(biāo)記
[root@develop myproject]# git push --tags

在gitlab上查看標(biāo)記:

配置jenkins訪問(wèn)gitlab代碼倉(cāng)庫(kù)

數(shù)化構(gòu)建過(guò)程中,名稱(chēng)是自己定義的變量名,用于標(biāo)識(shí)tag或分支


git倉(cāng)庫(kù)地址,在gitlab上找到myproject倉(cāng)庫(kù)的http地址,注意將gitlab名稱(chēng)改為IP地址

指定分支構(gòu)建的時(shí)候,使用上面步驟創(chuàng)建的變量$web

點(diǎn)擊保存。

在項(xiàng)目頁(yè)面, 可以進(jìn)行構(gòu)建測(cè)試。

測(cè)試下載

構(gòu)建過(guò)程中,邊欄左下角會(huì)有一個(gè)閃爍的灰球,構(gòu)建成功是藍(lán)球,失敗是紅球。點(diǎn)擊它,可以看詳情。

在jenkins上查看下載的內(nèi)容:

[root@jenkins ~]# ls /var/lib/jenkins/workspace/myproject/
README.md? hosts? passwd

下載到子目錄

????????????? jenkins下載不同的版本到自己的子目錄,不共享相同目錄

新增時(shí),如果沒(méi)有中文,英文是“checkout to a sub directory”

點(diǎn)擊保存。

測(cè)試:

# 刪除之前下載的內(nèi)容
[root@jenkins ~]# rm -rf /var/lib/jenkins/workspace/myproject/

執(zhí)行多次構(gòu)建,構(gòu)建不同版本:

查看下載目錄:

[root@jenkins ~]# ls /var/lib/jenkins/workspace/myproject/
myproject-1.0? myproject-1.1

準(zhǔn)備兩臺(tái)web服務(wù)器

????????????? web1:192.168.4.100,配置YUM,關(guān)閉SELINUX/防火墻

????????????? web2:192.168.4.200,配置YUM,關(guān)閉SELINUX/防火墻

部署代碼到web服務(wù)器

自動(dòng)化部署流程

1.????????? 程序員編寫(xiě)代碼,推送到gitlab服務(wù)器

2.????????? Jenkins服務(wù)器從gitlab上下載代碼

3.????????? Jenkins處理下載的代碼

–??????????? 刪除下載目錄的版本庫(kù)

–??????????? 將下載的代碼打包

–??????????? 計(jì)算程序壓縮包的md5值

–??????????? 在Jenkins上安裝ftp服務(wù),共享程序壓縮包

4.????????? web服務(wù)器下載軟件包,并應(yīng)用(通過(guò)腳本實(shí)現(xiàn))

5.????????? 訪問(wèn)測(cè)試

在Jenkins上配置FTP服務(wù)器

# 安裝vsftpd
[root@jenkins ~]# yum install -y vsftpd

# 啟用ftp的匿名訪問(wèn)
[root@jenkins ~]# vim +12 /etc/vsftpd/vsftpd.conf
anonymous_enable=YES

# 起服務(wù)
[root@jenkins ~]# systemctl enable vsftpd --now

# ftp的數(shù)據(jù)目錄默認(rèn)是/var/ftp。
# 在ftp上創(chuàng)建保存壓縮包的路徑
[root@jenkins ~]# mkdir -p /var/ftp/deploy/packages
# 因?yàn)閖enkins服務(wù)需要向該目錄保存文件,所以設(shè)置jenkins對(duì)它有權(quán)限
[root@jenkins ~]# chown -R :jenkins /var/ftp/deploy
[root@jenkins ~]# chmod -R 775 /var/ftp/deploy/

配置jenkins把gitlab下載的代碼打包

在jenkins上修改myproject項(xiàng)目

# 定義存儲(chǔ)軟件包路徑的變量
pkg_dir=/var/ftp/deploy/packages
# 將下載的代碼目錄拷貝到下載目錄
cp -r myproject-$web $pkg_dir
# 刪除下載目錄的版本庫(kù),不是必須的,只是為了嚴(yán)謹(jǐn)
rm -rf $pkg_dir/myproject-$web/.git
cd $pkg_dir?? # 切換到下載目錄
# 將下載的目錄打包
tar czf myproject-$web.tar.gz myproject-$web
# 下載目錄已打包,目錄就不需要了,刪除它
rm -rf myproject-$web
# 計(jì)算壓縮包的md5值,保存到文件
md5sum myproject-$web.tar.gz | awk '{print $1}' > myproject-$web.tar.gz.md5
cd ..
echo -n $web > ver.txt?? # 將版本號(hào)寫(xiě)入文件

以上步驟改好后,保存。

測(cè)試修改的任務(wù)。


web服務(wù)自動(dòng)部署

安裝httpd服務(wù)

[root@web1 ~]# yum install -y httpd tar wget
[root@web1 ~]# systemctl enable httpd --now
[root@web1 ~]# ss -tlnp | grep :80
LISTEN??? 0???????? 128????????????????????? *:80???????????????????? *:*??????? users:(("httpd",pid=9721,fd=4),("httpd",pid=9720,fd=4),("httpd",pid=9719,fd=4),("httpd",pid=9717,fd=4))

編寫(xiě)自動(dòng)上線腳本

????????????? 下載軟件包

????????????? 檢查軟件包是否損壞

????????????? 解壓、部署到web服務(wù)器

[root@web1 ~]# vim /usr/local/bin/web.sh
#!/bin/bash

# 定義軟件包服務(wù)器和本地路徑
ftp_url=ftp://192.168.4.30/deploy
deploy_dir=/var/www/deploy
dest=/var/www/html/tedu-cloud

# 創(chuàng)建用于部署的函數(shù)
down_file(){
??????? # 獲取要下載的軟件版本
??????? version=$(curl -s $ftp_url/ver.txt)
??? ????# 下載版本文件到本地
??????? wget -q $ftp_url/ver.txt -O $deploy_dir/ver.txt
??????? # 下載軟件壓縮包
??????? wget -q $ftp_url/packages/myproject-$version.tar.gz -O $deploy_dir/myproject-$version.tar.gz
??????? # 計(jì)算本地壓縮包Md5值
??????? hash=$(md5sum $deploy_dir/myproject-$version.tar.gz | awk '{print $1}')
??????? # 獲取網(wǎng)上md5文件中的md5值
??????? ftp_hash=$(curl -s $ftp_url/packages/myproject-$version.tar.gz.md5)
??????? # 如果文件未損壞則解壓
??????? if [ "$hash" == "$ftp_hash" ]; then
??????????? tar xf $deploy_dir/myproject-$version.tar.gz -C $deploy_dir
??????? else
??????????? rm -f $deploy_dir/myproject-$version.tar.gz
??????? fi
??????? # 如果存在目標(biāo)軟鏈接,先刪除它
??????? if [ -e "$dest" ]; then
??????? ??? rm -f $dest
??????? fi
??????? # 創(chuàng)建軟鏈接
??????? ln -s $deploy_dir/myproject-$version $dest
}

# 如果$deploy_dir不存在,先創(chuàng)建它
if [ ! -e "$deploy_dir" ]; then
??? mkdir $deploy_dir
fi

# 如果本地不存在版本文件,則意味著是新服務(wù)器,要部署軟件
if [ ! -f $deploy_dir/ver.txt ]; then
??? down_file
fi

# 如果本地存在版本文件,但是和服務(wù)器上的版本文件不一樣,則要部署新版本
if [ -f $deploy_dir/ver.txt ]; then
??????? ftp_ver=$(curl -s $ftp_url/ver.txt)
??????? local_ver=$(cat $deploy_dir/ver.txt)
??????? if [ "$ftp_ver" != "$local_ver" ]; then
??????????? down_file
??????? fi
fi
[root@web1 ~]# chmod +x /usr/local/bin/web.sh
[root@web1 ~]# yum install -y wget
[root@web1 ~]# web.sh
# 訪問(wèn)http://192.168.4.100/tedu-cloud/可以看到部署的文件
[root@web1 html]# ls /var/www/html/
tedu-cloud

????????????? 完整測(cè)試流程:

–??????????? 程序員編寫(xiě)新版本并推送到服務(wù)器

–??????????? Jenkins上構(gòu)建新版本

–??????????? web服務(wù)器上執(zhí)行web.sh部署新版本

# 程序員編寫(xiě)新版本
[root@develop myproject]# vim index.html
<marquee>Welcome to tedu</marquee>
[root@develop myproject]# git add .
[root@develop myproject]# git commit -m "modify index.html"
[root@develop myproject]# git tag 2.0
# 程序員推送到服務(wù)器
[root@develop myproject]# git push
[root@develop myproject]# git push --tags

web服務(wù)器上執(zhí)行`web.sh`部署新版本
[root@web1 html]# web.sh
[root@web1 html]# ls /var/www/deploy/
myproject-1.1???????? myproject-2.0???????? ver.txt
myproject-1.1.tar.gz? myproject-2.0.tar.gz
# 訪問(wèn)http://192.168.4.100/tedu-cloud


jenkinds安裝及教程使用的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
江孜县| 社旗县| 云阳县| 乐至县| 西乌珠穆沁旗| 建水县| 浮山县| 五原县| 清河县| 韩城市| 邮箱| 张家界市| 英山县| 富裕县| 和顺县| 松原市| 岱山县| 老河口市| 康定县| 彩票| 尚志市| 朝阳市| 固阳县| 汝阳县| 油尖旺区| 钦州市| 交口县| 博罗县| 长子县| 北流市| 保亭| 江都市| 玉树县| 镇江市| 长泰县| 夏河县| 和顺县| 高阳县| 舒城县| 江油市| 鲁山县|