基础命令
语法
YAML语法YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写。语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件等,YAML的配置文件后缀为 .yml,如:runoob.yml 。
YAML语法YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写。语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件等,YAML的配置文件后缀为 .yml,如:runoob.yml 。
在1.24.x版本中,Kubernetes正式放弃了对dockershim的支持,这也标志着其与Docker的分割。从这个版本开始,我们将无法直接在Kubernetes中使用Docker。
对此,本文将不采用Docker方案,而是以目前主流的Containerd做为容器运行时。
启动docker,下载Jenkins镜像文件
[root@localhost zhangtq]# docker pull jenkins/jenkins
Using default tag: latest
latest: Pulling from jenkins/jenkins
0e29546d541c: Pull complete
11bbb8c402a7: Pull complete
cf91f018150b: Pull complete
a98e88c6f0f0: Pull complete
f67fc70d671a: Pull complete
edbe48067464: Pull complete
fa23ca93dd6b: Pull complete
00159d993c13: Pull complete
f28fb40a17cf: Pull complete
071d309df04b: Pull complete
78599f36e494: Pull complete
896a32d969fb: Pull complete
3f1a51ea9f7f: Pull complete
26e724f0bfad: Pull complete
b377e1ae1384: Pull complete
d3cdbe7e8b9f: Pull complete
f3b40ebc3458: Pull complete
Digest: sha256:c3fa8e7f70d1e873ea6aa87040c557aa53e6707eb1d5ecace7f6884a87588ac8
Status: Downloaded newer image for jenkins/jenkins:latest
docker.io/jenkins/jenkins:latest
如果之前安装过旧版本的Docker,可以使用下面命令卸载:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
centos7:
yum install -y policycoreutils openssh-server openssh-clients postfix
centos8:
yum install -y curl openssh-server openssh-clients postfix cronie policycoreutils-python-utils
systemctl enable sshd
systemctl start sshd
systemctl enable postfix
systemctl start postfix
1、研发push到github代码库
2、Jenkins 构建,pull git代码 使用maven进行编译打包
3、打包生成的代码,生成一个新版本的镜像,push到本地docker仓库harbor
4、发布,测试机器 pull 新版本的镜像,并删除原来的容器,重新运行新版本镜像。
服务及服务器说明-Aliyun环境
1、代码仓库
github 或者 git-server 或者 gitlab
本次实验使用github仓库 https://github.com/
image-20200512165810293 2、容器镜像仓库
ip: 192.168.0.11
- 主机名:harbor
3、CI/CD服务器
ip: 192.168.0.20
主机名:jenkins
软件:
- jdk - jenkins - git - maven - docker
4、应用服务器
ip:192.168.0.30
主机名:docker
软件:
jq
docker
- 或者 k8s集群
简单历史
Jenkins的前身是Hudson,采用JAVA编写的持续集成开源工具。Hudson由Sun公司在2004年启动,第一个版本于2005年在java.net发布。2007年开始Hudson逐渐取代CruiseControl和其他的开源构建工具的江湖地位。在2008年的JavaOne大会上在开发者解决方案中获得杜克选择大奖(Duke's Choice Award)。
纯手动Scp、Rsync上传代码。
纯手动登陆,Git pull 或者 Svn update。
纯手动xftp、ftp、filezilla上传代码。
开发发送压缩包,rz上传,解压部署代码。
缺点:
全程运维参与,占用大量时间。
如果节点多,上线速度慢。
人为失误多,目录管理混乱。
回滚不及时,或者难以回退。
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Github是在线的基于Git的代码托管服务。 GitHub是2008年由Ruby on Rails编写而成。GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开的代码仓库,只有付费账户可以创建私有的代码仓库。 Gitlab解决了这个问题, 可以在上面创建免费的私人repo。
git 是一套软件 可以做本地私有仓库
github 本身是一个代码托管网站 公有和私有仓库(收费) 不能做本地私有仓库
gitlab 本身也是一个代码托管的网站 功能上和github没有区别 公有和私有仓库(免费) 可以部署本地私有仓库