部署CICD持續集成環境

=================================== 安裝docker ======================================   
準備工做
[root@node1 /]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@node1 /]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@node1 /]# yum makecache fast
[root@node1 /]# yum install -y docker-ce #開始安裝
配置代理
[root@node1 /]# cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service
[root@node1 /]# vim /etc/systemd/system/docker.service
把ExecStart=/usr/bin/dockerd 改成:ExecStart=/usr/bin/dockerd --registry-mirror=https://15nnx9ip.mirror.aliyuncs.comjava

國內的docker源:https://registry.docker-cn.com/node

由於版本的不一樣,低版本的docker,默認不是dockerd。
[root@node1 /]# systemctl daemon-reload
[root@node1 /]# service docker restart
[root@node1 /]# docker info  #查看代理是否配置成功
echo '{"registry-mirror":["https://15nnx9ip.mirror.aliyuncs.com"]}' > /etc/docker/daemon.jsonlinux

設置開機啓動:git

[root@node1 /]# systemctl enable dockersql

=================================== 安裝git ========================================
[root@node1 /]# yum -y install git
#查看是否安裝成功
[root@node1 /]# git --version
git version 1.8.3.1
=================================== 安裝jdk ========================================
[root@node1 /]# rpm -ivh jdk-8u131-linux-x64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8.0_131-2000:1.8.0_131-fcs  ################################# [100%]docker

=================================== 安裝nexus3 ======================================
環境準備
[root@node1 /]# mkdir /opt/docker_data/nexus-data 
[root@node1 /]# chown -R 200 /opt/docker_data/nexus-data
[root@node1 /]# docker run --detach --hostname ip -p 8081:8081 --restart always --name nexus -v /opt/docker_data/nexus-data:/nexus-data sonatype/nexus3apache

數據備份與遷移
[root@node1 /]# docker stop nexus
[root@node1 /]# tar zcvf nexus_data.tar.gz /opt/docker_data/nexus-data
[root@node1 /]# scp nexus_data.tar.gz root@ip:/opt/docker_data/
登陸新機器
[root@node1 /]# docker stop nexus
[root@node1 /]# rm -rf /opt/docker_data/nexus-data
[root@node1 /]# cd /opt/docker_data/ && tar xvf nexus_data.tar.gz
[root@node1 /]# docker rm nexus
再執行docker run命令json

=================================== 安裝maven ======================================   
[root@node1 /]# cd /opt
[root@node1 /]# rz apache-maven-3.3.9-bin.tar.gz
[root@node1 /]# tar xzvf apache-maven-3.3.9-bin.tar.gz
[root@node1 /]# mv apache-maven-3.3.9 maven
[root@node1 /]# ln -s /opt/maven/bin/mvn /usr/bin/mvn
[root@node1 /]# mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T11:41:47-05:00)
Maven home: /opt/maven
Java version: 1.8.0_131, vendor: Oracle Corporation
Java home: /usr/java/jdk1.8.0_131/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-514.el7.x86_64", arch: "amd64", family: "unix"vim

=================================== 安裝jenkins ======================================  
[root@node1 /]# useradd centos
[root@node1 /]# passwd centos
[root@node1 /]# usermod -aG docker centos 下面的配置會用到,由於jenkins配置了用centos用戶運行,因此須要加入到docker組
查看是否已經有其餘版本的jenkins
[root@node1 /]# rpm -qa |grep jenkins
卸載:
[root@node1 /]# rpm -e xxxxx
安裝
[root@node1 /]# rpm -ivh jenkins-2.60.3-1.1.noarch.rpm #rpm包能夠去jenkins官網下載
service jenkins start
訪問:http://xxx:8080
修改jenkins端口,home目錄,user,java參數
[root@node1 /]# vim /etc/sysconfig/jenkins
JENKINS_USER="centos"
JENKINS_HOME="/data/jenkins"
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Djna.tmpdir=/data/jenkins/tmp"
JENKINS_PORT="8089"
配置jdk路徑
[root@node1 /]# vim /etc/rc.d/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
這裏加上你的jdk路徑
這裏加上你的jre路徑
/usr/bin/javacentos

給新建的centos用戶配置目錄權限
[root@node1 /]# mv /var/lib/jenkins /data
爲jenkins的這3個目錄賦權
[root@node1 /]# chown -R centos:centos /var/cache/jenkins 
[root@node1 /]# chown -R centos:centos /var/log/jenkins
[root@node1 /]# chown -R centos:centos /data/jenkins
啓動jenkins
[root@node1 /]# service jenkins restart
數據遷移
[root@node1 /]# tar zcvf jenkins.tar.gz /data/jenkins
[root@node1 /]# scp jenkins.tar.gz root@ip:/data/
[root@node1 /]# cd /data/ && tar xvf jenkins.tar.gz

=================================== 安裝gitlab ======================================  
[root@node1 /]# docker search gitlab
[root@node1 /]# docker pull gitlab/gitlab-ce:latest
[root@node1 /]# docker run -d -h gitlab -e GITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.2.101/'" -p 444:443 -p 80:80 --name gitlab --restart always -v /srv/gitlab/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:12.0.3-ce.0
數據備份與遷移:
[root@node1 /]# docker stop gitlab
[root@node1 /]# tar zcvf gitlab.tar.gz /srv/gitlab
[root@node1 /]# scp gitlab.tar.gz root@ip:/srv/
登陸新機器
[root@node1 /]# docker stop gitlab
[root@node1 /]# rm -rf /srv/gitlab
[root@node1 /]# cd /srv && tar xvf gitlab.tar.gz
[root@node1 /]# docker rm gitlab
再執行docker run命令

查看gitlab啓動日誌是否有報錯
[root@node1 /]# docker logs -f gitlab

=================================== 安裝sonar ======================================  

docker run -d --name postgres --restart always -e POSTGRES_USER=sonar  -e POSTGRES_PASSWORD=sonar -v /data/pgdata:/var/lib/postgresql/data postgres:9.6.8

docker run --name sonarqube --restart always --link postgres -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar -p 9000:9000 -v /data/sonarqube/data:/opt/sonarqube/data -v /data/sonarqube/extensions:/opt/sonarqube/extensions -d sonarqube:6.7.3

=================================== 安裝kubernets =================================== 待整理

相關文章
相關標籤/搜索