創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供黑山網(wǎng)站建設(shè)、黑山做網(wǎng)站、黑山網(wǎng)站設(shè)計(jì)、黑山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、黑山企業(yè)網(wǎng)站模板建站服務(wù),十多年黑山做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
GitLab是一個開源分布式版本控制系統(tǒng),開發(fā)語言為Ruby,功能為管理項(xiàng)目源代碼、版本控制、代碼復(fù)用與查找
github分布式在線代碼托管倉庫,個人版本可直接在線免費(fèi)使用,企業(yè)版本收費(fèi)且需要服務(wù)器安裝
gitlab分布式在線代碼倉庫托管軟件,分社區(qū)免費(fèi)版本與企業(yè)收費(fèi)版本,都需要服務(wù)器安裝
? 開源免費(fèi),適合中小型公司將代碼放置在該系統(tǒng)中
? 差異化版本管理,離線同步y(tǒng)以及強(qiáng)大分支管理功能
? 便捷的GUI操作界面以及強(qiáng)大賬戶權(quán)限管理功能
? 集成度很高,能夠集成絕大多數(shù)的開發(fā)工具
? 支持內(nèi)置HA,保證在高并發(fā)下仍舊實(shí)現(xiàn)高可用性
1. Nginx靜態(tài)Web服務(wù)器
2. Gitlab-workhorse輕量級的反向代理服務(wù)器
3. Gitlab-shell用于處理git命令和修改authorized keys列表
4. Logrotate 日志文件管理工具
5. Postgresql 數(shù)據(jù)庫
6. redis 緩存服務(wù)器
1. 創(chuàng)建并克隆項(xiàng)目
2. 創(chuàng)建項(xiàng)目某feature分支
3. 編寫代碼并提交至該分支
4. 推送該項(xiàng)目分支至遠(yuǎn)程gitlab服務(wù)器
5. 進(jìn)行代碼檢查并提交master主分支合并申請
6. 項(xiàng)目領(lǐng)導(dǎo)審查代碼并確認(rèn)合并申請
a. 關(guān)閉防火墻
b. 關(guān)閉SELINUX并重啟系統(tǒng)
a. 安裝gitlab依賴包
yum -y install curl policycoreutils openssh-server openssh-clients postfix
b. 配置yum倉庫
wget http://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh
chmod +x script.rpm.sh
./script.rpm.sh
c. 啟動postfix郵件服務(wù)
systemctl start postfix
d. 安裝gitlab-ce社區(qū)版本
yum -y install gitlab-ce
生成私鑰(key文件):key是服務(wù)器上的私鑰文件,用于對發(fā)送給客戶端數(shù)據(jù)的加密,以及對從客戶端接收到數(shù)據(jù)的解密
openssl genrsa -out "/etc/gitlab/ssl/gitlab.example.com.key" 2048
生成csr文件:csr是證書簽名請求文件,用于提交給證書頒發(fā)機(jī)構(gòu)(CA)對證書簽名
openssl req -new -key "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.csr"
生成crt文件:crt是由證書頒發(fā)機(jī)構(gòu)(CA)簽名后的證書,或者是開發(fā)者自簽名的證書,包含證書持有人的信息,持有人的公鑰,以及簽署者的簽名等信息
openssl x509 -req -days 365 -in "/etc/gitlab/ssl/gitlab.example.com.csr" -signkey "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.crt"
生成dh密鑰:openssl dhparam用于生成和管理dh的文件。dh(Diffie-Hellman)是著名的密鑰交換協(xié)議,或稱為密鑰協(xié)商協(xié)議,它可以保證通信雙方安全地交換密鑰。但注意,它不是加密算法,所以不提供加密功能,僅僅只是保護(hù)密鑰交換的過程。
openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
修改以上文件權(quán)限為600
chmod 600 /etc/gitlab/ssl/*
備份
cp gitlab.rb gitlab.rb.backup
修改
vim /etc/gitlab/gitlab.rb
external_url 'https://gitlab.example.com'
nginx['redirect_http_to_https'] = true
# nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
# nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"
# nginx['ssl_dhparam'] = /etc/gitlab/ssl/dhparams.pem
gitlab-ctl reconfigure
備份
cp /var/opt/gitlab/nginx/conf/gitlab-http.conf{,.backup}
server區(qū)段添加
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
rewrite ^(.*)$ https://$host$1 permanent;
gitlab-ctl restart
在/etc/hosts中添加 192.168.143.130 gitlab.example.com
默認(rèn)管理員root,為root設(shè)置密碼并登陸
git -c http.sslVerify=false clone https://gitlab.example.com/root/test.git
[root@node1 devops]# git -c http.sslVerify=false clone https://gitlab.example.com/root/test.git
Cloning into 'test'...
Username for 'https://gitlab.example.com': root
Password for 'https://root@gitlab.example.com':
warning: You appear to have cloned an empty repository.
[root@node1 devops]# cd test/
[root@node1 test]# vim test.py
[root@node1 test]# git add .
[root@node1 test]# git config --global user.email "admin@example.com"
[root@node1 test]# git config --global user.name "jym"
[root@node1 test]# git commit -m "First commit"
[master (root-commit) b6581b9] First commit
1 file changed, 3 insertions(+)
create mode 100644 test.py
[root@node1 test]# git -c http.sslVerify=false push origin master
模塊化,調(diào)用特定的模塊,完成特定的任務(wù);基于python語言研發(fā),由Paramiko、PyYAML和Jinja2三個關(guān)鍵模塊;部署簡單,主從模式,支持自定義模塊;支持playbook;冪等性
關(guān)閉防火墻
關(guān)閉selinux
各節(jié)點(diǎn)時間同步
各節(jié)點(diǎn)主機(jī)名不一致
各節(jié)點(diǎn)間ssh免密
2.1、預(yù)先安裝python3.6
wget http://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
tar xf Python-3.6.5.tar.xz && cd Python-3.6.5/
./configure --prefix=/usr/local --with-ensurepip=install --enable-shared
LDFLAGS="-wl , -rpath /usr/local/lib"
make && make altinstall
2.2、安裝virtualenv
pip3.6 install virtualenv
2.3、創(chuàng)建ansible用戶并安裝python3.6版本virtualenv實(shí)例
useradd deploy && su - deploy
virtualenv -p python3.6 .py3-a2.10-env
2.4、Git源代碼安裝ansible2.10
cd /home/deploy/.py3-a2.10-env
git clone https://github.com/ansible/ansible.git
cd ansible && git checkout stable-2.10
2.5、加載python3.6 virtualenv環(huán)境
source /home/deploy/.py3-a2.10-env/bin/activate
2.6、安裝ansible依賴包
pip3.6 install paramiko PyYAML jinja2
2.7、在python3.6虛擬環(huán)境下加載ansible2.10
source /home/deploy/.py3-a2.10-env/ansible/hacking/env-setup -q
2.8、驗(yàn)證ansible2.5安裝
ansible --version
Jenkins是一款開源 CI&CD 軟件,用于自動化各種任務(wù),包括構(gòu)建、測試和部署軟件。
Jenkins 支持各種運(yùn)行方式,可通過系統(tǒng)包、Docker 或者通過一個獨(dú)立的 Java 程序方式部署。
Jenkins 是一個主流的運(yùn)維開發(fā)平臺,兼容所有主流開發(fā)環(huán)境;通過插件可與海量業(yè)內(nèi)主流開發(fā)工具實(shí)現(xiàn)集成;通過job配置單位與日志管理,使開發(fā)與運(yùn)維人員能協(xié)同工作;通過權(quán)限管理劃分不同job不同角色;強(qiáng)大的負(fù)載均衡功能,保證項(xiàng)目的可靠性。
yum install java
yum install docker-ce
下載地址:https://pkg.jenkins.io/redhat-stable/
yum install jenkins-2.199-1.1.noarch.rpm
systemctl start jenkins
查看啟動情況
systemctl status jenkins.service -l
瀏覽器訪問jenkins地址 http:<ip或域名>:8080
第一次訪問新的jenkins實(shí)例時,系統(tǒng)要求使用自動生成的密碼進(jìn)行解鎖
查看初始密碼
[root@node1 jenkins]# cat /var/lib/jenkins/secrets/initialAdminPassword
acd7e8eef641433b87e3358d8d6d1e34
兩個選項(xiàng)可以設(shè)置:
? 安裝建議的插件 - 安裝推薦的一組插件,這些插件基于最常見的用例.
? 選擇要安裝的插件 - 選擇安裝的插件集。當(dāng)你第一次訪問插件選擇頁面時,默認(rèn)選擇建議的插件。
Note:可以通過Jenkins中的Manage Jenkins > Manage Plugins 頁面在稍后的時間點(diǎn)安裝(或刪除)其他Jenkins插件
參考文章:
https://jenkins.io/zh/
https://www.bilibili.com/video/av71123251/?p=1
網(wǎng)站題目:Jenkins+GitLab+Ansibleplaybook安裝與基本使用
分享路徑:http://muchs.cn/article42/ijoohc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、企業(yè)建站、網(wǎng)站導(dǎo)航、軟件開發(fā)、虛擬主機(jī)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)