安装jdk1.8 上传到 /usr/local/java 目录 cd /usr/local/java tar -zxvf jdk-8u221-linux-x64.tar.gz

#配置环境变量 vi /etc/profile

#将下面的粘贴到 /etc/profile 末尾:

JAVA_HOME=/usr/local/java/jdk1.8.0_221 JRE_HOME=/usr/local/java/jdk1.8.0_221/jre CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$JAVA_HOME/bin:$PATH export PATH JAVA_HOME CLASSPATH

#保存关闭后(:wq),执行以下命令,让设置立即生效 source /etc/profile

#输入以下命令,来确认这三个变量是否设成了我们想要的 echo $JAVA_HOME echo $CLASSPATH echo $PATH

安装maven cd /home wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz #下载maven压缩包 tar -zxvf apache-maven-3.6.3-bin.tar.gz #解压 rm -rf apache-maven-3.6.3-bin.tar.gz #删除压缩包 配置环境变量

vi /etc/profile 把以下内容加到最后

export M2_HOME=/home/apache-maven-3.6.3

export PATH=$PATH:${M2_HOME}/bin 保存后使环境变量生效:

source /etc/profile

修改下载依赖的仓库地址 vi /home/apache-maven-3.6.3/conf/settings.xml

找到<mirrors></mirrors>标签对

添加后的效果为:

<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
</mirrors>

安装docker 如果有旧版本的docker ,执行这一步,全新安装的跳过 yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-selinux
docker-engine-selinux
docker-engine

安装所需的包 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 替换源 yum -y install docker-ce # 安装docker-ce(如果有报错) systemctl start docker #启动docker systemctl enable docker #开机启动docker systemctl status docker #查看docker状态

配置镜像加速器 mkdir -p /etc/docker vim /etc/docker/daemon.json 在文件中加入 { "registry-mirrors": ["https://br10hqrl.mirror.aliyuncs.com"] }

:wq #保存/etc/docker/daemon.json sudo systemctl daemon-reload sudo systemctl restart docker # 重启生效

安装 docker-compose sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.25.0-rc2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

#检查安装是否完成 docker-compose -v 和jenkins整合还需 弱链接一下 sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

安装jenkins wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.164.3-1.1.noarch.rpm yum install jenkins-2.164.3-1.1.noarch.rpm #systemctl enable jenkins --now systemclt 220之后可以使用这个命令设置自启后启动服务 systemctl enable jenkins systemctl restart jenkins 如果启动报错可以查看具体问题有点端口会冲突,因为默认端口是8080所以你可以根据自己的修改 tail -f /var/log/jenkins/jenkins.log #这里需要建个软连接 ln -s /usr/local/jdk-12.0.2/bin/java /usr/bin/java systemctl restart jenkins

vim /etc/sysconfig/jenkins #监听端口(如果冲突可以休息) JENKINS_PORT="8080"

为了不因为权限出现各种问题,这里直接使用root 修改用户为root JENKINS_USER="root"

修改目录权限 chown -R root:root /var/lib/jenkins chown -R root:root /var/cache/jenkins chown -R root:root /var/log/jenkins

还需要更改 jdk的路径

which java # 查看java的安装路径 vi /etc/init.d/jenkins

更改插件的设置 cd /var/lib/jenkins/updates # 更新插件 替换插件下载地址和搜索地址 sed -i 's/http://updates.jenkins-ci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g' default.json && sed -i 's/http://www.google.com/https://www.baidu.com/g' default.json

cd ~

vi /var/lib/jenkins/hudson.model.UpdateCenter.xml 修改 https://updates.jenkins.io/update-center.json 为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

添加jenkins 到docker用户组 gpasswd -a jenkins docker

查看初始化密码 用于首次登录 在浏览器中打开,初次访问需要使用初始密码,使用以下命令获取 cat /var/lib/jenkins/secrets/initialAdminPassword

systemctl start jenkins.service # 启动 jenkins systemctl enable jenkins.service # 开机启动 systemctl status jenkins.service # jenkins 状态 systemctl sotp jenkins.service # 停止 jenkins

登陆页面设置 至此,成功在centos7上安装jenkins

配置 jenkins 插件管理中 安装 插件 Docker Compose Build Step、gitlab 丢弃旧的构建(到图里面安装对应的,我这里安装过了)

构建设置

docker-registry 安装

docker pull registry # 拉取镜像

vi /etc/docker/daemon.json # 写入以下内容: { "insecure-registries": [ "172.16.77.71:5000" # 172.16.77.71:5000改成你的服务器地址 ] }

systemctl daemon-reload # 重启 systemctl restart docker.service

访问认证 mkdir /home/registry/auth & cd /home/registry/auth # 创建目录 username userpasswd 分别替换成你想设置的用户名和密码 touch htpasswd docker run --entrypoint htpasswd registry -Bbn username userpasswd > auth/htpasswd 如果有报错,解决 which htpasswd(查看自己相关路径) /bin/htpasswd

docker run -d -p 5000:5000 --restart=always --name docker-hub -v /home/registry:/var/lib/registry -v /home/registry/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry # 启动

Gitlab -CI(Runner) 服务器的安装 下载配置信息

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash 安装

yum install -y gitlab-ci-multi-runner

gpasswd -a gitlab-runner docker # 添加gitlab-runner 到docker用户组

在根目录创建 .gitlab-ci.yml 文件

.gitlab-ci.yml定义阶段 stages: - build - test - deploy job1: stage: test tags: - demo script: - echo "I am job1" - echo "I am test stage" job2: stage: build tags: - demo script: - echo "I am job2" - echo "I am build stage" #部署阶段 job3: stage: deploy tags: - demo script: - echo "I am job3" - echo "I am deploy stage"

