三剑客之Gitlab

  一、Gitlab介绍

      

gitlab配置hosts_Jenkins

gitlab配置hosts_git_02

      

gitlab配置hosts_virtualenv_03

 

gitlab配置hosts_virtualenv_04

       

gitlab配置hosts_Jenkins_05

gitlab配置hosts_virtualenv_06

 

  二、Gitlab工作流程

       

gitlab配置hosts_Jenkins_07

gitlab配置hosts_git_08

 

   三、Gitlan安装流程

         (1)关闭防火墙   system disable firewalld

      (2)关闭SELINUX,重启系统  

 

      (3)安装Gitlab  ce

         1.配置镜像源  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 makecache

yum install gitlab-ce-11.3.11

       (4)gitlab配置

vim /etc/gitlab/gitlab.rb

external_url   'http://本机IP'

gitlab-ctl reconfigure

gitlab-ctl start

       (7)访问浏览器,http://192.168.1.203 ,大功告成!   账号:root    密码:19***(保密)

          

gitlab配置hosts_gitlab配置hosts_09

gitlab配置hosts_Jenkins_10

  四、Gitlab应用

      

gitlab配置hosts_gitlab配置hosts_11

 

       (1)运维人员关注monitoring模块,可以看到硬件信息,日志,健康状况等

          

gitlab配置hosts_virtualenv_12

 

       (2)创建账号

          

gitlab配置hosts_virtualenv_13

 

       (3)为项目分配账号及角色,有普通开发Develop和管理者(领导)Maintainer

          

gitlab配置hosts_virtualenv_14

 

       (4)为账号设置初始密码

          

gitlab配置hosts_git_15

 

       (5)dev账号提交代码,发出merge申请,指定lead账号审批,lead账号通过merge请求,并可以留下备注。

          

gitlab配置hosts_gitlab配置hosts_16

三剑客之Ansible

 

  一、ansible介绍

    

gitlab配置hosts_virtualenv_17

gitlab配置hosts_git_18

   二、ansible的优势和应用场景

    

gitlab配置hosts_git_19

gitlab配置hosts_Jenkins_20

 

   三、ansible配合virtualenv安装配置

    (1)virtualenv用来隔离python环境,让该python环境仅供ansible使用,避免系统其它程序使用该python环境,造成潜在的冲突

      

gitlab配置hosts_git_21

 

     (2)Ansible两种安装模式(CentOS7)

        1.yum包安装(可能造成ansible与系统其它使用到python模块的程序之间的冲突,不推荐)

          yum -y install  ansible

        2.Git源代码安装(配合virtualenv实现python模块隔离,避免冲突的产生,推荐)

          去官网克隆ansible源代码   git clone https://github.com/ansible/ansible.git

     (3)Ansible具体安装流程

        1.关闭防火墙和selinux

        2.下载并安装Python-3.6.5安装包    https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz

        3.解压,移动到/usr/local并进入目录   tar xf Python-3.6.5.tar.xz    mv Python-3.6.5 /usr/local/          cd Python-3.6.5  

install openssl-devel openssl -y

        5.编译 ./configure --prefix=/usr/local --with-ensurepip=install --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"  --with-ssl

        6.安装  make  && make altinstall

        7.ln -s /usr/local/bin/pip3.6  /usr/local/bin/pip

        8.pip install virtualenv,注意:这一步pip下载速度非常慢,需要使用国内镜像源 

           mkdir ~/.pip

                cd  ~/.pip 

                vim pip.conf   

            [global]
            index-url = https://pypi.tuna.tsinghua.edu.cn/simple            [install]
            trusted-host = https://pypi.tuna.tsinghua.edu.cn

           9.创建ansible部署账户    useradd  deploy 

          10.登陆deploy账户  su - deploy  

        11.在deploy用户下创建Python3.6版本的virtualenv实例,用来集成ansible2.5版本

          virtualenv -p /usr/local/bin/python3.6 .py3-a2.5-env

 

        12.下载ansible安装包,上传到服务器

              https://pan.baidu.com/s/1OZDAlIja_FN-8zRutd_-_w   提取码:8t5u

 

        13.加载virtualenv环境   source /home/deploy/.py3-a2.5-env/bin/activate

        14.安装依赖包并临时指定国内镜像源    pip install paramiko PyYAML jinja2  -i https://pypi.tuna.tsinghua.edu.cn/simple

        15.解压缩并安装

          unzip ansible-stable-2.5.zip     

          cd  ansible-stable-2.5

          python setup.py install

        16.验证是否安装成功  ansible  --version

        17.退出virtualenv环境     deactivate

  四、Ansible playbooks入门及编写规范

    运行ansible时各参数的含义:

      ansible-playbook --tags  %s  -i  %s,%s   --extra-vars  %s  -e  %s

        --tags  表示执行某个标签下的任务,通过tag来进行任务过滤

        -i  表示指定iventory主机清单    清单内包含hosts和声明的参数变量 

        逗号后面跟的是主入口文件,比如deploy.yml,而在deploy.yml中通过roles指定了具体要执行的main.yml(为什么会个有逗号呢?奇怪。。。)

        --extra-vars  指定额外的变量

        -e  也是指定额外的参数

    

