具有较强的动手能力,设备操作能力,以及测试环境的搭建能力,如:PXE、DHCP、Jenkins、Docker等。 |
---|
一、什么是PXE?
PXE是由Intel设计的协议,它可以使计算机通过网络启动 | 备注 |
---|---|
协议分为client和server两端。 - [x] client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行(并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行) |
网卡rom:里面固化了网络引导信息,可供网络引导启动,建立无盘工作站必备 |
PXE协议的成功运行需要解决以下两个问题: - [x] 既然是网络传输,那么计算机在启动时,它的IP地址由谁来配置 - [x] 通过什么协议下载Linux内核和根文件系统 |
通过DHCP Server来给PXE client分配一个IP地址 在PXE client所在的ROM中,已经存在了TFTP Client PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需文件 |
工作过程 - [ ] PXE Client是需要安装Linux的计算机,TFTP Server和DHCP server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下 - [ ] PXE Client在工作过程中,需要三个二进制文件:bootstrap、Linux内核和Linux根文件系统 |
bootstrap文件时可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统 |
插眼:
- ROM:read-only memory【只读存储器】内存,对电脑来说就是硬盘,对手机来说就是内置存储,对单片机来说就是flash,用于存放操作系统的软件。(把固件烧录进flash,就不能修改了,不能被写入)
- RAM:【随机存储器】,就是电脑内存条,用于存放动态数据(也叫运行内存),需要把操作系统从ROM中读取出来,放在RAM中运行
插眼:
DHCP Server是用来给DHCP Client动态分配IP地址的协议
- DHCP【动态主机配置协议】局域网协议。使用UDP协议工作
- DHCP服务器是专门承载和运行DHCP服务,并帮助我们管理IP的专用服务器
TFTP【简单文件传输协议】,使用UDP协议,适合小型文件传送。只能与远程服务器互相读、写文件。
二、什么是Docker?
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化 | 一个完整的Docker由以下几个部分组成: Docker Client客户端 Docker Daemon守护进程 Docker Image镜像 Docker Container容器 |
为什么要使用Docker? - [x] 容器不需要进行 硬件虚拟及运行完整操作系统等额外开销。 - [x] Docker的镜像提供除了内核外完整的运行时环境,确保应用运行环境一致性 |
---|---|---|
Docker有社区版和企业版 |
---|
docker到底是什么? - [ ] 如果要部署一个django,需要做的事情:python环境下载,安装各种依赖,解决可能存在的冲突。可能还要mysql、redis等等。等我配置好以后,万一要换一台服务器,岂不是更加麻烦 - [ ] 而docker规定标准的交付软件格式:docker镜像;而在docker中镜像是无法直接运行的(一般来说一个软件的某个具体版本只会打包成一个镜像),为了避免镜像损坏,给镜像增加一个“分身”:容器。如果想使用服务或把应用抛弃了,只需要基于镜像新创建一个容器即可,镜像还放在那里不懂。 |
只需要安装docker的服务器,一个dockerfile(装箱清单)和网络。需要python3环境,只需要在dockerfile中加入:from python:3.x即可;需要迁移服务器,直接把dockerfile备份数据拷贝到新服务器。需要作为服务给别人使用,dockerfile是最清晰的部署文档,维护官方镜像即可 |
使用docker可以将上面部署的mysql、redis等等应用一次性启动,很清晰 |
https://zhuanlan.zhihu.com/p/78295209
三、什么是jenkins?
部署项目,jenkins正常安装,启动加载插件
jenkins是一个基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能 |
---|
插眼:
持续集成(CI):频繁地将代码集成到主干之前,必须经过自动化测试,只要有一个测试用例失败,就不能继承。通过持续集成,团队可以快速从一个功能到另外一个功能
首先,开发人员将代码提交到Git仓库,然后jenkins使用git仓库来拉取git仓库的代码。然后配合JDK、Maven等软件完成代码编译、测试、审查等工作。 最后jenkins将生成的jar/war推送到测试/生产服务器,供用户使用 |
---|
用dockers搭建jenkins实现自动化部署