gitlab-ansible-jenkins 安装
交付 + [ 版本控制 - 持续集成工具 - 部署工具 ] = 持续交付
版本控制系统
- gitlab github
持续集成工具
- Jenkins
部署工具
- Ansible Saltstack Chef
Gitlab
- Gitlab是一个开源分布式版本控制系统
- 开发语言 Ruby
- 功能: 管理项目源代码,版本控制,代码复用与查找
Gitlab安装
依赖安装
- 关闭firewalld 关闭selinux
- 安装依赖 : yum -y install policycoreutils openssh-server openssh-clients postfix
- 开启邮件服务: systemctl enable postfix && systemctl start postfix
gitlab-ce安装
- shell方式安装 :
1
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
- 源方式安装:
1
2
3
4[gitlab-ce] name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1` - yum makecache #清空软件包缓存
- yum install gitlab-ce #安装
- gitlab-ctl reconfigure #配置gitlab,时间稍长 看配置情况 内存小 时间越长
- gitlab-ctl restart #重启gitlab
- 安装之后 插件配置文件在/opt/gitlab/xxx 配置文件: /etc/gitlab/gitlab.rb
关于windows git Bash Here 重新切换用户的方法
- git config –system –unset credential.helper
- 上面方法不行的话删除 .gitconfig 文件中的credential 所有选项 即可解决
安装Ansible
- 安装方式有源码安装 和 yum安装 因为考虑到ansible的库有可能和别的程序的库冲突 所以选择重新安装python ,一般环境会自带python2.7 所以现在重新安装python3.6, 安装python时 编译需要安装 gcc gcc-c++ 以及 openssl* 等依赖,
- python 编译命令 ./configure –prefix=/usr/local/ –with-ensurepip=install –enable-shared LDFLAGS=”-Wl,-rpath /usr/local/lib”
- python安装之后 用pip安装 virtualenv (virtualenv是python的一个虚拟环境 可以虚线一个独立的环境 使各个程序独立的运行互不干扰,所以这里利用virtualenv), pip install virtualenv
- 然后 建立新用户 useradd deploy ,切换到新用户下面, su - deploy , 然后 建立虚拟环境, virtualenv -p /usr/local/bin/python.3.6 .py3-a2.5-env , 这个.py3-a2.5-env 是一个新的实例 用来集成ansible /usr/local 这个是python的安装位置,
- 然后进入.py3-a2.5-env : git clone https://github.com/ansible/ansible.git 下载ansible的源代码
- 加载这个环境 : source /home/deploy/.py3-a2.5-env/bin/activate
- 在这个环境下面安装 ansible的依赖环境 : pip install paramiko PyYAML jinja2 (依赖必须在虚拟环境加载之后在安装)
- 移动ansible的源代码到 .py3-a2.5-env 下面 : mv ansible .py3-a2.5-env/
- 进入ansible目录 并且切换ansible版本为2.5 : git checkout stable-2.5
- 加载ansible : source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q
- 验证是否安装完成 : ansible –version
Ansible playboos的编写规则
- ansible 文件目录结构
- ansible 变量配置说明
- 任务主文件格式
- 入口文件结构
- ssh配置
- 执行
- shell方式安装 :
Ansible playbooks 常用模块
jenkins安装
- yum install java : 安装jave环境
- sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
- sudo rpm –import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
- yum install jenkins
- 安装之后 修改配置文件, vim /etcsysconfig/jenkins
- 修改用户名,或者更改默认端口,如果修改了用户名 还需要修改安装目录属主
- chown -R root:root /var/lib/jenkins
- chown -R root:root /var/log/jenkins
- 然后查看8080端口是否启动, lsof -i :8080
- 浏览器访问 xxxx:8080 ,首页有个文件 主机查看文件 里面的内容就是默认密码,登录即可安装成功
Freestyle Job 和 Pipeline Job的区别
- Freestyle Job
- 需要在页面添加模块配置项与参数完成配置
- 每一个job仅能实现一个开发功能
- 无法将配置代码化,不利于job配置迁移与版本控制
- 逻辑相对简单, 无须额外学习成本
- Pipline job
- 所有模块 参数配置都可以体现为一个pipline脚本
- 可以定义多个stage构造一个管道工作集
- 所有配置代码化 方便job配置迁移与版本控制
- 需要pipline脚本语法脚本
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!