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 文件目录结构
      avatar
    • ansible 变量配置说明
      avatar
    • 任务主文件格式
      avatar
    • 入口文件结构
      avatar
    • ssh配置
      avatar
    • 执行
      avatar

Ansible playbooks 常用模块

  • avatar

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 协议 ,转载请注明出处!