Devops之CICD基础环境安装配置

阿里云安装java8

  • 安装JDK

    • yum list java*
    • yum install -y java-1.8.0-openjdk*
    • java -version
  • 配置环境变量

    • 打开 vim /etc/profile 添加一下内容

      • export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk.x86_64 1:1.8.0.191.b12-0.el7_5
      • export PATH=$PATH:$JAVA_HOME/bin
    • 修改完成之后,使其生效

      • source /etc/profile

安装GIT

yum install -y git
git --version
git config --global user.name "spancer" 
git config --global user.email [email protected]
git config --list
  • 生成并部署SSH key

  • 如何生成ssh公钥

    • ssh-keygen -t rsa -C "[email protected]"

    • 三次回车即可生成 ssh key

    • 查看你的 public key,并把他添加到码云(Gitee.com) SSH key添加地址:https://gitee.com/profile/sshkeys)

      • cat ~/.ssh/id_rsa.pub
  • 添加后,在终端(Terminal)中输入

    ssh -T [email protected]

  • 若返回 Welcome to Gitee.com, yourname!则证明添加成功。

安装MAVEN

  • 下载:

    • http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
  • 解压

    • tar vxf apache-maven-3.5.4-bin.tar.gz
  • 移动

    • mv apache-maven-3.5.4 /usr/local/maven3
  • 修改环境变量, 在/etc/profile中添加以下几行

    • export MAVEN_HOME=/usr/local/maven3
    • export PATH=${PATH}:${MAVEN_HOME}/bin
  • 执行 source/etc/profile 使环境变量生效。

  • 设置阿里云的repo:在$MAVEN_HOME的conf文件夹的setting.xml的标签里加入

    
      alimaven
      aliyun maven
      http://maven.aliyun.com/nexus/content/groups/public/
      central
    
    
    
    
    	  com.spotify
    
  • 参考:docker maven 配置:https://www.jianshu.com/p/c435ea4c0cc0

  • 输入mvn -version 返回版本信息则安装正常。

安装Jenkins

  • 从https://jenkins.io/download/下载对应的jenkins

    • 下载wget https://prodjenkinsreleases.blob.core.windows.net/redhat-stable/jenkins-2.138.3-1.1.noarch.rpm 169: admin/83d6bc0f7d974335b44bfd1a1c957d9f spancer/aaAA11@@33
  • 安装插件: Git Parameter 、 Publish Over SSH 、SSH、Docker Compose Build Step、Extended Choice Parameter 、Pipeline Utility Steps、SSH Pipeline Steps 、docker-build-step

  • Jenkins配置:

    • 系统管理-》全局安全配置
      • 勾选Allow anonymous read access
      • 取消防止跨站点请求伪造
  • Jenkins运行权限设置:

    • 将jenkins账号分别加入到root组中

      • gpasswd -a root jenkins
    • 修改/etc/sysconfig/jenkins文件中,可以修改为root权限运行

      JENKINS_USER=root
        JENKINS_GROUP=root
    • 重启Jenkins

      • service Jenkins restart

4.验证 在Jenkins中的shell脚本中执行命令 whoami


  • 配置pipeline项目

