劈荆斩棘:Gitlab 部署 CI 持续集成

阅读目录: install configue gitlab-ci-multi-runner restore nuget packages bulid .sln run unit tests configue .gitlab-ci.yml configue build status badge image CI 精华文章: 持续集成是什么? 重温大师经典:Martin Fowler 的持续集成 Gitlab 部署 CI 相关资料: 配置…

Continue Reading劈荆斩棘:Gitlab 部署 CI 持续集成

关于RPM的%config和(noreplace)

这篇文章翻译自这里, 是一篇关于制作RPM包中的一个比较难于理解的地方。 不做开发的同学就不要看了。 RPM spec文件有个名为 %config 的宏,它可以标识配置文件, 这样在升级时用户对配置文件做过的修改就不会丢失。 没有它,用户千辛万苦修改过的配置文件会在升级过程中被覆盖。 %config也可以写成%config(noreplace),不过网上关于它的说明却屈指可数。 下面是关于这两者的一些实验,都是在RedHat 9的RPM(rpm-4.2-0.69)上进行的, 其他版本有可能不同。 RPM中的文件的制约条件有三个:1. 该文件在spec中如何标识(默认,%config或者%config(noreplace)); 2. 在rpm升级包中该文件是否被更新;3. 该文件是否被用户编辑过。 下表就是各个条件的组合结果。 文件标识 在RPM升级包中是否更新了? 旧版本文件未被用户编辑过 旧版本文件被用户编辑过 默认 No 用新文件覆盖 用新文件覆盖 ~ Yes 用新文件覆盖…

Continue Reading关于RPM的%config和(noreplace)

使用kubeadm在Red Hat 7/CentOS 7快速部署Kubernetes 1.7集群

前言 kubeadm是Kubernetes官方推出的快速部署Kubernetes集群工具,其思路是将Kubernetes相关服务容器化(Kubernetes静态Pod)以简化部署。kubeadm当前处于beta阶段,不建议生产环境使用(比如etcd单点)。使用kubeadm部署Kubernetes集群非常简单方便,本文记录了在Red Hat 7上用kubeadm部署一个安全的Kubernetes集群的全过程,CentOS 7部署过程与之类似。 如需kubeadm部署一个高可用的集群,可采用如下方式 kubeadm init --api-advertise-addresses=vip --external-etcd-endpoints=http://x.x.x.x:2379,http://x.x.x.x:2379,http://x.x.x.x:2379 --pod-network-cidr 10.244.0.0/16 注:--api-advertise-addresses 本身支持多个api service ip,但操作kubeadm join加入集群节点会失败, 所以对外服务只配置为一个vip。 部署实例 etcd Version: 3.0.17 kubeadm: v1.7.1 kubernetes: v1.7.1 Flannel: v0.8.0 Docker: 17.03.1-ce   准备工作 1. Red Hat Enterprise Linux Server release 7.1 (Maipo)(…

Continue Reading使用kubeadm在Red Hat 7/CentOS 7快速部署Kubernetes 1.7集群

使用kubeadm安装kubernetes1.7

环境 下载kubernetes和安装 1 方案1使用阿里云yum镜像 2 使用国外服务器下载安装包 下载kubernetes镜像 配置kubelet 启动相关组件 创建集群 配置kubectl的kubeconfig 安装flannel master节点安装验证 node节点安装和加入集群 node节点安装验证 参考 自动化脚本已经上传到github: https://github.com/zhuchuangang/k8s-install-scripts/tree/master/kubeadm 0 环境 环境: 主机名 IP k8s-master 172.16.120.151 k8s-node01 172.16.120.152 k8s-node02 172.16.120.153 ==mac…

Continue Reading使用kubeadm安装kubernetes1.7

使用docker-maven-plugin插件实现Docker构建并提交到私有仓库

使用Maven插件实现项目打包及Docker构建并提交到私有仓库 以下内容非教程,不适合对Docker及Maven不熟悉者使用 目标:Spring Boot项目打包成可执行的jar文件后,使用docker-maven-plugin(spotify)插件自动构建Docker后上传到阿里云Docker镜像仓库(其他仓库同理) 引用参考: docker-maven-plugin插件:https://github.com/spotify/docker-maven-plugin Maven提交服务密码加密:https://maven.apache.org/guides/mini/guide-encryption.html Maven的settings.xml:http://maven.apache.org/ref/3.3.9/maven-settings/settings.html 准备工作: 本机安装 Docker 1.9 Eclipse环境(本机使用STS) Maven环境 阿里云Docker仓库(其他Docker仓库都可以) 如果需要Maven项目部署,需要Maven私服() SecureCRT (其他终端皆可,仅用于启动Docker测试) 1、 构建Spring Boot项目 项目目录 2、 pom.xml文件中 加入docker-maven-plugin插件 完整pom文件: <?xml version="1.0" encoding="UTF-8"?> <project…

