基于docker的Jenkins-Gitlab-Ansible实现自动化部署

环境准备

安装docker,略。
拉取Jenkins、Gitlab镜像

docker pull jenkins
docker pull gitlab-ce

部署

Jenkins

生成Jenkins
	sudo docker run -itd -p 3003:8080 -p 50000:50000 --name jenkins --privileged=true  -v /home/hzq/jenkins:/var/jenkins_home jenkins
	Jenkins工作空间:/home/hzq/jenkins/workspace/
查看jenkins日志
	sudo docker logs jenkins
启动jenkins
	sudo docker start jenkins
查看jenkins容器是否启动
	sudo docker ps
进入/home/hzq/jenkins目录找到密钥
(这一步非常重要,因为我第一次就忘了这件事,浏览器登录时突然想起来,我的密码在哪呢?各位童鞋千万不要像我一样)

顺便跟大家分享一下,在我docker run之后报了一个错:
/usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:235: starting container process caused “process_linux.go:258: applying cgroup configuration for process caused “Cannot set property TasksAccounting, or unknown property.””.
其实这个错误我好像以前也遇到过,只不过那时候我用的还是自己笔记本上的虚拟机,系统版本CentOS 7.2下载最新版本的docker-ce就会出现这个问题,其实本质是Linux和docker的版本不兼容问题。
外国人是这样说的(以下内容请自行翻译):

RHEL 7.2 is no longer supported and Docker does not test their release against unsupported versions. You need to upgrade your OS, preferably to 7.4, to resolve this issue.

I've seen a few people with similar issues in the past few days that resolved this same error message by upgrading their OS. Some of the older packages no longer work with newer docker releases. One of those problems is an outdated libseccomp: https://github.com/moby/moby/issues/35906

然后我换了另一台CentOS 7.6 版本的虚拟机一试就没事了,今天没想到在阿里云的ECS服务器上又遇到了这个问题,仔细一想好像我的云服务器安的确实是CentOS 7.2版本的系统,只能说圣斗士又被同样的招数打倒了一次希望大家不要跟我一样哦。

Gitlab

启动Gitlab容器
	sudo docker run --detach \
	--hostname 192.168.88.100 \
	--publish 443:443 --publish 80:80 --publish 10022:22 \
	--name gitlab \
	--restart always \
	--volume /data/gitlab/config:/etc/gitlab \
	--volume /data/gitlab/logs:/var/log/gitlab  
	--volume /data/gitlab/data:/var/opt/gitlab \
	gitlab/gitlab-ce:latest

我第一次做这个的时候就踩了不少坑

  • hostname一定要在这里改了,虽然以后也不是不能改,但是现在直接设置多方便
  • 443端口和80端口都可以直接映射,22端口千万不要直接映射本机的22端口,也不要少映射哪个端口
  • restart一定要设置为always,要不然你都来不及焐热
  • 磁盘映射也不要省,这几个路径都是必须的

接下来就是Jenkins整合Gitlab、Jenkins整合ansible了,我在之前服务器直接部署时已经做过一遍,过程几乎完全一样,如果有童鞋想看详细过程的可以去我博客里找(其实就是我懒得截那么多图)。

你可能感兴趣的:(AutoOps)