安装docker

  • 最好参考:http://blog.51cto.com/7603402/2171815

  • 卸载老版本:

    • yum remove docker 
      docker-common 
      docker-selinux 
      docker-engine
  • 设置仓库:

    • yum install -y yum-utils 
      device-mapper-persistent-data 
      lvm2
    • yum-config-manager 
      --add-repo 
      https://download.docker.com/linux/centos/docker-ce.repo
    • yum-config-manager 
      --add-repo 
      https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 安装docker

    • yum install docker-ce
  • 或直接安装非CE版:

    • yum install docker
  • 安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:

  • service docker start 或 systemctl start docker.service

  • chkconfig docker on 或 systemctl enable docker.service

  • 配置Docker中国加速器 ' vi /etc/docker/daemon.json

    #添加如下内容:
    {
        "registry-mirrors": ["https://registry.docker-cn.com"],
        "live-restore": true,
        "insecure-registries":["111.230.139.135"],
          "hosts": ["tcp://127.0.0.1:2375", "unix:///var/run/docker.sock"],
          "log-driver": "json-file",  
          "log-opt": {  
                "max-size": "10m",  
                "max-file": "10"  
    }
  • 验证docker安装完成

    • 输入docker version 返回版本信息,则安装成功。
  • Docker 使用

    • 停止所有容器:
      • docker stop $(docker ps -aq)
      • docker rm $(docker ps -aq)
    • 删除所有镜像:
      • docker rmi $(docker images -q)
      • docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') //停止容器
      • docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') //删除容器
      • docker rmi $(docker images | grep "none" | awk '{print $3}') //删除镜像
    • Docker容器内操作:
      • docker exec -it 容器名 /bin/bash
    • Docker容器内编辑,如果命令无效,需安装:
      • apt-get update
      • apt-get install vim
      •  
  • Docker sock问题:

    • 编辑 vim /lib/systemd/system/docker.service
    • 修改:
      • ExecStart=/usr/bin/dockerd fd:// with ExecStart=/usr/bin/dockerd -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock \
    • 或: chmod 777 /var/run/docker.sock
  • 安装harbor:
    • 下载 : harbor-offline-installer-v1.6.2.tgz
    • 配置:harbor, 并安装。
    • 安装向导: https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md
  • 安装Portainer服务,docker的WEB管理界面:
    • docker search portainer
    • docker pull docker.io/portainer/portainer
    • docker run -d -p 9000:9000 
      --restart=always 
      -v /var/run/docker.sock:/var/run/docker.sock 
      --name coomia-portainer 
      docker.io/portainer/portainer
      • 访问: http://IP:9000
  • 安装部署私有镜像仓库
    • Docker Hub作为Docker默认官方公共镜像;如果想自己搭建私有镜像仓库,官方也提供registry镜像,使得搭建私有仓库非常简单。

    • 安装私服:

      • docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry
    • 测试registry可用性。

      由于Docker CLI默认以HTTPS访问,而部署的registry并未提供HTTPS,因此,需要在pull镜像的Docker主机(192.168.0.217,192.168.0.218)添加HTTP可信任:
    • 添加信息:

      • vi /etc/docker/daemon.json {"insecure-registries":["192.168.0.219:5000"]}
      • 重启docker:
        • service docker restart

安装docker-compose

  • pip安装:

    • pip install docker-compose
  • docker-compose用法:

    • 启动,关闭,和删除容器(组),需要在包含在docker-compose.yml 目录中:
      • docker-compose up -d # 构建并启动
      • docker-compose stop # 停止(不删除容器)
      • docker-compose rm # 删除容器
  • docker-compose-ui安装:

    docker run \
      --name docker-compose-ui \
      -p 5000:5000 \
      -w /opt/docker-compose-projects/ \
      -v /var/run/docker.sock:/var/run/docker.sock \
      francescou/docker-compose-ui:1.13.0

安装docker集群(用Swarm& Portainer管理集群)

  • 安装swarm前的配置

    • 修改配置文件修改监听端口,修改options的端口监听。 vim /etc/sysconfig/docker 将options内容修改为以下:

      OPTIONS='--selinux-enabled --log-driver=journald 
      --signature-verification=false  
      -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock'
  • 重启docker服务

    • systemctl restart docker
  • 使用docker-proxy代理服务

    • 拉取镜像: docker pull docker.io/shipyard/docker-proxy
    • 启动: docker run -ti -d -p 2375:2375 \ --restart=always \ --hostname=$HOSTNAME \ --name shipyard-proxy \ -v /var/run/docker.sock:/var/run/docker.sock \ -e PORT=2375 \ docker.io/shipyard/docker-proxy:latest

集成jenkins docker 参考文章:

  • 私有docker仓库文章:
    • http://blog.51cto.com/ganbing/2080140
  • Jenkins集成docker文章
    • http://blog.51cto.com/ganbing/2085769
    • http://todorex.com/2018/07/18/运维/SpringBoot-Git-Jenkins-Docker实现CI-CD/
    • http://blog.51cto.com/ganbing/2085769
  • CICD
    • https://github.com/lizibin/docker-jenkins-sonarqube

docker ES head插件安装

  • 安装插件:

    • docker run -p 9100:9100 -d --name es-head mobz/elasticsearch-head:5-alpine
  • 配置跨域访问:编辑elasticsearch.yml

    • http.cors.enabled: true
    • http.cors.allow-origin: "*"
  • ES参考配置

cluster.name: my-application				#集群名称
node.name: node-1							#节点名称
path.data: /home/elasticsearch/data			#索引存储位置
path.logs: /home/elasticsearch/logs			#日志存储位置
bootstrap.memory_lock: true				#Lock the memory on startup
network.host: 192.168.61.100
http.port: 9200
discovery.zen.ping.unicast.hosts: ["host1", "host2"]
discovery.zen.minimum_master_nodes: 3
gateway.recover_after_nodes: 3

你可能感兴趣的:(DevOps,云计算)