安装gitlab GitLab的安装及使用教程 配置yum源 vim /etc/yum.repos.d/gitlab-ce.repo 复制以下内容:

[gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1

更新本地yum缓存 sudo yum makecache 安装GitLab社区版 sudo yum install gitlab-ce #自动安装最新版 sudo yum install gitlab-ce-x.x.x #安装指定版本

GitLab常用命令 sudo gitlab-ctl start # 启动所有 gitlab 组件; sudo gitlab-ctl stop # 停止所有 gitlab 组件; sudo gitlab-ctl restart # 重启所有 gitlab 组件; sudo gitlab-ctl status # 查看服务状态; sudo gitlab-ctl reconfigure # 启动服务; sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件; gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab; sudo gitlab-ctl tail # 查看日志;

gitlab重装出现:ruby_block[supervise_redis_sleep] action run 解决方案: 按住CTRL+C强制结束; 运行:sudo systemctl restart gitlab-runsvdir; 再次执行:sudo gitlab-ctl reconfigure

gitlab修改默认端口 部署gitlab的时候,发现8080端口被tomcat给占用了,遂修改gitlab默认端口。

版本查看 cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 12.10.3

gitlab.rb 修改 配置文件在 /opt/gitlab/etc/gitlab.rb 。这个文件用于gitlab如何调用80和8080的服务等。

Advanced settings unicorn['listen'] = '127.0.0.1' unicorn['port'] = 8082 nginx['listen_addresses'] = ['*'] nginx['listen_port'] = 82 # override only if you use a reverse proxy: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#setting-the-nginx-listen-port gitlab-rails 修改 配置文件 /var/opt/gitlab/gitlab-rails/etc/unicorn.rb

What ports/sockets to listen on, and what options for them. #listen "127.0.0.1:8080", :tcp_nopush => true listen "127.0.0.1:8082", :tcp_nopush => true listen "/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket", :backlog => 1024 3. gitlab nginx 修改 配置文件 /var/opt/gitlab/nginx/conf/gitlab-http.conf。这个文件是gitlab内置的nginx的配置文件,里面可以影响到nginx真实监听端口号。

server { listen *:82;

server_name gitlab.123.123.cn; server_tokens off; ## Don't show the nginx version number, a security best practice

giltab-shell修改 配置文件:/var/opt/gitlab/gitlab-shell 修改成: GitLab user. git by default user: git

Url to gitlab instance. Used for api calls. Should end with a slash. gitlab_url: "http://127.0.0.1:8080" gitlab_url: "http://127.0.0.1:8082" ## 关键是这个地方

http_settings:

  1. 重启gitlab 修改完成后,重启下,就可以访问82端口的gitlab了。 gitlab-ctl restart 登录GitLab。 在浏览器的地址栏中,输入ECS服务器的公网IP即可进入GitLab的登录界面,首次登录使用用户名root,密码为首次访问GitLab时设置的新密码。 创建Project。 使用Linux自带的软件源安装Git工具。 yum install git 生成密钥文件。 使用如下命令生成密钥文件.ssh/id_rsa。 ssh-keygen 配置文件中。 cat .ssh/id_rsa.pub

在GitLab的主页中新建一个Project。

添加ssh key,导入步骤2中生成的密钥文件内容。

简单配置。 配置使用Git仓库的人员姓名。 git config --global user.name "testname" 配置使用Git仓库的人员email,填写自己的公司邮箱。 git config --global user.email "abc@example.com" 克隆项目,在本地生成同名目录,并且目录中会有所有的项目文件。 git clone git@iZxxxxxxxxxxxxxxxxx3Z:root/test.git

上传文件。 进入到项目目录。 cd test/ 创建需要上传到GitLab中的目标文件。 echo "test" > /root/test.sh 将目标文件或者目录复制到项目目录下。 cp /root/test.sh ./ 将test.sh文件加入到索引中。 git add test.sh 将test.sh提交到本地仓库。 git commit -m "test.sh" 将文件同步到GitLab服务器上。 git push -u origin master 在网页中查看上传的test.sh文件已经同步到GitLab中。 到此gitlab安装结束

jenkins结和gitlab 测试webhook是否成功 jenkins出现构建说明webhook生效,并且构建是gitlab的管理员构建的。如果出现404、401等报错请看报错解决。

Personal Access Token;并添加到jenkins的凭据中去 在gitlab上新建仓库 系统配置里 Jenkins创建项目

项目创建后地址由Localhost或者域名改为实际IP的方法 vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml GitLab settings gitlab: Web server settings (note: host is the FQDN, do not include http://) host: localhost >> 这里改为主机的IP即可 port: 80 >> 这里成对应的端口 https: false

重启GitLab gitlab-ctl restart

这里需要gitlab账号密码

创建构建触发器 先点Generate 生成token 上面图中的这两个东西非常重要,等下都要用到。记得保存应用!!! 添加远程服务器 Passphrase:打开登录远程服务器秘钥文件的密码,没有可不写 Key:登录远端服务器的秘钥信息 SSH Servers:     Name:改配置的别名     Hostname:远端服务器的地址     Username:远端服务器登录名     Remote Directory:要远程传输文件的目录 表示成功了 Source files:jar包目录,默认为jenkins下当前项目的目录,即/var/lib/jenkins/workspace/项目名。此处需要配置的为,项目目录下的jar包路径:XX/XX.jar

Remove prefix:多余路径删除,如果只拷贝jar文件,则需要将“Source files”里面的多余地址删除掉:即:XX/ Remote directory:拷贝到远端服务器的目录 Exec command:shell脚本命令

测试 在用户端拉取仓库,进行代码提交;之后在jenkins端查看是否有新的项目自动进行构建。若自动构建并且成功,则说明持续集成环境部署成功。