逐步向CICD遷移(一)

背景:

        計劃使用Centos7 Core 作爲 docker host,搭建測試平臺,只有4臺主機,就使用Swarm方案。

環境:

主機名稱 系統 IP地址 部署應用、節點
docker-host1 CentOS7 Core xxx.xxx.xxx.80

Jenkins,部署java,nginx

docker-host2 CentOS7 Core xxx.xxx.xxx.81

Gitlab 部署java,nginx

docker-host3 CentOS7 Core xxx.xxx.xxx.82

postgres,geode

docker-host4 CentOS7 Core xxx.xxx.xxx.83

postgres,geode

前置工作:

       配置各個主機相互ssh免祕鑰

docker-host1安裝 Jenkins

1. 從https://prodjenkinsreleases.blob.core.windows.net/redhat-stable/jenkins-2.222.4-1.1.noarch.rpm 下載安裝程序

2. 使用yum install 安裝: sudo rpm -ivh jenkins-2.222.4-1.1.noarch.rpm

3. 參照 https://www.cnblogs.com/fangts/p/11095316.html ,直接配置使用/etc/sysconfig/jenkins文件中的 JENKINS_USER="root"

修改目錄權限

sudo chown -R root:root /var/lib/jenkins
sudo chown -R root:root /var/cache/jenkins
sudo chown -R root:root /var/log/jenkins

重啓

sudo service jenkins restart

 提示:Starting Jenkins bash: /usr/bin/java: No such file or directory

            Failed to start LSB: Jenkins Automation Server.

參考https://blog.csdn.net/qq_34208844/article/details/87865672,修改 /etc/init.d/jenkins

candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-11.0/bin/java
/usr/lib/jvm/jre-11.0/bin/java
/usr/lib/jvm/java-11-openjdk-amd64
/usr/programs/jdk1.8.0_211/bin/java
"

上面是修改後的,這裏需要注意的是指向的是java文件完整路徑,可以使用whereis java 查看,需要刪除/usr/bin/java,這一行。

$ sudo systemctl daemon-reload
$ sudo systemctl start jenkins

啓動成功,在瀏覽器中輸入地址:http:<ip或者域名>:8080,提示Jenkins準備好了會自動跳轉到下面的頁面,

然後就是一直停留在這裏了,參考https://blog.csdn.net/weixin_44679832/article/details/104409862

在/var/lib/jenkins安裝目錄下,找到hudson.model.UpdateCenter.xml,把http://updates.jenkins-ci.org/update-center.json,修改成http://mirror.xmission.com/jenkins/updates/update-center.json,並保存

$ sudo vim hudson.model.UpdateCenter.xml
$ cat hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>http://mirror.xmission.com/jenkins/updates/update-center.json</url>
  </site>
</sites>
$ sudo systemctl restart jenkins

或是參考https://blog.csdn.net/hiXavier/article/details/103662275,使用web配置 

重啓服務,然後刷新頁面,等待

然後根據需要安裝插件,這裏選擇推薦插件

然而插件安裝失敗,可以參考https://jenkins-zh.cn/wechat/articles/2019/11/2019-11-11-update-center-mirror-announcement/

首先下載最新版,下載地址https://github.com/jenkinsci/localization-zh-cn-plugin/releases

解壓到某個目錄,使用idea或是其他ide,構建項目,最後構建成兩個文件,

把這兩個文件放到 Jenkins的plugins 文件夾,在瀏覽器打開Jenkins的插件高級管理 http://10.10.10.80:6080/pluginManager/advanced

 選擇hpi文件,點擊上傳,等待安裝成功,然後重啓Jenkins。

注意:打開瀏覽器的desktop機器不是部署服務器,需要desktop機器也有hpi文件

重啓後,進入Jenkins後,點擊右下角Jenkins中文社區

 點擊使用,

點擊 設置更新中心地址 

修改升級站點https://updates.jenkins-zh.cn/update-center.json,然後依次點擊提交立即獲取

 更新成功如下:

 

docker-host2安裝 Gitlab

參考鏈接:

https://blog.csdn.net/duyusean/article/details/80011540

https://segmentfault.com/a/1190000021753705

1. 從https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/ 選擇需要安裝的rpm文件,並下載;

2. 使用yum install 安裝:sudo yum install gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

3. 根據提示修改/etc/gitlab/gitlab.rb文件

# 修改成具體ip,這裏是所有ip
external_url 'http://0.0.0.0:6900'

4. 初始化Gitlab 

sudo gitlab-ctl reconfigure

5. 等待配置完成後啓動Gitlab


Running handlers:
Running handlers complete
Chef Client finished, 362/515 resources updated in 02 minutes 11 seconds
gitlab Reconfigured!
$ sudo gitlab-ctl restart
ok: run: gitaly: (pid 21040) 0s
ok: run: gitlab-monitor: (pid 21057) 0s
ok: run: gitlab-workhorse: (pid 21061) 1s
ok: run: logrotate: (pid 21107) 0s
ok: run: nginx: (pid 21114) 1s
ok: run: node-exporter: (pid 21124) 0s
ok: run: postgres-exporter: (pid 21131) 0s
ok: run: postgresql: (pid 21140) 0s
ok: run: prometheus: (pid 21149) 0s
ok: run: redis: (pid 21160) 1s
ok: run: redis-exporter: (pid 21164) 0s
ok: run: sidekiq: (pid 21172) 0s
ok: run: unicorn: (pid 21181) 0s
$ netstat -nlutp
(No info could be read for "-p": geteuid()=1000 but you should be root.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:9121          0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:9090          0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:9187          0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:9100          0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:9168          0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:6900            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:8060            0.0.0.0:*               LISTEN      -
tcp6       0      0 :::111                  :::*                    LISTEN      -
tcp6       0      0 ::1:9168                :::*                    LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
tcp6       0      0 ::1:25                  :::*                    LISTEN      -
udp        0      0 0.0.0.0:111             0.0.0.0:*                           -
udp        0      0 0.0.0.0:964             0.0.0.0:*                           -
udp        0      0 0.0.0.0:34490           0.0.0.0:*                           -
udp6       0      0 :::111                  :::*                                -
udp6       0      0 :::964                  :::*                                -
[

7. 測試環境就直接關閉firewalld

systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-05-29 06:37:46 EDT; 1 day 20h ago
     Docs: man:firewalld(1)
 Main PID: 816 (firewalld)
    Tasks: 2
   Memory: 308.0K
   CGroup: /system.slice/firewalld.service
           └─816 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
$ sudo systemctl stop firewalld.service
$ sudo systemctl disable firewalld.service
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

 8. 訪問Gitlab地址 ,輸入root用戶重置密碼,然後重新用root 和新密碼登錄

完成Gitlab初始安裝。

docker-host3安裝 

暫無

docker-host4安裝 

暫無

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章