gitlab配置hosts_virtualenv_22

gitlab配置hosts_gitlab配置hosts_23

 

     

gitlab配置hosts_virtualenv_24

gitlab配置hosts_gitlab配置hosts_25

 

     

gitlab配置hosts_virtualenv_26

gitlab配置hosts_Jenkins_27

  五、Ansible playbook常用模块     

     

gitlab配置hosts_Jenkins_28

    

gitlab配置hosts_git_29

 

 

      

gitlab配置hosts_gitlab配置hosts_30

         

gitlab配置hosts_git_31

 

       

gitlab配置hosts_git_32

         

gitlab配置hosts_virtualenv_33

 

      

gitlab配置hosts_gitlab配置hosts_34

 

    使用各个模块组成一个完整的playbook任务脚本文件

       

gitlab配置hosts_gitlab配置hosts_35

    

  六、参考文档

   ansible教程 

三剑客之Jenkins

  • Jenkins介绍

    

gitlab配置hosts_git_36

  • Jenkins的优势和应用场景

    

gitlab配置hosts_Jenkins_37

        

gitlab配置hosts_Jenkins_38

 

 

  • Jenkins安装配置管理

    

gitlab配置hosts_Jenkins_39

      

gitlab配置hosts_Jenkins_40

 

 

     

gitlab配置hosts_gitlab配置hosts_41

    

gitlab配置hosts_git_42

           

    踩坑:修改权限,防止启动失败  

       chown -R jenkins:jenkins /var/lib/jenkins

      chown -R jenkins:jenkins /var/cache/jenkins

      chown -R jenkins:jenkins /var/log/jenkins

     参考文章:(这一步花了很多时间才找到原因,遇到问题一定要查看日志,发现最后报错是端口被占用,当换成8081之后,才成功启动。。。)

    

gitlab配置hosts_Jenkins_43

 

    账号密码:fengxi/19***

    坑一:下载插件速度慢

      配置国内源加速jenkins插件下载:

    坑二:报错No such plugin: cloudbees-folder

      先直接访问restart页面,修改镜像源,然后再回到插件页面安装    

          

  • Jenkins job介绍

    

gitlab配置hosts_virtualenv_44

 

 

     

gitlab配置hosts_virtualenv_45

          

gitlab配置hosts_Jenkins_46

  • Jenkins job环境准备

    

gitlab配置hosts_git_47

      1.可以省略

      2.yum install git curl -y

      3.git config --system http.sslVerify false

      4.没有邮箱可以省略

        

gitlab配置hosts_Jenkins_48

 

         

gitlab配置hosts_gitlab配置hosts_49

5.添加gitlab账号密码

        

gitlab配置hosts_gitlab配置hosts_49

 

  • Jenkins freestyle job的构建与配置

    1.创建一个freestyle project

      

gitlab配置hosts_git_51

 

    2.编辑描述信息

      

gitlab配置hosts_gitlab配置hosts_52

 

    3.添加参数配置

      

gitlab配置hosts_gitlab配置hosts_53

 

    4.源代码管理

      

gitlab配置hosts_virtualenv_54

 

    5.Build配置

      

gitlab配置hosts_git_55

    6.开始构建

      

gitlab配置hosts_gitlab配置hosts_56

 

     7.查看构建结果

      

gitlab配置hosts_git_57

 

       

gitlab配置hosts_gitlab配置hosts_58

 

  • Jenkins Pipeline job的编码规范与构建配置

     

  • Jenkins Linux Shell集成和Jenkis参数集成

 

  • Jenkins Git和Maven集成

 

  • Jenkins Ansible集成