Continue Reading使用docker-maven-plugin插件实现Docker构建并提交到私有仓库

使用Draft简化容器应用的开发流程

Draft是微软Deis团队开源(见Azure/draft)的容器应用开发辅助工具,它可以帮助开发人员简化容器应用程序的开发流程。 Draft主要由三个命令组成 draft init:初始化docker registry账号,并在Kubernetes集群中部署draftd(负责镜像构建、将镜像推送到docker registry以及部署应用等) draft create:draft根据packs检测应用的开发语言,并自动生成Dockerfile和Kubernetes Helm Charts draft up:根据Dockfile构建镜像,并使用Helm将应用部署到Kubernetes集群(支持本地或远端集群)。同时,还会在本地启动一个draft client,监控代码变化,并将更新过的代码推送给draftd。 Draft安装 由于Draft需要构建镜像并部署应用到Kubernetes集群,因而在安装Draft之前需要 部署一个Kubernetes集群,部署方法可以参考kubernetes部署方法(注意minikube的支持还有问题,暂时不要使用) 安装并初始化helm(需要v2.4.x版本,并且不要忘记运行helm init),具体步骤可以参考helm使用方法 注册docker registry账号,比如Docker Hub或Quay.io 配置Ingress Controller并在DNS中设置通配符域*的A记录(如*.http://draft.example.com)到Ingress IP地址。最简单的Ingress Controller创建方式是使用helm: # 部署nginx ingress controller $…

Continue Reading使用Draft简化容器应用的开发流程

Harbor的搭建(vmware企业级docker镜像私服)

1、下载harbor,地址https://github.com/vmware/harbor 2、进入harbor-master/Deploy目录,修改harbor.cfg文件,主要修改以下信息 2.1、hostname =10.10.20.202 (这个是harbor所在服务器的ip,不能写127.0.0.1) 2.2、修改邮箱相关信息 3、执行./prepare命令 4、添加/etc/sysconfig/docker文件,文件内容如下: OPTIONS="--insecure-registry 10.10.20.202" 5、修改/usr/lib/systemd/system/docker.service文件 5.1、新增一行,EnvironmentFile=-/etc/sysconfig/docker,该文件只有一行内容,OPTIONS="--insecure-registry 10.10.20.202",如果/usr/lib/systemd/system/docker.service文件中不增加EnvironmentFile=-/etc/sysconfig/docker这行,下面对ExecStart的修改是不生效的。 5.2、修改一行,ExecStart=/usr/bin/dockerd $OPTIONS 为什么要修改这个配置文件呢?--insecure-registry代表本地镜像库,修改了以上配置文件后需要重启docker服务,此时docker login时,将连接指定的本地镜像库。 如果不修改这个配置文件,则登录镜像私服时(docker login 10.10.20.202)会抛出如下错误 Error response from daemon: Get https://10.10.20.202/v1/users/: dial tcp 10.10.20.202:443: getsockopt:…

Continue ReadingHarbor的搭建(vmware企业级docker镜像私服)

docker 镜像仓库 Harbor 部署 以及 跨数据复制

docker 镜像仓库 Harbor 部署 跨数据复制 Harbor 是 Vmwar 公司开源的 企业级的 Docker Registry 管理项目 它主要 提供 Dcoker Registry 管理UI,可基于角色访问控制, AD/LDAP 集成,日志审核等功能,完全的支持中文。 Harbor 的所有组件都在 Dcoker 中部署,所以 Harbor 可使用 Docker Compose 快速部署。 注:…

Continue Readingdocker 镜像仓库 Harbor 部署 以及 跨数据复制

搭建基于Selenium+TestNG+Maven+Jenkins+SVN的Web端UI自动化测试环境

一、 创建Maven项目,下载Selenium和TestNG的依赖(依赖可以理解为你要用到的jar包)。 1.     问题。 为什么要创建Maven项目呢? 答:Maven项目可以方便的管理依赖,通俗的讲,你需要的jar包,写到POM.xml文件中,Maven可以自动下载。省却了你先把jar文件放进libs,再BuildPath这一步。同时呢,其他项目如果也用到这些jar包,Maven会自动从本地仓库中直接取出来,不用再次下载。 2. 步骤。 1.  File-New-Project... Xr-原创 2. Maven Project- Next Xr-原创 3. Next Xr-原创 4. 选择maven-archetype-quickstart-Next Xr-原创 5. 输入Group Id:域.公司简称;Artifact Id:项目名称 -Finish. Xr-原创 6.…

Continue Reading搭建基于Selenium+TestNG+Maven+Jenkins+SVN的Web端UI自动化测试环境