因收到Google相关通知,网站将会择期关闭。相关通知内容 03.Devops工具链 基础工具介绍安装配置 在前面的两个章节中简单介绍了一下Jenkins以及插件的安装配置等内容。本系列文章虽然是基于Jenkins 进行展开的,但是实现Devops中的CI/CD也不是仅凭一个工具就能实现的,需要众多Devops工具链的相互协作。所以在配置好Jenkins服务后,本章节来介绍几款与Jenkins集成进行持续交付和持续部署的devops工具包。并且在以后的章节中会通过与Jenkins配合以实现应用服务的构建和部署。 本节主要介绍如下工具的安装配置: Docker Harbor Gitlab Ansible Docker 介绍 Docker 是什么大家都应该都有所了解,一个基于LXC技术构建的的高级容器引擎。Docker以容器为资源分割和调度的基本单位,封装整个软件运行时的环境,为开发者和系统管理员设计的用于构建、发布和运行分布式应用的平台。它是一个跨平台、可移植并且简单易用的容器解决方案。 Docker 基于Linux 内核的cgroup,namespace以及 AUFS 和Union FS等技术,对进程进行封装隔离,属于操作系统层面的轻量级虚拟化技术。 说明 Namespace:是对全局系统资源的一种封装隔离,使得处于不同namespace的进程拥有独立的全局系统资源,改变一个namespace中的系统资源只会影响当前namespace里的进程,对其他namespace中的进程没有影响。Linux内核中提供了7种namesapce隔离系统调用(docker 用到6种): UTS:UTS namespace提供主机名和域名的隔离 IPC:进程间通信,涉及的IPC资源包括常见的信号量,消息队列和共享内存。 PID:PID namespace隔离进程PID,两个namespace下的进程可以有相同的Pid,每个Pid的namespace都有自己的计数程序。PID namespace中的第一个进程为PID 1(所有进程的父进程),像linux 中 的init进程。 mount:mount通过隔离文件系统挂载点对隔离文件系统提供支持 Network :Network namespace主要提供了关于网络资源的隔离(不是真正的网络隔离,只是把网络独立出来) User :User namespace主要隔离安全相关的标识符和属性,如用户id,用户组id,root目录 、秘钥以及权限等。 cgroup:对一组进程进行统一的资源监控和限制,是Linux内核提供的一种将进程按组进行管理的机制。cgroup 可以限制、记录任务组使用的物理资源(cpu、memory 、io等),主要作用如下: 资源限制:对任务使用的资源总额进行限制 优先级分配:控制任务运行的优先级 资源统计:统计系统资源的使用量 任务控制:对任务执行挂起、恢复等操作 AUFS 和 Union FS: UnionFS 是一种为 Linux 操作系统设计的用于把多个文件系统联合到同一个挂载点的文件系统服务 AUFS 即 Advanced UnionFS ,是 UnionFS 的升级版,它能够提供更优秀的性能和效率。 AUFS 作为联合文件系统,它能够将不同文件夹中的层联合(Union)到同一个文件夹中,这些文件夹在 AUFS 中称作分支,整个联合的过程被称为联合挂载(Union Mount) 有关Docker的介绍就简单的介绍到这里,下面看一下Docker的安装 安装 Centos7.x 安装Docker 安装前首先卸载旧版本的Docker服务(如果曾经安装过) $ sudo yum remove docker docker-common docker-selinux docker-engine docker-client*docker-latest* docker-logrotate #删除残留文件 $ rm -rf /var/lib/docker 安装存储库包 $ yum install -y yum-utils device-mapper-persistent-data lvm2 设置稳定存储库 $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 注意:使用官方的源安装会很慢,可以换成阿里云的 https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装DOCKER CE $ yum-config-manager --enable docker-ce-edge && yum install docker-ce -y 启动 $ systemctl start docker 使用脚本自动安装 Docker官方为了简化安装流程,提供了一套安装脚本,CentOS 系统上可以使用这套脚本安装: $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun 说明: --mirror 表示指定的yum源 执行这个命令后,脚本就会自动的将一切准备工作做好,并且把Docker 安装在系统中。 默认情况下,docker命令会使用Unix socket与Docker引擎通讯。而只有root 用户和 docker组的用户才可以访问Docker引擎的Unix socket。出于安全考虑,一般Linux系统上不会直接使用root用户。因此,更好地做法是将需要使用docker的用户加入docker用户组(如果你不想使用root用户)。 建立docker组 $ sudo group add docker 将当前用户加入docker组 $ sudo usermod -aG docker $USER 其它系统安装docker可以参考官网 ,比如 Ubuntu安装 https://docs.docker.com/install/linux/docker-ce/ubuntu/ Mac安装 https://docs.docker.com/docker-for-mac/install/ 安装还是比较简单的。 测试 Docker 安装完以后就可以进行下一步的基础测试了。 这里以根据官方的nginx镜像启动一个容器为例: [root@Docker ~]# docker run -itd -p80:80 nginx Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx bc51dd8edc1b: Pull complete ..... 5c472411317e6f1f13ed522d3963331054c84f747cd88d66f52d67be66709973 启动以后,查看并测试访问一下 [root@Docker ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 72dd0bd9a12f nginx "nginx -g 'daemon ..." 5 seconds ago Up 2 seconds 0.0.0.0:80->80/tcp gallant_nash [root@Docker ~]# curl localhost:80 ......
If you see this page, the nginx web server is successfully installed and ......